Commit Graph

35 Commits

Author SHA1 Message Date
Alexander Bock
19e9e2c1fb Adapt to new compile option style and fix warnings (#3773) 2025-08-12 14:19:45 +02:00
Malin E
ac3e30c24e Sonification/Telemetry (#3461)
* Add sonification module

* WIP: Extract planet positions in own thread

* WIP Extract camera position and angle

* Extract distance to camera and fix angle

* WIP: Extract focus node

* Optimize and clean up

* Fix signed angle for surround sound

* WIP add solar system view sonification

* Extract time
Extract the speed of time in OpenSpace and send it to supercollider.
Needed to scale the sonification time in sync with OpenSpace

* Extract moon angles
Extract the angle from the planet to the major moons. Used in
sonification to position the moons in surround.

* Add easy change of angles
Easier to switch what angle is calculated and sent to the sonification.
Preperation for test in Dome

* Fix shutdown error and nullptr error
Add deinitialize for sonification module. Make sure pointers are
initialized to nullptrs at start. Check in sonification main in the
start if the scene is initialized

* Add properties to contol sonification
* Add property to turn on/off sonification for each planet

* Change so the data only send for those planets that are enabled with the property

* WIP: Improve GUI for sonification control
* Add GUI for every sonification parameter per planet

* However, only for Earth and Mars so far

* Make data send more often and not just when the planet is enabled

* Add sonification GUI for Mercury and Venus
* GUI for each parameter for Marcury and Venus

* Send a shutdown message to SuperCollider during deinitialization

* Group properties together
* Gather the planets properties under a planets property owner

* Prepare to expand GUI

* Name changes

* Add Solar view in GUI
* Add GUI that controls the solar sonification

* Remove the all enabled slot in the settings arrays

* No longer sends the all enabled slot in teh settings arrays

* WIP Compare view

* Add compare view in GUI. Allows to compare two planets sonification.

* Finish compare view

* Add connection to sonification for compare view

* Improve responsiveness of GUI

* Expand GUI with the outer planets

* Add GUI for the outer planets

* Increase array sizes to compe with all the planets

* Add functionality for the outer planets GUI

* Add temperature option in GUI

* Fix so that compare cannot compare to itself

* Scale selected planets in compare view

* Fix reset of compare view

* Add Rings sonification to GUI

* Fix solar sonification GUI

* Bind onChange function for the outer planets in the solar GUI

* Add comment about where in the settings array the setting for rings
are

* Add master buttuns in GUI

* Add button to turn on/off all the planets

* Add button to turn on/off everything, solar when sun is in focus and
planetary otherwise.

* Add function to easier turn on/off all the parameters of solar and
planetary

* Only master start sonification module

* Add check that only the master start the sonification thread

* Clean up a few lines in the angle calculation

* Optimize the sending of time

* Time is not sent with every message but only when it changes instead

* Add GUI for choosing what parts to compare

* More GUI in compare view to control which sonification to compare

* Fix deinitialize turn off sounds

* Make sure the auto (enable all) now also work with the new compare GUI

* Fix socket problem and code clean up

* Only use one socket to send information to supercollider

* General code clean up

* Remove sending of focus node since supercollider does not use it

* Adjust to new master

* Fix oscpack linker issues

* Update to new master

* Add start of SonificationEngine

* Move osc code into SonificationEngine

* Add function for the planetary settings

* Add function to access SonificationEngine via the module

* Add base sonification class

* Start seperating into different sonification classes

* Add PlanetarySonification to the internal list

* Move osc to its own module

* Seperate planet sonifications into seperate sonification classes

* Make time sonification its own class

* Some clean up

* Update to new cmake version

* Add proper module dependency for the sonification module

* Fix thread issue

* Temporary fix with a sleep, works for now

* Fix log messages issue

* Add enabled property for the sonification module

* Some clean up

* More clean up

* More clean up

* Make it possible to send in node position directly for helper function

* Add stop function for sonifications

* Make possible to specify sonification destination ip and port in cfg file

* Use Parameters struct for the sonification module dictionary

* Make sonification module a singleton

* Minor code style fix

* Use module engine module function for singleton pattern instead

* Add angle calculations for the surround modes

* Use codegen map function for surround mode enum

* Improve data storage and sending for planet sonificaitons

* Add focus sonification

* Fix elevation angle calculation for circular surround mode

* Add Lua function to add entries for the PlanetsSonification

* Add sonification profile

* Add lua library file for planets sonification

* Fix gui osc messages sending

* Update to latest master

* Rename planets sonificaitons to reflect they only work for planets

* Add generic nodes sonification

* Clean up Time sonification

* plus a little in the nodes sonification

* Add current time information to the time sonification

* Add precision propertysubowner to structure Gui and make it flexible

* Some general clean up

* Rename solar sonification to planets overview sonification

* Add Camera sonification

* Fix some bugs with the camera sonificaiton

* Make sure the sonificaiton thread is synced with the main thread

* Fix camera and scene bug in sonificaiton

* Dont hold up the main thread while sonificaiton thread does its work

* Use the current frame time for speed calculaiton instead of average

* Fix osc::Blob memory bug

* Wait max 30 seconds in the sonification thread for the main thread

* Make sure deinitialize of sonificaiton thread does not halt

* Add the mode sonification as a proper sonification

* Add nodes sonification example with ISS and Tiangong

* Some renaming and restructuring

* Add more detailed documentation for the sonification math

* The util functions for different angles in the sonificaiton/telemetry module

* Major clean up and restructuring

* Rename module to telemetry to make it more clear that we do not
  produce the sonifications, we just spit out data used by a
  sonificaiton software

* Add the new moon of Neptune to sonification and add sonification files

* And add the test osc supercollider file

* Add the OpenSpace header to the supercollider example file

* Apply suggestions from code review

Co-authored-by: Alexander Bock <alexander.bock@liu.se>

* Adjust suggestions to fix errors

* Address more PR comments

* Address more PR comments

* More PR comments

* More PR comments

* More PR comments

* Even more PR comments

* Update to latest master

* More PR comments

* Add OSC as a submodule

* NOTE that due to path issues this commit will not build with the osc
  module, you will need to change the paths inside two osc files for it
  to build. Will fix very soon

* Fix issue with oscpack not setting correct include directory

* Address PR comments

* Address PR comments

* Update the SuperCollider files

---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
Co-authored-by: Ivar Gorenko <ivago071@student.liu.se>
2025-05-19 15:02:48 +02:00
Alexander Bock
125f54aa0a Update nlohmann repository (#3609)
* Remove old non-submodule version of nlohmann in favor of submodule
* Update nlohmann from 3.9.1 to 3.12.0
- Already disable implicit conversions in preparation for next major version
2025-04-16 14:13:20 +02:00
Alexander Bock
c47eb8fc7a ... and then re-add it again 2024-04-03 12:45:55 +02:00
Alexander Bock
2450435c3d ... from gitmodules ... 2024-04-03 12:44:49 +02:00
Alexander Bock
9efbc58c89 Add support for audio playback (#3085)
* Add support for audio playback using the SoLoud library
* Add 3D audio and some comments
* Add documentation and examples
2024-03-24 22:16:21 +01:00
Alexander Bock
4ee078502b Doxygen (#2953)
* Update Doxygen and add new CSS file
* Remove Doxygen warnings
2023-11-19 16:35:14 +01:00
Emma Broman
c714a7f57d Feature/geojson (#2595)
Add the option to add geojson components to globes, from geojson files. One geojson file creates one GeoJsonComponent, which in turn may contain multiple GlobeGeometryFeatures

Geojson is a format that supports points, lines, and polygons. In addition to the basic functionality, extra features have been added that will long-term allow rendering the geometry needed to represent KML files (another format for geospatial geometry data). Here are links to references for both formats:

    Geojson: https://geojson.org/
    KML: https://developers.google.com/kml/documentation/kmlreference

data/assets/examples/geojson includes some example files that I have used for testing. Any geojson file can also be added through drag-n-drop. Note however that you might need to change the AltitudeMode or HeightOffset properties for the feature to be visible.
2023-04-15 11:35:28 +02:00
Ylva Selling
4053243a14 Add documentation as submodule 2023-04-11 10:49:10 -04:00
Alexander Bock
664eb60f4f Increase the compile times by including more precompiled headers (#2217)
* Define WIN32_LEAN_AND_MEAN and VC_EXTRALEAN globally
* Use forked version of TUIO, some more work on precompiled headers
* Improvements for the Kameleon module
2022-08-26 16:32:21 +02:00
Alexander Bock
6d821d4f91 Feature/codegen (#1480)
* Add the ability to automatically generate code to extract values out of a Dictionary (see https://github.com/openspace/codegen for more information on how to use this)
* Applied this technique to a large number of cases in the codebase
* Don't add _codegen files to the repository

Co-authored-by: Emma Broman <emma.broman@liu.se>
2021-02-09 09:12:43 +01:00
Alexander Bock
38eac377e8 Introduce the date library 2020-08-13 10:47:30 +02:00
Alexander Bock
32caf0ab8c Update location of SGCT repository 2020-01-24 19:51:24 +01:00
Alexander Bock
2fca9a2a2c Remove torrent-based synchronization 2019-07-18 12:10:49 +02:00
David Laidlaw
64f8793ea0 minVR updates (#908)
* changed libopenspace cmake module name to openspace-core
* change mouse button callback to include modifiers
* added some new ghoul initialization from the non-MinVR main.cpp
* Add GLFW as an external dependency for MinVR
2019-07-16 13:51:39 +02:00
Emil Axelsson
0d2935c43b Feature/gaia mission merge (#766)
* Add Adam Aslegård's module that renders Gaia mission stars
 * Add module for Gaia mission
 * Add CCfits and cfitsio submodules and the implemented fitsfilereader module from the OpenSpace-sun-earth-event branch
 * Add a TaskRunner to read from a fits file
2018-11-20 18:19:08 -05:00
Alexander Bock
f630944fd8 Feature/minvr (#744)
* Move SGCT external library from ext/sgct to apps/OpenSpace/ext/sgct
 * Remove all GLFW dependencies from openspace-core
 * Add MinVR dependency
 * Add new executable OpenSpace-MinVR that uses MinVR instead of SGCT
2018-10-29 22:10:35 -04:00
Emil Axelsson
e201dec907 Start work on TorrentSynchronization 2017-11-06 19:07:52 +01:00
Emil Axelsson
1862b804a9 Use libtorrent as a git submodule. Support base library functions in Lua execution of the Launcher. 2017-10-18 14:47:01 +02:00
Jonathan Bosson
3d5a0df332 nitpicky no new line in for url 2017-07-13 16:00:53 -06:00
Jonathan Bosson
53f6f92de0 libTUIO11 as submodule 2017-07-13 15:52:02 -06:00
Jonathan Bosson
3322a3100f use libTUIO as submodule 2017-07-13 15:49:57 -06:00
Alexander Bock
65ddeba70c Add SGCT as submodule
Fix compile errors in ParallelConnection using __WIN32__ macro instead of WIN32
2016-07-20 14:31:30 +02:00
Alexander Bock
eeb20d2cb7 Add Spice as a submodule 2016-07-19 15:03:23 +02:00
Alexander Bock
257f90d1ec Moving Kameleon subrepository to Github 2016-03-02 21:48:56 +01:00
Alexander Bock
58ee7647e8 Remove data submodule in preparation for direct integration 2016-02-21 01:51:13 +01:00
Alexander Bock
f8fedb4426 Move openspace-data to data 2015-05-28 22:50:37 +02:00
Alexander Bock
9d733eb613 Moving Kameleon into its own module
Moving fieldline rendering into its own module
2015-05-26 23:51:15 +02:00
Alexander Bock
b131aa5745 Move the Ghoul repository to GitHub 2014-12-20 00:28:18 +01:00
Jonas Strandstedt
5e94004a01 Removed Spice source submodule and added precompiled libraries 2014-12-05 16:52:13 +01:00
Alexander Bock
98582a4131 Added kameleon as a subrepository 2014-05-14 00:45:48 +02:00
Hans-Christian Helltegen
dadfc46218 Added openspace-data as submodule. Added OPENSPACE-DATA path variable 2014-02-20 18:21:48 +00:00
Alexander Bock
7126ae4b8d compile fixes in x64 builds
moved Lua dependency to Ghoul
2014-01-07 11:56:33 +01:00
Alexander Bock
a38cff0e38 replace Lua and SPICE source code with subrepositories 2014-01-06 10:25:56 +01:00
Alexander Bock
9885f52fd0 initial commit of transferred code from the old project 2014-01-04 18:24:33 +01:00