Merging Dashboard branch that introduces the Dashboard, DashboardItem and moves most of the screen rendering code into a component-based layout that can also be displayed as a screenspace renderable
* Add Onscreen Dashboard
* Add Dashboard class
* Add DashboardItem classes and subclasses
* Added font and fontsize customization to dashboarditems
* Add default dashboard specifications to all scenes
* Add tests.scene to test dashboard items
* Add configuration options to DashboardItemDistance
* Fix distance conversion to correctly use singular or plural values
* Make DashboardItems unique when adding them to a dashboard
* Correctly position test with different font sizes
* Add Dashboard Item that enables spacing between other items
* Add performance measurement to dashboard rendering
* Add method to DashboardItemDistance that computes distance to surface
* Add DashboardItemAngle that computes and prints the angle between three objects
* Add DashboardItemInstruments that shows the instruments on New Horizons
* Add ability to OpenSpaceModules to return a list of Luascripts defined by child objects
* Make it possible for ScreenSpaceDashboard to work with its own dashboard or the main one
* Rename OnScreenGui module to ImGui
* Support multiple external module folders (closes#31)
* Cleaning up CMake files
* Restructure application specification
* Add parameter for library mode to all modules
* Add functions to handle global variable state
* Misc/remove warnings (#383)
* Increase build timeout and do a clean rebuild every commit
Unify the property names in RenderablePlanet
Remove MainFrame from RenderableShadowCylinder
Clean up dictionary keys for RenderableModel, RenderableModelProjection, RenderablePlanetProjection
Add Property descriptions to the documentation file
Remove update method from StaticTranslation
Remove spelling error in RenderableGlobe
Remove rotation from renderablemodel projection
Fix setting the Origin through the GUI
Reorder Optional and documentation arguments for DocumentationEntry, and making Optional a non-optional argument
- Change Time class to become a non-singleton
- Move ownership of the current time to TimeManager(instead of singleton access).
- Store the Time as a Syncable in TimeManager instead of representing all member variables of Time as Syncables.
- Pass a Time object around in the update/render methods, so that renderables don't have to query the OpenSpaceEngine to know if time is paused or if it jumped.
- Introduce Timeline and Keyframe classes
- Make use of Timelineand Keyframeclasses in KeyframeInteractionMode and TimeManager
- Added basic unit tests for Timelineand Keyframe
Future work: Add interpolation schemes for keyframes. Possibly use keyframes+interpolation feature to tween/morph properties, or figure out if this should be a separate mechanism.