diff --git a/modules/exoplanets/CMakeLists.txt b/modules/exoplanets/CMakeLists.txt index 33edec6fd2..0bd3798bbf 100644 --- a/modules/exoplanets/CMakeLists.txt +++ b/modules/exoplanets/CMakeLists.txt @@ -28,6 +28,7 @@ set(HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/exoplanetsmodule.h ${CMAKE_CURRENT_SOURCE_DIR}/tasks/exoplanetscsvtobintask.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableorbitdisc.h + ${CMAKE_CURRENT_SOURCE_DIR}/discoverymethods/discoverymethods.h ) source_group("Header Files" FILES ${HEADER_FILES}) @@ -35,6 +36,7 @@ set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/exoplanetsmodule.cpp ${CMAKE_CURRENT_SOURCE_DIR}/tasks/exoplanetscsvtobintask.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableorbitdisc.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/discoverymethods/discoverymethods.cpp ) source_group("Source Files" FILES ${SOURCE_FILES}) diff --git a/modules/exoplanets/discoverymethods/discoverymethods.cpp b/modules/exoplanets/discoverymethods/discoverymethods.cpp new file mode 100644 index 0000000000..1a41cff022 --- /dev/null +++ b/modules/exoplanets/discoverymethods/discoverymethods.cpp @@ -0,0 +1,63 @@ +/***************************************************************************************** +* * +* OpenSpace * +* * +* Copyright (c) 2014-2018 * +* * +* 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 { + constexpr const char* _loggerCat = "DiscoveryMethods"; + + static const openspace::properties::Property::PropertyInfo TransitMethodInfo = { + "TransitMethod", + "Show transit method", + "Change the view so that the transit method can be presented." + }; + + static const openspace::properties::Property::PropertyInfo DopplerMethodInfo = { + "DopplerMethod", + "Show doppler method", + "Change the view so that the doppler method can be presented." + }; +} // namespace + +namespace openspace::exoplanets{ + + DiscoveryMethods::DiscoveryMethods() + : PropertyOwner({ "DiscoveryMethods" }) + , _showTransit(TransitMethodInfo, false) + , _showDoppler(DopplerMethodInfo, false) + { + addProperty(_showTransit); + addProperty(_showDoppler); + _showTransit.onChange([&]() { LINFO("transit"); }); + _showDoppler.onChange([&]() { LINFO("doppler"); }); + } + +} // namespce + diff --git a/modules/exoplanets/discoverymethods/discoverymethods.h b/modules/exoplanets/discoverymethods/discoverymethods.h new file mode 100644 index 0000000000..36ebdb0f52 --- /dev/null +++ b/modules/exoplanets/discoverymethods/discoverymethods.h @@ -0,0 +1,46 @@ +/***************************************************************************************** +* * +* OpenSpace * +* * +* Copyright (c) 2014-2018 * +* * +* 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_EXOPLANETS___DISCOVERY_METHODS___H__ +#define __OPENSPACE_MODULE_EXOPLANETS___DISCOVERY_METHODS___H__ + +#include +#include + + +namespace openspace::exoplanets { + +class DiscoveryMethods : public properties::PropertyOwner { +public: + DiscoveryMethods(); + +private: + properties::BoolProperty _showTransit; + properties::BoolProperty _showDoppler; + +}; + +} // namespace + +#endif // __OPENSPACE_MODULE_EXOPLANETS___TRANSIT_METHOD___H__ diff --git a/modules/exoplanets/exoplanetsmodule.cpp b/modules/exoplanets/exoplanetsmodule.cpp index 5808060f38..68ea65d4e2 100644 --- a/modules/exoplanets/exoplanetsmodule.cpp +++ b/modules/exoplanets/exoplanetsmodule.cpp @@ -70,6 +70,11 @@ void ExoplanetsModule::internalInitialize(const ghoul::Dictionary&) { ghoul_assert(fTask, "No task factory existed"); fTask->registerClass("ExoplanetsCsvToBinTask"); fRenderable->registerClass("RenderableOrbitdisc"); + + OsEng.registerModuleCallback(OpenSpaceEngine::CallbackOption::Initialize, [&] { + _discoveryMethods = std::make_unique(); + addPropertySubOwner(*_discoveryMethods); + }); } std::vector ExoplanetsModule::documentations() const { diff --git a/modules/exoplanets/exoplanetsmodule.h b/modules/exoplanets/exoplanetsmodule.h index 2499124237..8564079266 100644 --- a/modules/exoplanets/exoplanetsmodule.h +++ b/modules/exoplanets/exoplanetsmodule.h @@ -25,9 +25,13 @@ #ifndef __OPENSPACE_MODULE_EXOPLANETS___EXOPLANETSMODULE___H__ #define __OPENSPACE_MODULE_EXOPLANETS___EXOPLANETSMODULE___H__ + + #include #include +#include + namespace openspace { class ExoplanetsModule : public OpenSpaceModule { @@ -43,6 +47,7 @@ public: protected: void internalInitialize(const ghoul::Dictionary&) override; + std::unique_ptr _discoveryMethods; };