Redo of artificial horizon.
This is a re-work of the Artificial Horizon feature. It enables easier entry of horizon points, and the scheduler now makes use of the altitude constraints when managing its jobs.
The new Terrain background feature enables a user to clearly see obstructions from the telescopes point-of-view on the SkyMap, and, thus, it's possible to much more easily enter artificial horizon coordinates for those obstructions by clicking on the SkyMap. Given that, this MR re-imagines the UI of the artificial horizon feature to implement that. See https://photos.app.goo.gl/hqBSB5QWWPN43oEa9 for a screenshot of the two features in use together. In that screenshot a terrain background was in place when a user used the modified Artificial Horizon UI to define a 360-degree artificial horizon.
The artificial horizon feature is changed a bit. It no longer defines polygon that reach down to the horizon, but instead, simply a set of points defining line segments. The artificial horizon blockage is then defined as the region between those line segments and the (0-degree altitude) horizon. Now, a minimum of 2 points are required (previously it was 5), and they need not form a polygon (as before), nor do any points need to be on horizon (as before). A full 360-degree line may be created if desired--and I imagine this will be the typical usage.
Once the user creates and accepts the region (by adding points by clicking on the SkyMap, then checking the region's checkbox and clicking on apply), the region is displayed as a red semi-transparent region on the SkyMap, as before. See https://photos.app.goo.gl/bvPUfSVz27QSby4b8 for the region defined by set of points in the previous screenshot.
Note: free-standing polygon obstructions, or "above obstructions" are not currently supported. Obstructions are a "skyline"--that is, they reach down from some altitude down to the horizon, for each azimuth angle.
One of the main reasons for making this change is to make the scheduler aware of artificial horizon constraints, and schedule jobs accordingly. Changes to the scheduler to do that are minimal, however they are not included in this MR, but rather planned for a future MR.
This MR includes a new UI test for the artificial horizon feature.