* Add initializeGL and deinitializeGL methods to OpenSpaceModule Call releaseAll from ProgramObjectManager in deinitializeGL to guard against errors when deinitializing assets
* Change removeProgramObject function in RenderEngine to take a non-owning pointer instead of a reference to a unique pointer to make it compatible with the ProgramObjectManager
Update Ghoul repository
* Using ProgramObjectManager in more modules to reduce the number of programs compiled at startup
* Introduced guiName to PropertyOwner
* Added requirement that PropertyOwner::identifier may not contain whitespaces
* Changed Name to Identifier in asset and scene files
* Added new PropertyOwner to RenderEngine that owns the ScreenSpaceRenderables
* Moved Name and GuiPath into GUI group
* Added user-facing names to layer groups
* Change to new logging format (closes#542)
* Adds a screenshots folder that uses the application startup time
* Creating focus nodes for VRT files if the info files contain location information
* Fix issue with removing virtual properties
* Add a method for returning the cartesian coordinates for a geolocation on a planet
* 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.