Commit Graph

53 Commits

Author SHA1 Message Date
Alexander Bock 46b207b379 Removing some cppcheck warnings 2016-04-14 22:49:03 -04:00
Alexander Bock b43a454e9f Fix GCC compiler warnings 2016-04-14 22:40:25 -04:00
Alexander Bock d0f4ab6f60 Removing Jenkins warnings 2016-02-05 23:28:45 +01:00
Alexander Bock 877a4d1ba6 Updated copyright header 2016-02-05 17:43:21 +01:00
Alexander Bock 3806318b0d Applied Ghoul cleanups 2015-11-22 21:26:02 -05:00
Alexander Bock 2cc1a91fad Rename SpiceKernelException to SpiceException 2015-11-21 23:15:48 -05:00
Alexander Bock a087fe47e3 Add fromString methods for enums 2015-11-21 10:39:26 -05:00
Alexander Bock 443963a151 Finished cleanup of SpiceManager 2015-11-20 18:36:03 -05:00
Alexander Bock 2c84368b0b More cleaning of SpiceManager 2015-11-20 00:54:19 -05:00
Alexander Bock 12fdb23684 More cleanup in SpiceManager 2015-11-19 19:47:50 -05:00
Alexander Bock 16897bb8d4 Make the aberration correction specification for targetPosition in SpiceManager explicit by including a seprate class for it 2015-11-19 15:33:57 -05:00
Alexander Bock 11fec9387b More changes on the documentation and Exception handling in SpiceManager
Change some interfaces on SpiceManager
Removed target position return in powerscaled coordinates and only use glm::dvec4 instead as the Spice library does not have higher accuracy anyway
2015-11-19 13:40:44 -05:00
Alexander Bock fad2c642f8 Cleanup of SpiceManager by introducing exceptions
Catch exceptions in RenderableShadowCylinder and LabelParser
Catch exceptions in RenderableFov and Hongkangparser
2015-11-18 21:55:25 -05:00
Alexander Bock d1ca5bd941 More cleanup of SpiceManager 2015-11-18 01:15:58 -05:00
Alexander Bock f7f5f2e262 Started cleanup of SpiceManager
Clean boost message output
Update to new Ghoul with cppformat library
2015-11-17 23:54:54 -05:00
Alexander Bock 2bde14b728 Fix crash that happens when SpiceManager is deinitialized 2015-06-26 19:20:56 +02:00
Alexander Bock 1906c525e3 Make SpiceManager derive from Singleton 2015-06-22 16:01:23 +02:00
Michal Marcinkowski 7492fa2f6c New Additions:
Shadow cylinders extending from planet terminator in opposite dir of sun
Plane that displays the global texture map of a planet as projections appear
^latter is an addition to RenderablePlane class, a renderable plane can have
boolean keyword "ProjectionListener" - determines whether or not it displays
2015-06-03 19:10:34 -04:00
Alexander Bock d508998b45 Merge branch 'develop' into feature/osx
Conflicts:
	ext/ghoul
2015-05-08 16:28:35 +02:00
Anton Arbring a993dfb42f Storing frame-to-body relationship
Store frames for bodies in SpiceManager, still adding "IAU_" if
no frame is added for the body. Adding frames in renderableModel for
67p to get proper inertial frame.
2015-05-04 19:20:14 -04:00
Alexander Bock b403513d63 Updated Spice version
More changes to make the application run
2015-04-28 15:07:58 +02:00
Anton Arbring 9226dd2d6b Setting show errors to false by default in Spicemanager
Removed debugging printouts
2015-04-22 21:43:54 -04:00
Anton Arbring 163796cfdf Simplified error suppressing in Spicemanager 2015-04-21 15:50:40 -04:00
Anton Arbring b95b7d9bb8 Fixing Jenkins error in spicemanager.h, double namespace qualification 2015-04-10 18:52:20 -04:00
Anton Arbring 914b3896ad SPICE error handling, position/rotation estimation etc...
- When loading SPICE kernels, coverage for each body is stored.
- If the body does not have spk coverage a position is estimated.
- Added "pulsating" transparency levels for renderableModels with
  estimated position.
- Spice manager clean up, left a few unused methods but removed a lot of
  dead code.
- To support multiple missins being loaded, some errors are simply
  ignored in spicemanager, for better or worse.
- Added start time and stop time as dictionary keys for renderables.
- Made RenderableTrails only show the time between gaps.
- Added but out commented vesta coordinate system swich in renderengine.

NOTE: Renderables using spiceEphemeris will give errors if body keyword
is omitted in modfile (When checking SPK coverage in position update).
2015-04-09 17:35:30 -04:00
Anton Arbring b79e6df763 Planets shape creation & fixed texture longitude
Instead of spheres, the planets are now created as triaxial ellipsoids
according to the corresponding radii values in the SPICE kernels (if such
values are available). Apart from being more scientifically accurate, the
planets are shaped as the intersection functions in SPICE expects.

The textures will now also be aligned in longitude as in reality (w.r.t.
UTC) when using a texture map ranging from -180 in the left end to +180 on the
right, with 0 longitude in the middle (such as Greenwich in Earth texture)
2015-03-20 19:59:26 -04:00
Alexander Bock 45e4dad29d Implement reference counting for SPICE kernels to shield SPICE from loading kernels multiple times
Passing result of surface intercept method by parameter and returning success status
2015-02-24 10:29:29 +01:00
Alexander Bock 45c148b2c8 Added error checking codes to SpiceManager
Changed method to return instrument visibility by reference and used return value for errors
2015-02-23 21:36:37 +01:00
Alexander Bock f59c9819c4 Fixing gcc warnings 2015-02-23 19:35:47 +01:00
Alexander Bock fb2c99b5ed Removed cppcheck warnings
Removed unused Interface file
2015-02-23 19:08:15 +01:00
Joakim Kilby 3d04af03a3 Merge branch 'develop' into plutoViz
Conflicts:
	include/openspace/rendering/planets/simplespheregeometry.h
	include/openspace/util/powerscaledsphere.h
	openspace.cfg
	shaders/pscstandard_fs.glsl
	src/engine/openspaceengine.cpp
	src/rendering/planets/renderableplanet.cpp
	src/rendering/renderablefov.cpp
	src/rendering/renderabletrail.cpp
	src/rendering/renderengine.cpp
	src/scenegraph/scenegraph.cpp
2015-02-18 15:52:35 +01:00
Alexander Bock a6ebddb8eb Updated copyright header in all files 2015-02-17 14:20:03 +01:00
Michal Marcinkowski 238aa09381 Refinements to image sequencing class and other, adaptation to the pluto setup 2015-01-29 13:01:31 -05:00
Michal Marcinkowski 70d24185de intermediate commit prior to merge 2014-12-12 11:52:31 -05:00
Alexander Bock 7226b23cc0 Fixing doxygen warnings 2014-12-09 19:11:49 +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
michal 3bb9912356 latest changes involve adding an unfinished class called "renderable fov"- ignore that one.
The rest is pretty straight forward, renderable trail is the ephemeris class and wavefrontobject is a very crudely constructed reader... ill fix that on monday
2014-10-11 01:43:31 -04:00
Jonas Strandstedt 5fcf9f0c6e Merge branch 'develop' into solarsystem2
Conflicts:
	src/util/spicemanager.cpp
2014-10-08 14:36:28 +02:00
Alexander Bock 4bbe60637d Finished cleanup of SpiceManager 2014-10-07 21:45:24 +02:00
Alexander Bock 5763c54a49 Added error reporting function to SpiceManager
Started cleaning up codebase
2014-10-07 02:22:19 +02:00
Alexander Bock 67f0fb3c08 Merge branch 'develop' into solarsystem2
Conflicts:
	.gitignore
	include/openspace/util/spicemanager.h
	shaders/star_fs.glsl
	src/engine/openspaceengine.cpp
	src/rendering/renderengine.cpp
	src/rendering/stars/renderablestars.cpp
	src/scenegraph/scenegraph.cpp
	src/scenegraph/scenegraphnode.cpp
2014-10-06 22:22:30 +02:00
Alexander Bock f7af8256dd Finished cleaning the SpiceManager 2014-10-06 01:33:56 +02:00
michal 938c442dd6 got renderable ephemeris working for larger deltas, problems with leap years though 2014-10-02 11:00:43 -04:00
Alexander Bock e97d5f17bc More SpiceManager cleanup 2014-09-28 16:13:26 +02:00
Alexander Bock 83e7398fee GCC fixes, fixed unit tests 2014-09-28 03:03:24 +02:00
Alexander Bock e6ab0f51fc Started cleanup of SpiceManager 2014-09-28 02:28:14 +02:00
Alexander Bock b667a4910c Reworked how SPICE kernels are loaded
- SpiceEphemeris can provide a list of kernels that are loaded when created
- Time and Leapsecond kernels are provided in the openspace.cfg file
2014-09-28 00:06:53 +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 b6246f6538 Renamed methods in SpiceManager
Started change of Time class
2014-09-13 18:02:39 +02:00