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
Add core script file that defines possibility of rebinding keyboard commands to a different key
Enable the execution of global customization scripts
Make `scene_helper.lua` a script automatically included in the ScriptScheduler
* 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
* Interaction speed is not dependent on framerate
* Split up interaction code in files and perform smooth interpolation when changing focus
* Abstract interaction code in to functions.
* Interpolation time is dependent on angle to focus node.
* Use correct delta time when interpolating
* Fix bug regarding decomposition of camera rotation.
* Make orbital interaction mode behave as globe browsing and no longer use interactiondepth below ellipsoid.
* Do not always rotate with object. Depending on distance
* Remove interaction depth below ellipsoid. Now able to interact without renderable
* Remove specification of interactionDepthBelowEllipsoid and cameraMinHeight
* Remove GlobeBrowsingInteractionMode
* Rename OrbitalInteractionMode to OrbitalNavigator and no longer extend interactionmode.
* Move properties from interaction handler to orbital navigator
* Use smooth step for follow rotation interpolator
* Rename KeyframeInteractionMode to KeyframeNavigator
* Rename files
* Clean up.
* Separate mousestate from orbitalnavigator
* Clean up
* Split keybindingmanager from interactionhandler interactionhandler
* Rename interactionhandler to navigationhandler
* Rename files
* Clean up
* Take back usage of gotochunk and gotogeo
* Rename lua library navigation
* Move functionality from navigationhandler to keyframenavigator
* Update scripts for navigation
* Comment code
* Clean up
* Solve but that caused NaN values for camera position when being in center of globe and setting focus to the globe.
* Update jenkins file to remove build folder before building.
* Fix error in jenkins script
* Update jenkins file
* Update jenkins file
* Revert jenkins file
* I hope this makes Jenkins happy.
* Line endings God damnit
* Line endings
* Clean up
* Fix compilation issue
* Take back default scene.
* Fix indentation
* Move functions goToGeo and goToChunk to GlobeBrowsingModule.
* Include algorithm for std::find
* Remove auto and other clean up
* Simplest possible PBO implementation.
* Add PBO class
* TileLoadJob owns raw tile data
* Working on a soluton to cache textures and reuse them
* PBO and cached textures working for one texture type. Color textures.
* Threadpool for tile requests uses LRU cache as queue
* Remove framesUntilRequestFlush
* Clean up
* Clean up
* Use prioritizing concurrent job manager
* Use TileTextureInitData to initialize RawTileDataReader.
* Class TextureContainer owns the textures to use for tiles.
* Using TileTextureInitData to determine if new caches need to be created.
* Remove WriteDataDescription
* Remove TileDataLayout
* Rendering many different layer types again
* TileProviderByLevel gives layergroup id to tile providers
* Comment away use of PBO
* Erase unfinished requests to make room for new ones
* Enable choice of PBO or not.
* Enable resetting of asynctiledataprovider
* Add the ability to use PBO and also load to CPU
* Update ghoul
* Solve culling issue.
* Texture pointer of Tile is now a raw pointer. Currently break single image tile provider and text tile provider.
* Add gpudata
* Move fetching of shader preprocessing data to LayerManager
* No comparisons to determine shader recompilation.
* Show the tile cache size in the GUI
* Clean up and comment.
* Solve bug where float is interpreted as NaN
* Enable ability to blend between layers again
* Fix single image provider
* Fix windows build error
* Fix OSX compile issue.
* Some clean up
* Showing correct texture data size
* Enable use of text tile providers again. No backgroupd image path however.
* Change cache size from GUI
* Clean up
* Solve osx compilation error.
* Update ghoul
* Make it possible to switch between PBO and not during runtime.
* Enable resetting of tile datasets
* change function module in moduleengine to identify module by name
* MemoryAwareTileCache is no longer a singleton
* Update ownership of properties for globe browsing
* Logging info about resetting tile reader.
* Logging info
* Fix requested changes
* Fix some compile warnings.
* Fix compilation warnings
* Add ability to blend values with blend parameter. Also define settings through lua dict.
* Fix some comments on pull request.
* Change formatting
* Change formatting
* Change formatting
* Fix pull request comments.
* Those are details
* Make Mercury great again.
* Make Earth great again.
* Solve conflict
* Test to sometimes use valueblending and sometimes not
* Not always use value blending
* Update ghoul
* Change from auto to explicit type.
* Update test for LRU Cache
* Include algorithm.
- 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.