* Add support for multiple windows & viewports
With correct rendering of both Scene and Overlays/GUI.
GUI is restricted to either the first window or any other windows tagged
with "GUI", overlays are drawn on all windows/viewports.
Closes#2542 and #1645
* Added pboettch/json-schema-validator submodule
* Added initial code for selecting window config to edit
* Use updated sgct submodule with json-validate
* Bump sgct submodule version reference
* Bump sgct submodule version reference
* Version checking of sgct window config in progress
* Json schema validator submodule is now in sgct
* Added support for read-only window configs, and additional changes
* More changes with opening config in window edit, plus schema files added
* Update sgct schema version with more defs to work with sgctedit schema
* Fixes to get sgct edit schema working with dialog for error messages
* Improvements in exception handling
* Improved handling of multiple sgct & json exception types
* Minor improvements in exception messages
* Extra spaces in error message output
* Fixing importing of json config data from launcher to sgctedit
* Fixed window size & position update
* Changes for preserving settings in edit vs new mode
* Changes to import settings from config file
* More changes for importing testing of config file based on file tests
* Fixed window placement dims in monitor, and some code refactoring
* Move json validation before initial read
* Add CMake copy of sgct schema file to OpenSpace post-build
* Bump sgct submodule reference
* Modify calls for json schema validation and bump to latest sgct
* Bump to new sgct repo with unit testing and updated schema
* Added first test for window config editor schema
* Finished tests for sgcteditor validation
* Code cleanup pass
* Fix of sgctedit test for remove description
* CMake and include config changes to fix build after merge
* Bump sgct submodule version
* Improve paths in sgctedit test
* Bump sgct reference for test path fix
* Check for imported monitor number being in valid range
* Make sgct config 'monitor' key/value optional
* Have 'save' or 'save as' buttons depending on edit or new modes
* Code review feedback changes
* Fix to include the last file in the user config dir list
* Addressing some PR request
* Change to pass-by-reference in editRefusalDialog
* Separating errors into summary and detailed messages in error dialog
* Disable edit button with hover text if config read shows invalid format
---------
Co-authored-by: Alexander Bock <alexander.bock@liu.se>
* Add property in OpenSpaceEngine for fading duration when enabling / disabling
* Add interface for fadeable components and apply to renderable
* Make layers a fadeable component
* Make globelabels a fadeable component
* Make labelscomponent a fadeable, and give it an enabled property
* Make screenspace renderables fadeable components
* Introduce concept of parent fadeables, to fade out subowners with parent
* Make rings fadeable as well
---------
Co-authored-by: Alexander Bock <alexander.bock@liu.se>
* Cleanup Property code
* Remove NOLINT statements
* Return Property class types as string_view
* Remove getStringValue function
* Simplify string value retrieval
* Ensure that image paths in the ImageSequenceTileProvider are sorted (closes#2205)
* Some cleanup of OpenSpaceEngine
* Cleanup documentation
* Some more cleanup of engine classes
* Some more cleanup
* Update SGCT repository
* Use new Jenkins node identifiers as the old method broke with update
Fix interaction problems when hovering/clicking with the mouse in a non-GUI window, when having a setup with more than one window (e.g. the single_gui.json setup)
Previously, clicking with the mouse in the rendering window without the GUI also triggered mouse clicks in all the other windows, including the GUI windows. This was disturbing for interaction in the single_gui setup
Now, the GUI modules check to see if the clicked window is actually an interaction window
Add the ability to add user-defined properties using a new `openspace.addCustomProperty` function that takes an identifier and a type and creates a new property of that type. The new property is then available under `UserProperties.<identifier>`
* DPI scaling
1. Add the ability to query the operating system's DPI scaling values
2. Expose those values through a new Lua function
3. Add an asset that sets the CEF gui and the Dashboard font sizes and placements based on the DPI scaling
4. Add that new asset into the base_blank asset
* Add message when including the dpiscaling
Adapting Lua functions to new codegen functionality
Improve the documentation itself
Add some styling to generated documentation
Have parameter names for Lua-defined Lua function documentation
Co-authored-by: Emma Broman <emma.broman@liu.se>
* Change spline curve parameter interval from [0,1] to [0,nSegments], for slightly increased precision
* Use linear paths whenever precision isn't enough/paths are too long (and traverse linear paths differently, to make them less depending on the distance)
* Remove OrbitalNavigator.LinearFlight and instead add "Zoom to" helper functions (closes#1837 )
* Add check to prevent triggering awkward short paths, for example when flying to the current target or to the same geo position twice
* Refactor speed code and handle speed when path is shorter than start+closeup distance
* Add easing to speed dampening
* Add topic for engine mode (to be used for UI later)
* Cleaner log when creating paths (some previous info messages are now debug messages)
Related PR: OpenSpace/OpenSpace-WebGuiFrontend#70
* Clarifies which system is control over time and camera at what time
* Fixes#1845
* Prevent invalid switching between session recoring and camera path playback
* Some cleanup, mosly of SessionRecording and NavigationHandler. Also, remove ExternInteraction and some other unused/nonexisting functions
* Add implementation of the EventEngine to handle global event chains
* Add properties to SceneGraphNodes to determine two distance radii for camera-based events
* Add action manager to handle actions in replacement of keyboard shortcuts
* Implement new Action concept
* Remove the shortcutscomponent as it is no longer needed
* Update profile version from 1.0 to 1.1
* Add action dialog
* Restructure of key specification in keys.h
* Remove solid field-of-view keybind from the newhorizons profile as the setting no longer exists