From dbb599a5fa119dbe328a735f77d14ed7735d71ab Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Tue, 13 Dec 2016 14:43:44 +0100 Subject: [PATCH] Separate base module into base and space --- modules/base/CMakeLists.txt | 33 +--- modules/base/basemodule.cpp | 30 --- .../base/rendering/renderablecrawlingline.cpp | 182 ------------------ modules/fieldlines/include.cmake | 1 + modules/galaxy/include.cmake | 1 + modules/globebrowsing/include.cmake | 1 + modules/iswa/include.cmake | 4 +- modules/kameleon/include.cmake | 3 + modules/multiresvolume/include.cmake | 3 + modules/newhorizons/include.cmake | 4 + .../rendering/renderableplanetprojection.cpp | 2 +- modules/space/CMakeLists.txt | 78 ++++++++ modules/space/include.cmake | 1 + .../rendering/planetgeometry.cpp | 4 +- .../rendering/planetgeometry.h | 6 +- .../renderableconstellationbounds.cpp | 6 +- .../rendering/renderableconstellationbounds.h | 6 +- .../rendering/renderableplanet.cpp | 20 +- .../rendering/renderableplanet.h | 6 +- .../rendering/renderablerings.cpp | 8 +- .../rendering/renderablerings.h | 7 +- .../rendering/renderablestars.cpp | 10 +- .../rendering/renderablestars.h | 6 +- .../rendering/simplespheregeometry.cpp | 2 +- .../rendering/simplespheregeometry.h | 12 +- .../rotation/spicerotation.cpp | 4 +- .../{base => space}/rotation/spicerotation.h | 6 +- .../shaders/constellationbounds_fs.glsl | 0 .../shaders/constellationbounds_vs.glsl | 0 .../shaders/nighttexture_fs.glsl | 0 .../shaders/nighttexture_vs.glsl | 0 .../shaders/renderableplanet_fs.glsl | 0 .../shaders/renderableplanet_vs.glsl | 0 modules/{base => space}/shaders/rings_fs.glsl | 0 modules/{base => space}/shaders/rings_vs.glsl | 0 .../{base => space}/shaders/shadow_fs.glsl | 0 .../shaders/shadow_nighttexture_fs.glsl | 0 .../shaders/shadow_nighttexture_vs.glsl | 0 .../{base => space}/shaders/shadow_vs.glsl | 0 modules/{base => space}/shaders/star_fs.glsl | 0 modules/{base => space}/shaders/star_ge.glsl | 0 modules/{base => space}/shaders/star_vs.glsl | 0 modules/space/spacemodule.cpp | 91 +++++++++ modules/space/spacemodule.h | 44 +++++ .../translation/keplertranslation.cpp | 5 +- .../translation/keplertranslation.h | 6 +- .../translation/spicetranslation.cpp | 4 +- .../translation/spicetranslation.h | 6 +- .../translation/tletranslation.cpp | 4 +- .../translation/tletranslation.h | 8 +- modules/toyvolume/include.cmake | 4 + modules/volume/include.cmake | 1 + 52 files changed, 306 insertions(+), 313 deletions(-) delete mode 100644 modules/base/rendering/renderablecrawlingline.cpp create mode 100644 modules/kameleon/include.cmake create mode 100644 modules/space/CMakeLists.txt create mode 100644 modules/space/include.cmake rename modules/{base => space}/rendering/planetgeometry.cpp (97%) rename modules/{base => space}/rendering/planetgeometry.h (94%) rename modules/{base => space}/rendering/renderableconstellationbounds.cpp (98%) rename modules/{base => space}/rendering/renderableconstellationbounds.h (96%) rename modules/{base => space}/rendering/renderableplanet.cpp (97%) rename modules/{base => space}/rendering/renderableplanet.h (96%) rename modules/{base => space}/rendering/renderablerings.cpp (98%) rename modules/{base => space}/rendering/renderablerings.h (95%) rename modules/{base => space}/rendering/renderablestars.cpp (99%) rename modules/{base => space}/rendering/renderablestars.h (95%) rename modules/{base => space}/rendering/simplespheregeometry.cpp (98%) rename modules/{base => space}/rendering/simplespheregeometry.h (90%) rename modules/{base => space}/rotation/spicerotation.cpp (98%) rename modules/{base => space}/rotation/spicerotation.h (94%) rename modules/{base => space}/shaders/constellationbounds_fs.glsl (100%) rename modules/{base => space}/shaders/constellationbounds_vs.glsl (100%) rename modules/{base => space}/shaders/nighttexture_fs.glsl (100%) rename modules/{base => space}/shaders/nighttexture_vs.glsl (100%) rename modules/{base => space}/shaders/renderableplanet_fs.glsl (100%) rename modules/{base => space}/shaders/renderableplanet_vs.glsl (100%) rename modules/{base => space}/shaders/rings_fs.glsl (100%) rename modules/{base => space}/shaders/rings_vs.glsl (100%) rename modules/{base => space}/shaders/shadow_fs.glsl (100%) rename modules/{base => space}/shaders/shadow_nighttexture_fs.glsl (100%) rename modules/{base => space}/shaders/shadow_nighttexture_vs.glsl (100%) rename modules/{base => space}/shaders/shadow_vs.glsl (100%) rename modules/{base => space}/shaders/star_fs.glsl (100%) rename modules/{base => space}/shaders/star_ge.glsl (100%) rename modules/{base => space}/shaders/star_vs.glsl (100%) create mode 100644 modules/space/spacemodule.cpp create mode 100644 modules/space/spacemodule.h rename modules/{base => space}/translation/keplertranslation.cpp (99%) rename modules/{base => space}/translation/keplertranslation.h (97%) rename modules/{base => space}/translation/spicetranslation.cpp (98%) rename modules/{base => space}/translation/spicetranslation.h (93%) rename modules/{base => space}/translation/tletranslation.cpp (99%) rename modules/{base => space}/translation/tletranslation.h (94%) diff --git a/modules/base/CMakeLists.txt b/modules/base/CMakeLists.txt index 2a0a2f4f1a..87bfff60d8 100644 --- a/modules/base/CMakeLists.txt +++ b/modules/base/CMakeLists.txt @@ -27,27 +27,17 @@ include(${OPENSPACE_CMAKE_EXT_DIR}/module_definition.cmake) set(HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/rendering/modelgeometry.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/multimodelgeometry.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/planetgeometry.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableconstellationbounds.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablemodel.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablepath.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplane.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplanet.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablerings.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablesphere.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablesphericalgrid.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablestars.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderabletrail.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderabletrailorbit.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderabletrailtrajectory.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/simplespheregeometry.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/screenspaceframebuffer.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/screenspaceimage.h - ${CMAKE_CURRENT_SOURCE_DIR}/translation/keplertranslation.h - ${CMAKE_CURRENT_SOURCE_DIR}/translation/spicetranslation.h ${CMAKE_CURRENT_SOURCE_DIR}/translation/statictranslation.h - ${CMAKE_CURRENT_SOURCE_DIR}/translation/tletranslation.h - ${CMAKE_CURRENT_SOURCE_DIR}/rotation/spicerotation.h ${CMAKE_CURRENT_SOURCE_DIR}/rotation/staticrotation.h ${CMAKE_CURRENT_SOURCE_DIR}/scale/staticscale.h ) @@ -56,41 +46,27 @@ source_group("Header Files" FILES ${HEADER_FILES}) set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/rendering/modelgeometry.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/multimodelgeometry.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/planetgeometry.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableconstellationbounds.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablemodel.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablepath.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplane.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplanet.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablerings.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablesphere.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablesphericalgrid.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablestars.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderabletrail.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderabletrailorbit.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderabletrailtrajectory.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/simplespheregeometry.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/screenspaceframebuffer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/screenspaceimage.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/translation/keplertranslation.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/translation/spicetranslation.cpp ${CMAKE_CURRENT_SOURCE_DIR}/translation/statictranslation.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/translation/tletranslation.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rotation/spicerotation.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rotation/staticrotation.cpp ${CMAKE_CURRENT_SOURCE_DIR}/scale/staticscale.cpp ) source_group("Source Files" FILES ${SOURCE_FILES}) set(SHADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/constellationbounds_fs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/constellationbounds_vs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/imageplane_fs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/imageplane_vs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/model_fs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/model_vs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/nighttexture_fs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/nighttexture_vs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/path_fs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/path_gs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/path_vs.glsl @@ -100,15 +76,10 @@ set(SHADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/shaders/pscstandard_vs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/renderabletrail_fs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/renderabletrail_vs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/rings_vs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/rings_fs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/sphere_fs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/sphere_vs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/star_fs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/star_ge.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/star_vs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/screenspace_fs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/screenspace_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/sphere_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/sphere_vs.glsl ) source_group("Shader Files" FILES ${SHADER_FILES}) diff --git a/modules/base/basemodule.cpp b/modules/base/basemodule.cpp index 535a8daa24..7f7794a24c 100644 --- a/modules/base/basemodule.cpp +++ b/modules/base/basemodule.cpp @@ -30,31 +30,21 @@ #include -#include #include #include -#include -#include #include #include -#include #include #include -#include #include -#include #include #include #include #include -#include #include -#include -#include #include -#include #include @@ -67,10 +57,6 @@ BaseModule::BaseModule() {} void BaseModule::internalInitialize() { - FactoryManager::ref().addFactory( - std::make_unique>(), - "PlanetGeometry" - ); FactoryManager::ref().addFactory( std::make_unique>(), "ModelGeometry" @@ -98,41 +84,29 @@ void BaseModule::internalInitialize() { auto fRenderable = FactoryManager::ref().factory(); ghoul_assert(fRenderable, "Renderable factory was not created"); - fRenderable->registerClass("RenderableConstellationBounds"); fRenderable->registerClass("RenderableModel"); fRenderable->registerClass("RenderablePath"); fRenderable->registerClass("RenderablePlane"); - fRenderable->registerClass("RenderablePlanet"); - fRenderable->registerClass("RenderableRings"); fRenderable->registerClass("RenderableSphere"); fRenderable->registerClass("RenderableSphericalGrid"); - fRenderable->registerClass("RenderableStars"); fRenderable->registerClass("RenderableTrailOrbit"); fRenderable->registerClass("RenderableTrailTrajectory"); auto fTranslation = FactoryManager::ref().factory(); ghoul_assert(fTranslation, "Ephemeris factory was not created"); - fTranslation->registerClass("KeplerTranslation"); fTranslation->registerClass("StaticTranslation"); - fTranslation->registerClass("SpiceTranslation"); - fTranslation->registerClass("TLETranslation"); auto fRotation = FactoryManager::ref().factory(); ghoul_assert(fRotation, "Rotation factory was not created"); fRotation->registerClass("StaticRotation"); - fRotation->registerClass("SpiceRotation"); auto fScale = FactoryManager::ref().factory(); ghoul_assert(fScale, "Scale factory was not created"); fScale->registerClass ("StaticScale"); - auto fPlanetGeometry = FactoryManager::ref().factory(); - ghoul_assert(fPlanetGeometry, "Planet geometry factory was not created"); - fPlanetGeometry->registerClass("SimpleSphere"); - auto fModelGeometry = FactoryManager::ref().factory(); ghoul_assert(fModelGeometry, "Model geometry factory was not created"); fModelGeometry->registerClass("MultiModelGeometry"); @@ -140,15 +114,11 @@ void BaseModule::internalInitialize() { std::vector BaseModule::documentations() const { return { - SpiceRotation::Documentation(), StaticScale::Documentation(), StaticTranslation::Documentation(), - SpiceTranslation::Documentation(), - RenderableRings::Documentation(), RenderableTrailOrbit::Documentation(), RenderableTrailTrajectory::Documentation(), modelgeometry::ModelGeometry::Documentation(), - planetgeometry::PlanetGeometry::Documentation() }; } diff --git a/modules/base/rendering/renderablecrawlingline.cpp b/modules/base/rendering/renderablecrawlingline.cpp deleted file mode 100644 index 15866f580f..0000000000 --- a/modules/base/rendering/renderablecrawlingline.cpp +++ /dev/null @@ -1,182 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2015 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include -#include -//#include - -namespace { - const std::string _loggerCat = "RenderableCrawlingLine"; - - const char* KeySource = "Source"; - const char* KeyTarget = "Target"; - const char* KeyInstrument = "Instrument"; - const char* KeyReferenceFrame = "Frame"; - const char* keyColor = "RGB"; - - static const int SourcePosition = 0; - static const int TargetPosition = 1; -} - -namespace openspace { - -RenderableCrawlingLine::RenderableCrawlingLine(const ghoul::Dictionary& dictionary) - : Renderable(dictionary) - , _program(nullptr) - , _imageSequenceTime(-1.f) - , _vao(0) - , _vbo(0) -{ - dictionary.getValue(KeySource, _source); - dictionary.getValue(KeyTarget, _target); - dictionary.getValue(KeyInstrument, _instrumentName); - dictionary.getValue(KeyReferenceFrame, _referenceFrame); - - - if (dictionary.hasKeyAndValue(keyColor)) - dictionary.getValue(keyColor, _lineColor); - else - _lineColor = glm::vec3(1); -} - -bool RenderableCrawlingLine::isReady() const { - bool ready = true; - ready &= !_source.empty(); - ready &= !_target.empty(); - ready &= !_instrumentName.empty(); - ready &= (_program != nullptr); - return ready; -} - -bool RenderableCrawlingLine::initialize() { - _frameCounter = 0; - bool completeSuccess = true; - _program = ghoul::opengl::ProgramObject::Build("RenderableCrawlingLine", - "${SHADERS}/modules/crawlingline/crawlingline_vs.glsl", - "${SHADERS}/modules/crawlingline/crawlingline_fs.glsl" - ); - if (!_program) - return false; - - glGenVertexArrays(1, &_vao); - glGenBuffers(1, &_vbo); - - glBindVertexArray(_vao); - glBindBuffer(GL_ARRAY_BUFFER, _vbo); - glBufferData(GL_ARRAY_BUFFER, 2 * sizeof(psc), NULL, GL_DYNAMIC_DRAW); - - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, (void*)0); - - glBindVertexArray(0); - - return completeSuccess; -} - -bool RenderableCrawlingLine::deinitialize(){ - glDeleteVertexArrays(1, &_vao); - _vao = 0; - glDeleteBuffers(1, &_vbo); - _vbo = 0; - return true; -} - -void RenderableCrawlingLine::render(const RenderData& data) { - if (_drawLine) { - _program->activate(); - _frameCounter++; - // fetch data - psc currentPosition = data.position; - psc campos = data.camera.position(); - glm::mat4 camrot = data.camera.viewRotationMatrix(); - - glm::mat4 transform = glm::mat4(1); - - // setup the data to the shader - _program->setUniform("ViewProjection", data.camera.viewProjectionMatrix()); - _program->setUniform("ModelTransform", transform); - - int frame = _frameCounter % 60; - float fadingFactor = static_cast(sin((frame * pi_c()) / 60)); - float alpha = 0.6f + fadingFactor*0.4f; - - glLineWidth(2.f); - - _program->setUniform("_alpha", alpha); - _program->setUniform("color", _lineColor); - setPscUniforms(_program, &data.camera, data.position); - - glBindVertexArray(_vao); - glBindBuffer(GL_ARRAY_BUFFER, _vbo); - glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(psc) * 2, _positions); - - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, 0); - - glDrawArrays(GL_LINES, 0, 2); - glBindVertexArray(0); - - _program->deactivate(); - } -} - -void RenderableCrawlingLine::update(const UpdateData& data) { - if (_program->isDirty()) - _program->rebuildFromFile(); - glm::dmat3 transformMatrix = glm::dmat3(1); - openspace::SpiceManager::ref().getPositionTransformMatrix(_source, _referenceFrame, data.time, transformMatrix); - - glm::mat4 tmp = glm::mat4(1); - for (int i = 0; i < 3; i++) { - for (int j = 0; j < 3; j++){ - tmp[i][j] = static_cast(transformMatrix[i][j]); - } - } - - _positions[SourcePosition] = PowerScaledCoordinate::CreatePowerScaledCoordinate(0, 0, 0); - - std::string shape, instrument; - std::vector bounds; - glm::dvec3 boresight; - - bool found = openspace::SpiceManager::ref().getFieldOfView(_source, shape, instrument, boresight, bounds); - if (!found) - LERROR("Could not find field of view for instrument"); - glm::vec4 target(boresight[0], boresight[1], boresight[2], 12); - target = tmp * target; - - _positions[TargetPosition] = target; - - if (ImageSequencer2::ref().isReady()) { - _imageSequenceTime = ImageSequencer2::ref().instrumentActiveTime(_instrumentName); - _drawLine = _imageSequenceTime != -1.f; - } -} - - -} \ No newline at end of file diff --git a/modules/fieldlines/include.cmake b/modules/fieldlines/include.cmake index 3751826997..1172d03089 100644 --- a/modules/fieldlines/include.cmake +++ b/modules/fieldlines/include.cmake @@ -1,3 +1,4 @@ set (OPENSPACE_DEPENDENCIES kameleon + space ) \ No newline at end of file diff --git a/modules/galaxy/include.cmake b/modules/galaxy/include.cmake index 1fbd4a3ae5..b72153a3c4 100644 --- a/modules/galaxy/include.cmake +++ b/modules/galaxy/include.cmake @@ -1,3 +1,4 @@ set (OPENSPACE_DEPENDENCIES volume + space ) \ No newline at end of file diff --git a/modules/globebrowsing/include.cmake b/modules/globebrowsing/include.cmake index 351198c5ba..f442a1eee4 100644 --- a/modules/globebrowsing/include.cmake +++ b/modules/globebrowsing/include.cmake @@ -1,3 +1,4 @@ set (OPENSPACE_DEPENDENCIES debugging + space ) \ No newline at end of file diff --git a/modules/iswa/include.cmake b/modules/iswa/include.cmake index 4569df0ac7..8492fd468d 100644 --- a/modules/iswa/include.cmake +++ b/modules/iswa/include.cmake @@ -1,3 +1,5 @@ set (OPENSPACE_DEPENDENCIES - base kameleon + base + kameleon + space ) \ No newline at end of file diff --git a/modules/kameleon/include.cmake b/modules/kameleon/include.cmake new file mode 100644 index 0000000000..1231f1db18 --- /dev/null +++ b/modules/kameleon/include.cmake @@ -0,0 +1,3 @@ +set (OPENSPACE_DEPENDENCIES + space +) \ No newline at end of file diff --git a/modules/multiresvolume/include.cmake b/modules/multiresvolume/include.cmake index e69de29bb2..1231f1db18 100644 --- a/modules/multiresvolume/include.cmake +++ b/modules/multiresvolume/include.cmake @@ -0,0 +1,3 @@ +set (OPENSPACE_DEPENDENCIES + space +) \ No newline at end of file diff --git a/modules/newhorizons/include.cmake b/modules/newhorizons/include.cmake index ffea0ac430..3c69ad5f63 100644 --- a/modules/newhorizons/include.cmake +++ b/modules/newhorizons/include.cmake @@ -1 +1,5 @@ set(DEFAULT_MODULE ON) + +set (OPENSPACE_DEPENDENCIES + space +) \ No newline at end of file diff --git a/modules/newhorizons/rendering/renderableplanetprojection.cpp b/modules/newhorizons/rendering/renderableplanetprojection.cpp index 9ff69bc5e7..3902c44978 100644 --- a/modules/newhorizons/rendering/renderableplanetprojection.cpp +++ b/modules/newhorizons/rendering/renderableplanetprojection.cpp @@ -24,7 +24,7 @@ #include -#include +#include #include #include diff --git a/modules/space/CMakeLists.txt b/modules/space/CMakeLists.txt new file mode 100644 index 0000000000..b4fc052ad4 --- /dev/null +++ b/modules/space/CMakeLists.txt @@ -0,0 +1,78 @@ +######################################################################################### +# # +# OpenSpace # +# # +# Copyright (c) 2014-2016 # +# # +# Permission is hereby granted, free of charge, to any person obtaining a copy of this # +# software and associated documentation files (the "Software"), to deal in the Software # +# without restriction, including without limitation the rights to use, copy, modify, # +# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to # +# permit persons to whom the Software is furnished to do so, subject to the following # +# conditions: # +# # +# The above copyright notice and this permission notice shall be included in all copies # +# or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, # +# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # +# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT # +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF # +# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE # +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # +######################################################################################### + +include(${OPENSPACE_CMAKE_EXT_DIR}/module_definition.cmake) + +set(HEADER_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/planetgeometry.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableconstellationbounds.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplanet.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablerings.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablestars.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/simplespheregeometry.h + ${CMAKE_CURRENT_SOURCE_DIR}/translation/keplertranslation.h + ${CMAKE_CURRENT_SOURCE_DIR}/translation/spicetranslation.h + ${CMAKE_CURRENT_SOURCE_DIR}/translation/tletranslation.h + ${CMAKE_CURRENT_SOURCE_DIR}/rotation/spicerotation.h +) +source_group("Header Files" FILES ${HEADER_FILES}) + +set(SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/planetgeometry.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableconstellationbounds.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplanet.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablerings.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablestars.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/simplespheregeometry.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/translation/keplertranslation.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/translation/spicetranslation.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/translation/tletranslation.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rotation/spicerotation.cpp +) +source_group("Source Files" FILES ${SOURCE_FILES}) + +set(SHADER_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/constellationbounds_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/constellationbounds_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/nighttexture_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/nighttexture_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/renderableplanet_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/renderableplanet_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/rings_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/rings_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shadow_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shadow_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shadow_nighttexture_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shadow_nighttexture_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/star_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/star_ge.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/star_vs.glsl +) +source_group("Shader Files" FILES ${SHADER_FILES}) + +create_new_module( + "Space" + space_module + ${HEADER_FILES} ${SOURCE_FILES} ${SHADER_FILES} +) diff --git a/modules/space/include.cmake b/modules/space/include.cmake new file mode 100644 index 0000000000..ffea0ac430 --- /dev/null +++ b/modules/space/include.cmake @@ -0,0 +1 @@ +set(DEFAULT_MODULE ON) diff --git a/modules/base/rendering/planetgeometry.cpp b/modules/space/rendering/planetgeometry.cpp similarity index 97% rename from modules/base/rendering/planetgeometry.cpp rename to modules/space/rendering/planetgeometry.cpp index 0065e91703..8d437fb539 100644 --- a/modules/base/rendering/planetgeometry.cpp +++ b/modules/space/rendering/planetgeometry.cpp @@ -22,7 +22,7 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include #include #include @@ -39,7 +39,7 @@ Documentation PlanetGeometry::Documentation() { using namespace documentation; return { "Planet Geometry", - "base_geometry_planet", + "space_geometry_planet", { { KeyType, diff --git a/modules/base/rendering/planetgeometry.h b/modules/space/rendering/planetgeometry.h similarity index 94% rename from modules/base/rendering/planetgeometry.h rename to modules/space/rendering/planetgeometry.h index d9a44a7d7c..d1690a4924 100644 --- a/modules/base/rendering/planetgeometry.h +++ b/modules/space/rendering/planetgeometry.h @@ -22,8 +22,8 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_BASE___PLANETGEOMETRY___H__ -#define __OPENSPACE_MODULE_BASE___PLANETGEOMETRY___H__ +#ifndef __OPENSPACE_MODULE_SPACE___PLANETGEOMETRY___H__ +#define __OPENSPACE_MODULE_SPACE___PLANETGEOMETRY___H__ #include @@ -53,4 +53,4 @@ protected: } // namespace planetgeometry } // namespace openspace -#endif // __OPENSPACE_MODULE_BASE___PLANETGEOMETRY___H__ +#endif // __OPENSPACE_MODULE_SPACE___PLANETGEOMETRY___H__ diff --git a/modules/base/rendering/renderableconstellationbounds.cpp b/modules/space/rendering/renderableconstellationbounds.cpp similarity index 98% rename from modules/base/rendering/renderableconstellationbounds.cpp rename to modules/space/rendering/renderableconstellationbounds.cpp index b75c5fdbc7..49e7f01968 100644 --- a/modules/base/rendering/renderableconstellationbounds.cpp +++ b/modules/space/rendering/renderableconstellationbounds.cpp @@ -25,7 +25,7 @@ // openspace #include #include -#include +#include #include #include @@ -94,8 +94,8 @@ RenderableConstellationBounds::RenderableConstellationBounds( bool RenderableConstellationBounds::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _program = renderEngine.buildRenderProgram("ConstellationBounds", - "${MODULE_BASE}/shaders/constellationbounds_vs.glsl", - "${MODULE_BASE}/shaders/constellationbounds_fs.glsl"); + "${MODULE_SPACE}/shaders/constellationbounds_vs.glsl", + "${MODULE_SPACE}/shaders/constellationbounds_fs.glsl"); if (!_program) return false; diff --git a/modules/base/rendering/renderableconstellationbounds.h b/modules/space/rendering/renderableconstellationbounds.h similarity index 96% rename from modules/base/rendering/renderableconstellationbounds.h rename to modules/space/rendering/renderableconstellationbounds.h index 9b93a669f0..68a1014513 100644 --- a/modules/base/rendering/renderableconstellationbounds.h +++ b/modules/space/rendering/renderableconstellationbounds.h @@ -22,8 +22,8 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_BASE___RENDERABLECONSTELLATIONBOUNDS___H__ -#define __OPENSPACE_MODULE_BASE___RENDERABLECONSTELLATIONBOUNDS___H__ +#ifndef __OPENSPACE_MODULE_SPACE___RENDERABLECONSTELLATIONBOUNDS___H__ +#define __OPENSPACE_MODULE_SPACE___RENDERABLECONSTELLATIONBOUNDS___H__ #include @@ -126,4 +126,4 @@ private: } // namespace openspace -#endif // __OPENSPACE_MODULE_BASE___RENDERABLECONSTELLATIONBOUNDS___H__ +#endif // __OPENSPACE_MODULE_SPACE___RENDERABLECONSTELLATIONBOUNDS___H__ diff --git a/modules/base/rendering/renderableplanet.cpp b/modules/space/rendering/renderableplanet.cpp similarity index 97% rename from modules/base/rendering/renderableplanet.cpp rename to modules/space/rendering/renderableplanet.cpp index fdccd9920e..f113d78f72 100644 --- a/modules/base/rendering/renderableplanet.cpp +++ b/modules/space/rendering/renderableplanet.cpp @@ -23,12 +23,12 @@ ****************************************************************************************/ // open space includes -#include +#include #include #include #include -#include +#include #include #include #include @@ -242,8 +242,8 @@ bool RenderablePlanet::initialize() { // shadow program _programObject = renderEngine.buildRenderProgram( "shadowNightProgram", - "${MODULE_BASE}/shaders/shadow_nighttexture_vs.glsl", - "${MODULE_BASE}/shaders/shadow_nighttexture_fs.glsl"); + "${MODULE_SPACE}/shaders/shadow_nighttexture_vs.glsl", + "${MODULE_SPACE}/shaders/shadow_nighttexture_fs.glsl"); if (!_programObject) return false; } @@ -251,8 +251,8 @@ bool RenderablePlanet::initialize() { // shadow program _programObject = renderEngine.buildRenderProgram( "shadowProgram", - "${MODULE_BASE}/shaders/shadow_vs.glsl", - "${MODULE_BASE}/shaders/shadow_fs.glsl"); + "${MODULE_SPACE}/shaders/shadow_vs.glsl", + "${MODULE_SPACE}/shaders/shadow_fs.glsl"); if (!_programObject) return false; } @@ -260,8 +260,8 @@ bool RenderablePlanet::initialize() { // Night texture program _programObject = renderEngine.buildRenderProgram( "nightTextureProgram", - "${MODULE_BASE}/shaders/nighttexture_vs.glsl", - "${MODULE_BASE}/shaders/nighttexture_fs.glsl"); + "${MODULE_SPACE}/shaders/nighttexture_vs.glsl", + "${MODULE_SPACE}/shaders/nighttexture_fs.glsl"); if (!_programObject) return false; } @@ -269,8 +269,8 @@ bool RenderablePlanet::initialize() { // pscstandard _programObject = renderEngine.buildRenderProgram( "pscstandard", - "${MODULE_BASE}/shaders/renderableplanet_vs.glsl", - "${MODULE_BASE}/shaders/renderableplanet_fs.glsl"); + "${MODULE_SPACE}/shaders/renderableplanet_vs.glsl", + "${MODULE_SPACE}/shaders/renderableplanet_fs.glsl"); if (!_programObject) return false; } diff --git a/modules/base/rendering/renderableplanet.h b/modules/space/rendering/renderableplanet.h similarity index 96% rename from modules/base/rendering/renderableplanet.h rename to modules/space/rendering/renderableplanet.h index ea066e1b3e..4c324cda3c 100644 --- a/modules/base/rendering/renderableplanet.h +++ b/modules/space/rendering/renderableplanet.h @@ -22,8 +22,8 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_BASE___RENDERABLEPLANET___H__ -#define __OPENSPACE_MODULE_BASE___RENDERABLEPLANET___H__ +#ifndef __OPENSPACE_MODULE_SPACE___RENDERABLEPLANET___H__ +#define __OPENSPACE_MODULE_SPACE___RENDERABLEPLANET___H__ #include @@ -113,4 +113,4 @@ private: } // namespace openspace -#endif // __OPENSPACE_MODULE_BASE___RENDERABLEPLANET___H__ +#endif // __OPENSPACE_MODULE_SPACE___RENDERABLEPLANET___H__ diff --git a/modules/base/rendering/renderablerings.cpp b/modules/space/rendering/renderablerings.cpp similarity index 98% rename from modules/base/rendering/renderablerings.cpp rename to modules/space/rendering/renderablerings.cpp index c225968011..75c3f8c08a 100644 --- a/modules/base/rendering/renderablerings.cpp +++ b/modules/space/rendering/renderablerings.cpp @@ -22,7 +22,7 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include #include #include @@ -47,7 +47,7 @@ Documentation RenderableRings::Documentation() { using namespace documentation; return { "Renderable Rings", - "base_renderable_rings", + "space_renderable_rings", { { "Type", @@ -135,8 +135,8 @@ bool RenderableRings::initialize() { if (!_shader) { RenderEngine& renderEngine = OsEng.renderEngine(); _shader = renderEngine.buildRenderProgram("RingProgram", - "${MODULE_BASE}/shaders/rings_vs.glsl", - "${MODULE_BASE}/shaders/rings_fs.glsl" + "${MODULE_SPACE}/shaders/rings_vs.glsl", + "${MODULE_SPACE}/shaders/rings_fs.glsl" ); _shader->setIgnoreUniformLocationError( ghoul::opengl::ProgramObject::IgnoreError::Yes diff --git a/modules/base/rendering/renderablerings.h b/modules/space/rendering/renderablerings.h similarity index 95% rename from modules/base/rendering/renderablerings.h rename to modules/space/rendering/renderablerings.h index 4cc0b13da2..2df2c64a21 100644 --- a/modules/base/rendering/renderablerings.h +++ b/modules/space/rendering/renderablerings.h @@ -22,8 +22,8 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_BASE___RENDERABLERINGS___H__ -#define __OPENSPACE_MODULE_BASE___RENDERABLERINGS___H__ +#ifndef __OPENSPACE_MODULE_SPACE___RENDERABLERINGS___H__ +#define __OPENSPACE_MODULE_SPACE___RENDERABLERINGS___H__ #include @@ -44,6 +44,7 @@ namespace ghoul { } namespace openspace { + class RenderableRings : public Renderable { public: RenderableRings(const ghoul::Dictionary& dictionary); @@ -82,4 +83,4 @@ private: } // namespace openspace -#endif // __OPENSPACE_MODULE_BASE___RENDERABLERINGS___H__ +#endif // __OPENSPACE_MODULE_SPACE___RENDERABLERINGS___H__ diff --git a/modules/base/rendering/renderablestars.cpp b/modules/space/rendering/renderablestars.cpp similarity index 99% rename from modules/base/rendering/renderablestars.cpp rename to modules/space/rendering/renderablestars.cpp index 60d999b5a3..108bb4639b 100644 --- a/modules/base/rendering/renderablestars.cpp +++ b/modules/space/rendering/renderablestars.cpp @@ -22,7 +22,7 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include #include #include @@ -86,7 +86,7 @@ openspace::Documentation RenderableStars::Documentation() { using namespace documentation; return { "RenderableStars", - "base_renderablestars", + "space_renderablestars", { { "Type", @@ -203,9 +203,9 @@ bool RenderableStars::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _program = renderEngine.buildRenderProgram("Star", - "${MODULE_BASE}/shaders/star_vs.glsl", - "${MODULE_BASE}/shaders/star_fs.glsl", - "${MODULE_BASE}/shaders/star_ge.glsl"); + "${MODULE_SPACE}/shaders/star_vs.glsl", + "${MODULE_SPACE}/shaders/star_fs.glsl", + "${MODULE_SPACE}/shaders/star_ge.glsl"); if (!_program) { return false; diff --git a/modules/base/rendering/renderablestars.h b/modules/space/rendering/renderablestars.h similarity index 95% rename from modules/base/rendering/renderablestars.h rename to modules/space/rendering/renderablestars.h index c2c583396e..69e24517b3 100644 --- a/modules/base/rendering/renderablestars.h +++ b/modules/space/rendering/renderablestars.h @@ -22,8 +22,8 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_BASE___RENDERABLESTARS___H__ -#define __OPENSPACE_MODULE_BASE___RENDERABLESTARS___H__ +#ifndef __OPENSPACE_MODULE_SPACE___RENDERABLESTARS___H__ +#define __OPENSPACE_MODULE_SPACE___RENDERABLESTARS___H__ #include @@ -105,4 +105,4 @@ private: } // namespace openspace -#endif // __OPENSPACE_MODULE_BASE___RENDERABLESTARS___H__ +#endif // __OPENSPACE_MODULE_SPACE___RENDERABLESTARS___H__ diff --git a/modules/base/rendering/simplespheregeometry.cpp b/modules/space/rendering/simplespheregeometry.cpp similarity index 98% rename from modules/base/rendering/simplespheregeometry.cpp rename to modules/space/rendering/simplespheregeometry.cpp index 3bb4358f03..468bc6403f 100644 --- a/modules/base/rendering/simplespheregeometry.cpp +++ b/modules/space/rendering/simplespheregeometry.cpp @@ -22,7 +22,7 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include #include #include diff --git a/modules/base/rendering/simplespheregeometry.h b/modules/space/rendering/simplespheregeometry.h similarity index 90% rename from modules/base/rendering/simplespheregeometry.h rename to modules/space/rendering/simplespheregeometry.h index 9997a76f90..c9b38220f2 100644 --- a/modules/base/rendering/simplespheregeometry.h +++ b/modules/space/rendering/simplespheregeometry.h @@ -22,10 +22,10 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_BASE___SIMPLESPHEREGEOMETRY___H__ -#define __OPENSPACE_MODULE_BASE___SIMPLESPHEREGEOMETRY___H__ +#ifndef __OPENSPACE_MODULE_SPACE___SIMPLESPHEREGEOMETRY___H__ +#define __OPENSPACE_MODULE_SPACE___SIMPLESPHEREGEOMETRY___H__ -#include +#include #include #include @@ -59,7 +59,7 @@ private: PowerScaledSphere* _sphere; }; -} // namespace planetgeometry -} // namespace openspace +} // namespace planetgeometry +} // namespace openspace -#endif // __OPENSPACE_MODULE_BASE___SIMPLESPHEREGEOMETRY___H__ +#endif // __OPENSPACE_MODULE_SPACE___SIMPLESPHEREGEOMETRY___H__ diff --git a/modules/base/rotation/spicerotation.cpp b/modules/space/rotation/spicerotation.cpp similarity index 98% rename from modules/base/rotation/spicerotation.cpp rename to modules/space/rotation/spicerotation.cpp index 617027c9ba..d6efccae16 100644 --- a/modules/base/rotation/spicerotation.cpp +++ b/modules/space/rotation/spicerotation.cpp @@ -22,7 +22,7 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include #include @@ -44,7 +44,7 @@ Documentation SpiceRotation::Documentation() { using namespace openspace::documentation; return { "Spice Rotation", - "base_transform_rotation_spice", + "space_transform_rotation_spice", { { "Type", diff --git a/modules/base/rotation/spicerotation.h b/modules/space/rotation/spicerotation.h similarity index 94% rename from modules/base/rotation/spicerotation.h rename to modules/space/rotation/spicerotation.h index 05110afd77..94a1ec0101 100644 --- a/modules/base/rotation/spicerotation.h +++ b/modules/space/rotation/spicerotation.h @@ -22,8 +22,8 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_BASE___SPICEROTATION___H__ -#define __OPENSPACE_MODULE_BASE___SPICEROTATION___H__ +#ifndef __OPENSPACE_MODULE_SPACE___SPICEROTATION___H__ +#define __OPENSPACE_MODULE_SPACE___SPICEROTATION___H__ #include #include @@ -46,4 +46,4 @@ private: } // namespace openspace -#endif // __OPENSPACE_MODULE_BASE___SPICEROTATION___H__ +#endif // __OPENSPACE_MODULE_SPACE___SPICEROTATION___H__ diff --git a/modules/base/shaders/constellationbounds_fs.glsl b/modules/space/shaders/constellationbounds_fs.glsl similarity index 100% rename from modules/base/shaders/constellationbounds_fs.glsl rename to modules/space/shaders/constellationbounds_fs.glsl diff --git a/modules/base/shaders/constellationbounds_vs.glsl b/modules/space/shaders/constellationbounds_vs.glsl similarity index 100% rename from modules/base/shaders/constellationbounds_vs.glsl rename to modules/space/shaders/constellationbounds_vs.glsl diff --git a/modules/base/shaders/nighttexture_fs.glsl b/modules/space/shaders/nighttexture_fs.glsl similarity index 100% rename from modules/base/shaders/nighttexture_fs.glsl rename to modules/space/shaders/nighttexture_fs.glsl diff --git a/modules/base/shaders/nighttexture_vs.glsl b/modules/space/shaders/nighttexture_vs.glsl similarity index 100% rename from modules/base/shaders/nighttexture_vs.glsl rename to modules/space/shaders/nighttexture_vs.glsl diff --git a/modules/base/shaders/renderableplanet_fs.glsl b/modules/space/shaders/renderableplanet_fs.glsl similarity index 100% rename from modules/base/shaders/renderableplanet_fs.glsl rename to modules/space/shaders/renderableplanet_fs.glsl diff --git a/modules/base/shaders/renderableplanet_vs.glsl b/modules/space/shaders/renderableplanet_vs.glsl similarity index 100% rename from modules/base/shaders/renderableplanet_vs.glsl rename to modules/space/shaders/renderableplanet_vs.glsl diff --git a/modules/base/shaders/rings_fs.glsl b/modules/space/shaders/rings_fs.glsl similarity index 100% rename from modules/base/shaders/rings_fs.glsl rename to modules/space/shaders/rings_fs.glsl diff --git a/modules/base/shaders/rings_vs.glsl b/modules/space/shaders/rings_vs.glsl similarity index 100% rename from modules/base/shaders/rings_vs.glsl rename to modules/space/shaders/rings_vs.glsl diff --git a/modules/base/shaders/shadow_fs.glsl b/modules/space/shaders/shadow_fs.glsl similarity index 100% rename from modules/base/shaders/shadow_fs.glsl rename to modules/space/shaders/shadow_fs.glsl diff --git a/modules/base/shaders/shadow_nighttexture_fs.glsl b/modules/space/shaders/shadow_nighttexture_fs.glsl similarity index 100% rename from modules/base/shaders/shadow_nighttexture_fs.glsl rename to modules/space/shaders/shadow_nighttexture_fs.glsl diff --git a/modules/base/shaders/shadow_nighttexture_vs.glsl b/modules/space/shaders/shadow_nighttexture_vs.glsl similarity index 100% rename from modules/base/shaders/shadow_nighttexture_vs.glsl rename to modules/space/shaders/shadow_nighttexture_vs.glsl diff --git a/modules/base/shaders/shadow_vs.glsl b/modules/space/shaders/shadow_vs.glsl similarity index 100% rename from modules/base/shaders/shadow_vs.glsl rename to modules/space/shaders/shadow_vs.glsl diff --git a/modules/base/shaders/star_fs.glsl b/modules/space/shaders/star_fs.glsl similarity index 100% rename from modules/base/shaders/star_fs.glsl rename to modules/space/shaders/star_fs.glsl diff --git a/modules/base/shaders/star_ge.glsl b/modules/space/shaders/star_ge.glsl similarity index 100% rename from modules/base/shaders/star_ge.glsl rename to modules/space/shaders/star_ge.glsl diff --git a/modules/base/shaders/star_vs.glsl b/modules/space/shaders/star_vs.glsl similarity index 100% rename from modules/base/shaders/star_vs.glsl rename to modules/space/shaders/star_vs.glsl diff --git a/modules/space/spacemodule.cpp b/modules/space/spacemodule.cpp new file mode 100644 index 0000000000..48cb89e9ff --- /dev/null +++ b/modules/space/spacemodule.cpp @@ -0,0 +1,91 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2016 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +namespace openspace { + +SpaceModule::SpaceModule() + : OpenSpaceModule("Space") +{} + +void SpaceModule::internalInitialize() { + FactoryManager::ref().addFactory( + std::make_unique>(), + "PlanetGeometry" + ); + + auto fRenderable = FactoryManager::ref().factory(); + ghoul_assert(fRenderable, "Renderable factory was not created"); + + fRenderable->registerClass("RenderableConstellationBounds"); + fRenderable->registerClass("RenderablePlanet"); + fRenderable->registerClass("RenderableRings"); + fRenderable->registerClass("RenderableStars"); + + auto fTranslation = FactoryManager::ref().factory(); + ghoul_assert(fTranslation, "Ephemeris factory was not created"); + + fTranslation->registerClass("KeplerTranslation"); + fTranslation->registerClass("SpiceTranslation"); + fTranslation->registerClass("TLETranslation"); + + auto fRotation = FactoryManager::ref().factory(); + ghoul_assert(fRotation, "Rotation factory was not created"); + + fRotation->registerClass("SpiceRotation"); + + auto fPlanetGeometry = FactoryManager::ref().factory(); + ghoul_assert(fPlanetGeometry, "Planet geometry factory was not created"); + fPlanetGeometry->registerClass("SimpleSphere"); +} + +std::vector SpaceModule::documentations() const { + return { + SpiceRotation::Documentation(), + SpiceTranslation::Documentation(), + RenderableRings::Documentation(), + planetgeometry::PlanetGeometry::Documentation() + }; +} + +} // namespace openspace diff --git a/modules/space/spacemodule.h b/modules/space/spacemodule.h new file mode 100644 index 0000000000..02bb96f1c1 --- /dev/null +++ b/modules/space/spacemodule.h @@ -0,0 +1,44 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2016 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_MODULE_SPACE___BASEMODULE___H__ +#define __OPENSPACE_MODULE_SPACE___BASEMODULE___H__ + +#include + +namespace openspace { + +class SpaceModule : public OpenSpaceModule { +public: + SpaceModule(); + + std::vector documentations() const override; + +protected: + void internalInitialize() override; +}; + +} // namespace openspace + +#endif // __OPENSPACE_MODULE_SPACE___BASEMODULE___H__ diff --git a/modules/base/translation/keplertranslation.cpp b/modules/space/translation/keplertranslation.cpp similarity index 99% rename from modules/base/translation/keplertranslation.cpp rename to modules/space/translation/keplertranslation.cpp index 4e3616f789..eb184ee198 100644 --- a/modules/base/translation/keplertranslation.cpp +++ b/modules/space/translation/keplertranslation.cpp @@ -22,7 +22,7 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include #include #include @@ -30,7 +30,6 @@ #include namespace { - const char* KeyEccentricity = "Eccentricity"; const char* KeySemiMajorAxis = "SemiMajorAxis"; const char* KeyInclination = "Inclination"; @@ -69,7 +68,7 @@ Documentation KeplerTranslation::Documentation() { using namespace openspace::documentation; return{ "Kepler Translation", - "base_transform_kepler", + "space_transform_kepler", { { "Type", diff --git a/modules/base/translation/keplertranslation.h b/modules/space/translation/keplertranslation.h similarity index 97% rename from modules/base/translation/keplertranslation.h rename to modules/space/translation/keplertranslation.h index 169e8f3d89..8e74394fa0 100644 --- a/modules/base/translation/keplertranslation.h +++ b/modules/space/translation/keplertranslation.h @@ -22,8 +22,8 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_BASE___KEPLERTRANSLATION___H__ -#define __OPENSPACE_MODULE_BASE___KEPLERTRANSLATION___H__ +#ifndef __OPENSPACE_MODULE_SPACE___KEPLERTRANSLATION___H__ +#define __OPENSPACE_MODULE_SPACE___KEPLERTRANSLATION___H__ #include @@ -174,4 +174,4 @@ private: } // namespace openspace -#endif // __OPENSPACE_MODULE_BASE___KEPLERTRANSLATION___H__ +#endif // __OPENSPACE_MODULE_SPACE___KEPLERTRANSLATION___H__ diff --git a/modules/base/translation/spicetranslation.cpp b/modules/space/translation/spicetranslation.cpp similarity index 98% rename from modules/base/translation/spicetranslation.cpp rename to modules/space/translation/spicetranslation.cpp index 5d8a8be05b..7d1d9e451e 100644 --- a/modules/base/translation/spicetranslation.cpp +++ b/modules/space/translation/spicetranslation.cpp @@ -22,7 +22,7 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include #include #include @@ -47,7 +47,7 @@ Documentation SpiceTranslation::Documentation() { return{ "Spice Translation", - "base_translation_spicetranslation", + "space_translation_spicetranslation", { { "Type", diff --git a/modules/base/translation/spicetranslation.h b/modules/space/translation/spicetranslation.h similarity index 93% rename from modules/base/translation/spicetranslation.h rename to modules/space/translation/spicetranslation.h index 4a95b5b122..d815a4613f 100644 --- a/modules/base/translation/spicetranslation.h +++ b/modules/space/translation/spicetranslation.h @@ -22,8 +22,8 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_BASE___SPICETRANSLATION___H__ -#define __OPENSPACE_MODULE_BASE___SPICETRANSLATION___H__ +#ifndef __OPENSPACE_MODULE_SPACE___SPICETRANSLATION___H__ +#define __OPENSPACE_MODULE_SPACE___SPICETRANSLATION___H__ #include @@ -51,4 +51,4 @@ private: } // namespace openspace -#endif // __OPENSPACE_MODULE_BASE___SPICETRANSLATION___H__ +#endif // __OPENSPACE_MODULE_SPACE___SPICETRANSLATION___H__ diff --git a/modules/base/translation/tletranslation.cpp b/modules/space/translation/tletranslation.cpp similarity index 99% rename from modules/base/translation/tletranslation.cpp rename to modules/space/translation/tletranslation.cpp index 13a8f20c0f..f3068f9b16 100644 --- a/modules/base/translation/tletranslation.cpp +++ b/modules/space/translation/tletranslation.cpp @@ -22,7 +22,7 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include #include #include @@ -228,7 +228,7 @@ Documentation TLETranslation::Documentation() { using namespace openspace::documentation; return { "TLE Translation", - "base_transform_tle", + "space_transform_tle", { { "Type", diff --git a/modules/base/translation/tletranslation.h b/modules/space/translation/tletranslation.h similarity index 94% rename from modules/base/translation/tletranslation.h rename to modules/space/translation/tletranslation.h index 20de6a8ca5..ba8a5cb023 100644 --- a/modules/base/translation/tletranslation.h +++ b/modules/space/translation/tletranslation.h @@ -22,10 +22,10 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_BASE___TLETRANSLATION___H__ -#define __OPENSPACE_MODULE_BASE___TLETRANSLATION___H__ +#ifndef __OPENSPACE_MODULE_SPACE___TLETRANSLATION___H__ +#define __OPENSPACE_MODULE_SPACE___TLETRANSLATION___H__ -#include +#include namespace openspace { @@ -72,4 +72,4 @@ private: } // namespace openspace -#endif // __OPENSPACE_MODULE_BASE___TLETRANSLATION___H__ +#endif // __OPENSPACE_MODULE_SPACE___TLETRANSLATION___H__ diff --git a/modules/toyvolume/include.cmake b/modules/toyvolume/include.cmake index 3ccace7c97..a8aaeb250d 100644 --- a/modules/toyvolume/include.cmake +++ b/modules/toyvolume/include.cmake @@ -1 +1,5 @@ set (DEFAULT_MODULE ON) + +set (OPENSPACE_DEPENDENCIES + space +) \ No newline at end of file diff --git a/modules/volume/include.cmake b/modules/volume/include.cmake index 510dbef2a1..eb1651efed 100644 --- a/modules/volume/include.cmake +++ b/modules/volume/include.cmake @@ -1,3 +1,4 @@ set (OPENSPACE_DEPENDENCIES # kameleon + space )