diff --git a/modules/atmosphere/CMakeLists.txt b/modules/atmosphere/CMakeLists.txt index 509ab4b89f..285207cb52 100644 --- a/modules/atmosphere/CMakeLists.txt +++ b/modules/atmosphere/CMakeLists.txt @@ -25,9 +25,11 @@ include(${OPENSPACE_CMAKE_EXT_DIR}/module_definition.cmake) set(HEADER_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/atmosphere.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/atmosphereraycaster.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableatmosphere.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplanetatmosphere.h + #${CMAKE_CURRENT_SOURCE_DIR}/rendering/globebrowsingatmosphere.h ) source_group("Header Files" FILES ${HEADER_FILES}) @@ -35,6 +37,7 @@ set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/rendering/atmosphereraycaster.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableatmosphere.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplanetatmosphere.cpp + #${CMAKE_CURRENT_SOURCE_DIR}/rendering/globebrowsingatmosphere.cpp ) source_group("Source Files" FILES ${SOURCE_FILES}) diff --git a/modules/atmosphere/rendering/renderableplanetatmosphere.cpp b/modules/atmosphere/rendering/renderableplanetatmosphere.cpp index 44d7ba4fba..65797c397c 100644 --- a/modules/atmosphere/rendering/renderableplanetatmosphere.cpp +++ b/modules/atmosphere/rendering/renderableplanetatmosphere.cpp @@ -1107,6 +1107,29 @@ namespace openspace { std::cout << "Planet Position in OS Object Space (psc): " << glm::to_string(glm::vec4(pscPlanetPosObjCoords.vec3(),1.0)) << std::endl; std::cout << "Planet Position in OS Object Space (Orig): " << glm::to_string(planetCenterOrigin) << std::endl; + + + //glm::mat4 tmpTrans = glm::translate(transform, data.position.vec3()); + glm::mat4 tmpTrans = glm::translate(data.position.vec3()); + std::cout << "\n******* tmpTrans: " << glm::to_string(tmpTrans) << " *******" << std::endl; + float divisor = 1.0; + for (int i = 0; i < 4; i++) for (int j = 0; j < 4; j++) { + if (abs(tmpTrans[i][j] > divisor)) divisor = tmpTrans[i][j]; + } + std::cout << "\n******* Divisor: " << divisor << " *******" << std::endl; + glm::mat4 scaledModelTransform = tmpTrans / divisor; + std::cout << "\n******* scaledModelTrans: " << glm::to_string(scaledModelTransform) << " *******" << std::endl; + glm::mat4 inverScaledModelTransformation = glm::translate(glm::vec3(-scaledModelTransform[3][0], -scaledModelTransform[3][1], -scaledModelTransform[3][2])); + std::cout << "\n******* scaledModelTrans Inverse: " << glm::to_string(glm::inverse(scaledModelTransform)) << " *******" << std::endl; + std::cout << "\n******* scaledModelTrans Inverse2: " << glm::to_string(inverScaledModelTransformation) << " *******" << std::endl; + std::cout << "\n******* scaledModelTrans Back: " << glm::to_string(glm::inverse(scaledModelTransform) / divisor ) << " *******" << std::endl; + std::cout << "\n******* scaledModelTrans Back2: " << glm::to_string(inverScaledModelTransformation / divisor) << " *******" << std::endl; + glm::vec4 modelPos = (glm::inverse(scaledModelTransform) / divisor) * ttmp3; + glm::vec4 modelPos2 = (inverScaledModelTransformation / divisor) * ttmp3; + std::cout << "Planet Position in OS Object Space (Emil) : " << glm::to_string(modelPos) << std::endl; + std::cout << "Planet Position in OS Object Space (Emil2): " << glm::to_string(modelPos2) << std::endl; + std::cout << "Planet Position in OS Object Space (Orig) : " << glm::to_string(planetCenterOrigin) << std::endl; + /*glm::mat4 invRot = glm::mat4(glm::inverse(glm::mat3(data.camera.viewRotationMatrix()))); invRot[3][3] = 1.0; glm::mat4 e2oHand = glm::inverse(transform) * diff --git a/modules/atmosphere/rendering/renderableplanetatmosphere.h b/modules/atmosphere/rendering/renderableplanetatmosphere.h index 30bf0eaa35..edd9871c35 100644 --- a/modules/atmosphere/rendering/renderableplanetatmosphere.h +++ b/modules/atmosphere/rendering/renderableplanetatmosphere.h @@ -26,6 +26,7 @@ #define __RENDERABLEPLANETATMOSPHERE_H__ // open space includes +#include #include #include @@ -52,7 +53,7 @@ namespace openspace { class PlanetGeometry; } - class RenderablePlanetAtmosphere : public Renderable { + class RenderablePlanetAtmosphere : public Atmosphere, public Renderable { public: // Shadow structure typedef struct {