Commit Graph

34 Commits

Author SHA1 Message Date
Alexander Bock
5a7a518bad Remove cppcheck warnings 2014-12-16 21:54:53 +01:00
jonasstrandstedt
179f6edd9d Added warning for SceneGraphNodes that were not loaded 2014-12-10 15:38:22 +01:00
jonasstrandstedt
302e642c1c Dependency system for OpenSpace Modules
When loading the SceneGraph for the first time all modules are loaded
into a map and the parent dependency to another map. After all modules
and ScenegraphNodes have been loaded into the map, each module is loaded
in dependency order starting from the root node.
2014-12-10 14:35:08 +01:00
Alexander Bock
82c42cb97a General code cleanup 2014-12-09 18:36:23 +01:00
Alexander Bock
90eac194dc Initial work on performance measuring 2014-12-09 01:41:42 +01:00
Jonas Strandstedt
8196645284 Added support for placing camera att arbitrary position
- Pointing to openspace-data commit that reflects postition changes
- Fix camera to have correct rotation on startup
2014-12-02 11:06:15 +01:00
Alexander Bock
c226e9b82f Cleaned up code
Added new COMMON_FOLDER setting in scene file
Error handling when spice kernels are not available
2014-10-11 13:40:52 +02:00
Jonas Strandstedt
e4a8e87098 Using new ghoul ProgramObject functionality
- Fixed risk of memory leak in SceneGraph (deleting shaders)
2014-10-01 15:30:39 +02:00
Alexander Bock
1b3823d88c Remove old Spice wrapper 2014-09-27 21:46:24 +02:00
Alexander Bock
7359adf400 Replaced RuntimeData with separate, temporary structs that are passed around 2014-09-26 13:29:01 +02:00
Alexander Bock
d7190b2239 Allow Lua scripts to reload scenegraph file 2014-09-26 01:02:13 +02:00
Alexander Bock
e6576e88d6 Retrieve modules path from scene file instead openspace.cfg 2014-09-25 23:40:33 +02:00
Jonas Strandstedt
8042111ffe Merge branch 'develop' into spicesolarsystem
Conflicts:
	include/openspace/rendering/renderable.h
	include/openspace/rendering/renderablevolumecl.h
	include/openspace/rendering/renderablevolumeexpert.h
	include/openspace/rendering/renderablevolumegl.h
	include/openspace/rendering/renderengine.h
	include/openspace/scenegraph/ephemeris.h
	include/openspace/scenegraph/scenegraph.h
	include/openspace/scenegraph/spiceephemeris.h
	include/openspace/scenegraph/staticephemeris.h
	include/openspace/util/constants.h
	include/openspace/util/time.h
	src/engine/openspaceengine.cpp
	src/interaction/interactionhandler.cpp
	src/rendering/planets/renderableplanet.cpp
	src/rendering/renderablevolumecl.cpp
	src/rendering/renderablevolumeexpert.cpp
	src/rendering/renderablevolumegl.cpp
	src/rendering/renderengine.cpp
	src/rendering/stars/renderablestars.cpp
	src/scenegraph/spiceephemeris.cpp
	src/scenegraph/staticephemeris.cpp
	src/util/factorymanager.cpp
	src/util/spicemanager.cpp
	src/util/time.cpp
2014-09-25 13:54:42 +02:00
michal
700f590a2a SPICE-time dependency, retrieval of spice ephemerides and rotational matrix + coordinate references.
Added functionality:
- New class renderablesphericalgrid is repurposed code from powerscaledsphere class.
  Due to z-buffer issues used as reference grid to confirm planetary orbits are correct.
  This has been a major problem as prior we had no visual reference.
  Now we have a Galactic-, Celestial- and Ecliptic-coordinate grid.
  To this also added separate shader: grid_vs.glsl / grid_fs.glsl
  These grids have a static-rotational matrix derived from partiview (thanks to Brian)
  since spice req. to-from frame to compute rotational matrix.

Time dependency:
- Added struct RuntimeData - which for now only contains openspace time and is passed to all renderables
- All renderables accept runtimeData, keep private reference and use for computation of rotational matrix
- This obviously carries corresponding changes to Scenegraph and ScenegraphNode.

Spicemanager:
- Added function that more easily provides access to rotational matrix used in spice
 (used in renderableplanet for computing planetary objects spin around axis)

Ephemeris-classes:
- Now compute ephemeris from spice based on timeepoch in runtimedata
  TODO: once z-buffer fixed - set ephemeris correctly as meters (not kilometers)

Renderengine:
- Advances time with the advanceTime method in RuntimeData struct

ISSUES:
- Our Y axis NOT same as SPICE or star-catalogue, all renderables rotated now 90deg, needs redefinition,
  lots of debugging and major headaches before this conclusion.
- Depth buffer needs to be fixed in order to properly place planets.
- Spice kernels have finite time-range, when time stops - simulation ends - ugly fix: reset time to zero.
  Possible fix: kernels de431 (part 1-2) cover huge timespan and most likely have functions to extrapolate time,
  drawback is that they are 1,7 gb each.

TODO:
- Compute and draw dynamic ephemeries for each renderable. Either do full year sweep then update for each point or
  create a tail of linesegments for each planet. Dont know yet how to do this, would like spicephemeris to be
  sub-class of Renderable (have own render() method) - good/bad?
2014-09-19 20:32:33 -04:00
Alexander Bock
bd850d56f5 Remove renderableToggle as it has been replaced with a property 2014-09-18 20:39:30 +02:00
Alexander Bock
66722e83a6 Cleaned up script functionality in SceneGraph
Removed scriptfunctions.h and cpp as the functions have moved into other classes
2014-09-14 18:36:33 +02:00
Alexander Bock
954dbdce13 Merge branch 'origin/feature/ABuffer' into properties 2014-09-13 10:59:33 +02:00
Alexander Bock
9671921331 More work towards a unified interface for accessing properties 2014-08-30 10:01:11 +02:00
Alexander Bock
5793498ddf Added first version of ScriptEngine, allowing Lua script to set propety values 2014-08-21 18:44:42 +02:00
Alexander Bock
26a7fbe47e Code cleanup of Ephemeris classes and SceneGraph 2014-08-20 16:55:07 +02:00
Jonas Strandstedt
e99a98224c Working ABuffer
- Fixed the ABuffer rendering for intersecting volumes
- Added keyboard callback for toggling renderables
- Changed textures from ClampToBorder to ClampToEdge
- Fixed transferfunctions to clamp to edge instead of fade to black
2014-07-23 16:06:49 -04:00
Jonas Strandstedt
08a8e2f3bb Intermediate ABuffer commit 2014-06-03 16:50:47 -04:00
Alexander Bock
3520bd121e Renamed pss to PowerScaledScalar 2014-05-11 18:34:57 +02:00
Alexander Bock
40a2cb1068 Renamed psc to powerscaledcoordinate and pss to powerscaledscalar 2014-05-11 14:32:42 +02:00
Alexander Bock
636f5327aa Code cleanup regarding scenegraphnodes 2014-05-05 12:15:20 +02:00
Alexander Bock
a7fba6363f Added missing ephemerides files 2014-05-05 08:15:27 +02:00
Alexander Bock
7f7e25fd8b More work on ephemerides 2014-05-04 16:50:20 +02:00
Alexander Bock
794a88060f Rename "PositionInformation" to "Ephemeris" 2014-05-04 16:31:36 +02:00
Alexander Bock
e84c26aeb7 Renamed constants for dictionary keys
Created static creation method for Renderables
2014-05-04 16:18:35 +02:00
Alexander Bock
982ec8b87c Restructured SceneGraphNode code 2014-05-04 15:28:07 +02:00
Alexander Bock
2bf71ad9b6 More cleanup 2014-05-04 14:16:53 +02:00
Alexander Bock
8d2e86447c Require renderables to derive from PropertyOwner and use dictionary-constructor 2014-05-03 18:44:39 +02:00
Alexander Bock
a53888cd26 Changes in clang-format
Applied formatting to some files
2014-05-03 18:23:16 +02:00
Jonas Strandstedt
89eeae62d0 Restructuring for OpenSpace tests
- Moved all OpenSpace headers to separate include directory
- Added OpenSpaceTests binary with OPENSPACE_HAVE_TESTS define
- Added CMake setting of BASE_DIR
- Added OpenSpace initial tests for SceneGraph and SceneGraphNodes
- Added OpenSpace initial tests for psc and pss
- Restructured OpenSpace so no GL functions are called in constructors
to make the classes testable

- Todo: Make the base dir possible to set through command line argument
and configuration file
2014-03-19 14:57:10 -04:00