diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_shared.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_shared.asset index 02c252fbbe..d3eefe0ea7 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_shared.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_shared.asset @@ -43,72 +43,20 @@ local addSatelliteGroupObjects = function(group, tleFolder, shouldAddDuplicates) return true end -- ------------------------------------------------------------------------------------- --- function getSat(title, file, lineNum, textureFile, group) --- return { --- Identifier = title, --- Parent = transforms.EarthInertial.Identifier, --- Renderable = { --- Type = "RenderablePlaneImageLocal", --- Enabled = true, --- Size = 3e4, --- Origin = "Center", --- Body = "TLE", --- Billboard = true, --- Texture = textureFile --- }, --- Transform = { --- Translation = { --- Type = "TLETranslation", --- Body = title, --- Observer = transforms.EarthInertial.Identifier, --- File = file, --- LineNumber = lineNum --- }, --- Scale = { --- Type = "StaticScale", --- Scale = 1 --- } --- }, --- Tag = { "earth_satellite_" .. group, "earth_satellite_" .. group .. "_marker" }, --- GUI = { --- Path = "/Solar System/Planets/Earth/Satellites" --- } --- } --- end - --- function getSatTrail(title, file, lineNum, per, color, group) --- return { --- Identifier = title .. "_trail", --- Parent = transforms.EarthInertial.Identifier, --- Renderable = { --- Type = "RenderableTrailOrbit", --- Translation = { --- Type = "TLETranslation", --- Body = title, --- Observer = transforms.EarthInertial.Identifier, --- File = file, --- LineNumber = lineNum --- }, --- Color = color, --- Period = per, --- Resolution = 160 --- }, --- Tag = { "earth_satellite_" .. group, "earth_satellite_" .. group .. "_trail"}, --- GUI = { --- Path = "/Solar System/Planets/Earth/Satellites" --- } --- } --- end --- ------------------------------------------------------------------------------------- - function test(title, file, lineNum, per, color, group) + function getSat(title, file, lineNum, textureFile, group) return { Identifier = title, Parent = transforms.EarthInertial.Identifier, Renderable = { - Type = "RenderableSatellites", - Color = color, - Period = per, - Resolution = 160, + Type = "RenderablePlaneImageLocal", + Enabled = true, + Size = 3e4, + Origin = "Center", + Body = "TLE", + Billboard = true, + Texture = textureFile + }, + Transform = { Translation = { Type = "TLETranslation", Body = title, @@ -116,19 +64,71 @@ local addSatelliteGroupObjects = function(group, tleFolder, shouldAddDuplicates) File = file, LineNumber = lineNum }, - - Size = 3e4, - Origin = "Center", - Body = "TLE", - Billboard = true, - Texture = textureFile - + Scale = { + Type = "StaticScale", + Scale = 1 + } }, + Tag = { "earth_satellite_" .. group, "earth_satellite_" .. group .. "_marker" }, GUI = { Path = "/Solar System/Planets/Earth/Satellites" } } end + + function getSatTrail(title, file, lineNum, per, color, group) + return { + Identifier = title .. "_trail", + Parent = transforms.EarthInertial.Identifier, + Renderable = { + Type = "RenderableTrailOrbit", + Translation = { + Type = "TLETranslation", + Body = title, + Observer = transforms.EarthInertial.Identifier, + File = file, + LineNumber = lineNum + }, + Color = color, + Period = per, + Resolution = 160 + }, + Tag = { "earth_satellite_" .. group, "earth_satellite_" .. group .. "_trail"}, + GUI = { + Path = "/Solar System/Planets/Earth/Satellites" + } + } + end +-- ------------------------------------------------------------------------------------- +-- function test(title, file, lineNum, per, color, group) +-- return { +-- Identifier = title, +-- Parent = transforms.EarthInertial.Identifier, +-- Renderable = { +-- Type = "RenderableSatellites", +-- Color = color, +-- Period = per, +-- Resolution = 160, +-- Translation = { +-- Type = "TLETranslation", +-- Body = title, +-- Observer = transforms.EarthInertial.Identifier, +-- File = file, +-- LineNumber = lineNum +-- }, +-- +-- Size = 3e4, +-- Origin = "Center", +-- Body = "TLE", +-- Billboard = true, +-- Texture = textureFile +-- +-- }, +-- GUI = { +-- Path = "/Solar System/Planets/Earth/Satellites" +-- } +-- } +-- end -- ------------------------------------------------------------------------------------- local filename = group.Url:match("([^/]+)$") @@ -181,17 +181,17 @@ local addSatelliteGroupObjects = function(group, tleFolder, shouldAddDuplicates) if shouldAddNotes then -- Register satellite object and trail - local test_var = test(satName, path, n, per, group.TrailColor, group.Title) - openspace.addSceneGraphNode(test_var) - table.insert(obj, test_var.Identifier) +-- local test_var = test(satName, path, n, per, group.TrailColor, group.Title) +-- openspace.addSceneGraphNode(test_var) +-- table.insert(obj, test_var.Identifier) --- local sat_var = getSat(satName, path, n, texture, group.Title) --- openspace.addSceneGraphNode(sat_var) --- table.insert(obj, sat_var.Identifier) + local sat_var = getSat(satName, path, n, texture, group.Title) + openspace.addSceneGraphNode(sat_var) + table.insert(obj, sat_var.Identifier) --- local satTrail_var = getSatTrail(satName, path, n, per, group.TrailColor, group.Title) --- openspace.addSceneGraphNode(satTrail_var) --- table.insert(obj, satTrail_var.Identifier) + local satTrail_var = getSatTrail(satName, path, n, per, group.TrailColor, group.Title) + openspace.addSceneGraphNode(satTrail_var) + table.insert(obj, satTrail_var.Identifier) end end diff --git a/modules/space/CMakeLists.txt b/modules/space/CMakeLists.txt index 515a38f011..89c71ea56f 100644 --- a/modules/space/CMakeLists.txt +++ b/modules/space/CMakeLists.txt @@ -25,7 +25,8 @@ include(${OPENSPACE_CMAKE_EXT_DIR}/module_definition.cmake) set(HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablesatellites.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/elonstest.h +# ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablesatellites.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/planetgeometry.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableconstellationbounds.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplanet.h @@ -43,7 +44,8 @@ set(HEADER_FILES source_group("Header Files" FILES ${HEADER_FILES}) set(SOURCE_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablesatellites.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/elonstest.cpp +# ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablesatellites.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/planetgeometry.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableconstellationbounds.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplanet.cpp diff --git a/modules/space/rendering/elonstest.cpp b/modules/space/rendering/elonstest.cpp new file mode 100644 index 0000000000..9f82a73fe6 --- /dev/null +++ b/modules/space/rendering/elonstest.cpp @@ -0,0 +1,164 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2019 * + * * + * 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 + + +namespace { + constexpr const char* ProgramName = "ElonsTest"; + + static const openspace::properties::Property::PropertyInfo PathInfo = { + "Path", + "Path", + "The file path to the CSV file to read" + }; + + static const openspace::properties::Property::PropertyInfo SegmentsInfo = { + "Segments", + "Segments", + "The number of segments to use for each orbit ellipse" + }; + + static const openspace::properties::Property::PropertyInfo EccentricityColumnInfo = { + "EccentricityColumn", + "EccentricityColumn", + "The header of the column where the eccentricity is stored" + }; + + static const openspace::properties::Property::PropertyInfo SemiMajorAxisColumnInfo = { + "SemiMajorAxisColumn", + "SemiMajorAxisColumn", + "The header of the column where the semi-major axis is stored" + }; + + static const openspace::properties::Property::PropertyInfo SemiMajorAxisUnitInfo = { + "SemiMajorAxisUnit", + "SemiMajorAxisUnit", + "The unit of the semi major axis. For example: If specified in km, set this to 1000." + }; + + static const openspace::properties::Property::PropertyInfo InclinationColumnInfo = { + "InclinationColumn", + "InclinationColumn", + "The header of the column where the inclination is stored" + }; + + static const openspace::properties::Property::PropertyInfo AscendingNodeColumnInfo = { + "AscendingNodeColumn", + "AscendingNodeColumn", + "The header of the column where the ascending node is stored" + }; + + static const openspace::properties::Property::PropertyInfo ArgumentOfPeriapsisColumnInfo = { + "ArgumentOfPeriapsisColumn", + "ArgumentOfPeriapsisColumn", + "The header of the column where the argument of periapsis is stored" + }; + + static const openspace::properties::Property::PropertyInfo MeanAnomalyAtEpochColumnInfo = { + "MeanAnomalyAtEpochColumn", + "MeanAnomalyAtEpochColumn", + "The header of the column where the mean anomaly at epoch is stored" + }; + + static const openspace::properties::Property::PropertyInfo EpochColumnInfo = { + "EpochColumn", + "EpochColumn", + "The header of the column where the epoch is stored" + }; +} + +namespace openspace { + +ElonsTest::ElonsTest(const ghoul::Dictionary& dictionary) + : Renderable(dictionary) + , _path(PathInfo) + , _nSegments(SegmentsInfo) + , _eccentricityColumnName(EccentricityColumnInfo) + , _semiMajorAxisColumnName(SemiMajorAxisColumnInfo) + , _semiMajorAxisUnit(SemiMajorAxisUnitInfo) + , _inclinationColumnName(InclinationColumnInfo) + , _ascendingNodeColumnName(AscendingNodeColumnInfo) + , _argumentOfPeriapsisColumnName(ArgumentOfPeriapsisColumnInfo) + , _meanAnomalyAtEpochColumnName(MeanAnomalyAtEpochColumnInfo) + , _epochColumnName(EpochColumnInfo) +{ + _path = + dictionary.value(PathInfo.identifier); + _nSegments = + static_cast(dictionary.value(SegmentsInfo.identifier)); + _eccentricityColumnName = + dictionary.value(EccentricityColumnInfo.identifier); + _semiMajorAxisColumnName = + dictionary.value(SemiMajorAxisColumnInfo.identifier); + _semiMajorAxisUnit = + dictionary.value(SemiMajorAxisUnitInfo.identifier); + _inclinationColumnName = + dictionary.value(InclinationColumnInfo.identifier); + _ascendingNodeColumnName = + dictionary.value(AscendingNodeColumnInfo.identifier); + _argumentOfPeriapsisColumnName = + dictionary.value(ArgumentOfPeriapsisColumnInfo.identifier); + _meanAnomalyAtEpochColumnName = + dictionary.value(MeanAnomalyAtEpochColumnInfo.identifier); + _epochColumnName = + dictionary.value(EpochColumnInfo.identifier); + + addProperty(_path); + addProperty(_nSegments); + addProperty(_semiMajorAxisUnit); +} +// uses Renderables destructor? + +void ElonsTest::initialize(){ + // note to self, se vad Gene skrev. Fyll _vertexArray i init och + // rendera bara orbits, inga rörliga delar. +} + +void ElonsTest::initializeGL() { + _programObject = SpaceModule::ProgramObjectManager.request( + ProgramName, + []() -> std::unique_ptr { + return global::renderEngine.buildRenderProgram( + ProgramName, + absPath("${MODULE_SPACE}/shaders/renderablekeplerorbits_vs.glsl"), + absPath("${MODULE_SPACE}/shaders/renderablekeplerorbits_fs.glsl") + ); + } + ); + +} + +void ElonsTest::render(const RenderData& data, RendererTasks& rendererTask) { + +} + +void ElonsTest::update(const UpdateData& data) {} + +} diff --git a/modules/space/rendering/elonstest.h b/modules/space/rendering/elonstest.h new file mode 100644 index 0000000000..f577e0a0b5 --- /dev/null +++ b/modules/space/rendering/elonstest.h @@ -0,0 +1,75 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2019 * + * * + * 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___RENDERABLEPLANET___H__ +#define __OPENSPACE_MODULE_SPACE___RENDERABLEPLANET___H__ + +#include +#include +#include + +#include +#include + +namespace openspace { + +class ElonsTest : public Renderable { +public: + // constructors & destructor + ElonsTest(const ghoul::Dictionary& dictionary); + + // override? + void initialize() override; + void initializeGL() override; + // void deinitialize(); + // void deinitialize(); + // + // bool isReady() const; + + + void render(const RenderData& data, RendererTasks& rendererTask) override; + void update(const UpdateData& data) override; + +protected: +private: + TLETranslation _tleTranslator; + std::vector _orbits; + ghoul::opengl::ProgramObject* _programObject; + + properties::StringProperty _path; + properties::UIntProperty _nSegments; + + properties::StringProperty _eccentricityColumnName; + properties::StringProperty _semiMajorAxisColumnName; + properties::DoubleProperty _semiMajorAxisUnit; + properties::StringProperty _inclinationColumnName; + properties::StringProperty _ascendingNodeColumnName; + properties::StringProperty _argumentOfPeriapsisColumnName; + properties::StringProperty _meanAnomalyAtEpochColumnName; + properties::StringProperty _epochColumnName; +}; + +} // namespace openspace + +#endif // __OPENSPACE_MODULE_SPACE___RENDERABLEPLANET___H__ diff --git a/modules/space/rendering/renderablesatellites.h b/modules/space/rendering/renderablesatellites.h index 8b8cdd6815..cedae2e431 100644 --- a/modules/space/rendering/renderablesatellites.h +++ b/modules/space/rendering/renderablesatellites.h @@ -1,33 +1,31 @@ -/**************************************************************************************** - * * - * 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. * - ****************************************************************************************/ +// /**************************************************************************************** +// * * +// * 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 @@ -41,83 +39,90 @@ namespace openspace { -class RenderableSatellites : public Renderable { -public: - RenderableSatellites(const ghoul::Dictionary& dictionary); - virtual ~RenderableSatellites(); + class RenderableSatellites : public Renderable { + public: + RenderableSatellites(const ghoul::Dictionary& dictionary); + virtual ~RenderableSatellites(); - void initialize() override; - void deinitialize() override; - void initializeGL() override; - void deinitializeGL() override; - - bool isReady() const override; - - void render(const RenderData& data, RendererTasks& rendererTask) override; - void update(const UpdateData& data) override; - - static documentation::Documentation Documentation(); + void initialize() override; + void deinitialize() override; + void initializeGL() override; + void deinitializeGL() override; -private: - /// The layout of the VBOs - struct TrailVBOLayout { - float x, y, z, time; + bool isReady() const override; + + void render(const RenderData& data, RendererTasks& rendererTask) override; + void update(const UpdateData& data) override; + + /* + void setKeplerElements(double eccentricity, double semiMajorAxis, double inclination, + double ascendingNode, double argumentOfPeriapsis, double meanAnomalyAtEpoch, + double orbitalPeriod, double epoch); + */ + + static documentation::Documentation Documentation(); + + private: + /// The layout of the VBOs + struct TrailVBOLayout { + float x, y, z, time; + }; + + /// The backend storage for the vertex buffer object containing all points for this + /// trail. + std::vector _vertexBufferData; + + /// The index array that is potentially used in the draw call. If this is empty, no + /// element draw call is used. + std::vector _indexBufferData; + + GLuint _vertexArray; + GLuint _vertexBuffer; + GLuint _indexBuffer; + + void readFromCsvFile(); + void updateBuffers(); + + std::vector _orbits; + ghoul::opengl::ProgramObject* _programObject; + //ghoul::ObjectManager* _objectManager; + + + properties::StringProperty _path; + properties::UIntProperty _nSegments; + + properties::StringProperty _eccentricityColumnName; + properties::StringProperty _semiMajorAxisColumnName; + properties::DoubleProperty _semiMajorAxisUnit; + properties::StringProperty _inclinationColumnName; + properties::StringProperty _ascendingNodeColumnName; + properties::StringProperty _argumentOfPeriapsisColumnName; + properties::StringProperty _meanAnomalyAtEpochColumnName; + properties::StringProperty _epochColumnName; + + RenderableTrail::Appearance _appearance; + + UniformCache(opacity, modelView, projection, color, useLineFade, lineFade) + _uniformCache; + + /** + * Reads the provided TLE file and calles the KeplerTranslation::setKeplerElments + * method with the correct values. If \p filename is a valid TLE file but contains + * disallowed values (see KeplerTranslation::setKeplerElements), a + * KeplerTranslation::RangeError is thrown. + * + * \param filename The path to the file that contains the TLE file. + * \param lineNum The line number in the file where the set of 3 TLE lines starts + * + * \throw std::system_error if the TLE file is malformed (does not contain at least + * two lines that start with \c 1 and \c 2. + * \throw KeplerTranslation::RangeError If the Keplerian elements are outside of + * the valid range supported by Kepler::setKeplerElements + * \pre The \p filename must exist + */ + void readTLEFile(const std::string& filename, int lineNum); }; - - /// The backend storage for the vertex buffer object containing all points for this - /// trail. - std::vector _vertexBufferData; - - /// The index array that is potentially used in the draw call. If this is empty, no - /// element draw call is used. - std::vector _indexBufferData; - - GLuint _vertexArray; - GLuint _vertexBuffer; - GLuint _indexBuffer; - - void readFromCsvFile(); - void updateBuffers(); - - std::vector _orbits; - ghoul::opengl::ProgramObject* _programObject; - //ghoul::ObjectManager* _objectManager; - - properties::StringProperty _path; - properties::UIntProperty _nSegments; - - properties::StringProperty _eccentricityColumnName; - properties::StringProperty _semiMajorAxisColumnName; - properties::DoubleProperty _semiMajorAxisUnit; - properties::StringProperty _inclinationColumnName; - properties::StringProperty _ascendingNodeColumnName; - properties::StringProperty _argumentOfPeriapsisColumnName; - properties::StringProperty _meanAnomalyAtEpochColumnName; - properties::StringProperty _epochColumnName; - RenderableTrail::Appearance _appearance; - - UniformCache(opacity, modelView, projection, color, useLineFade, lineFade) - _uniformCache; - - /** - * Reads the provided TLE file and calles the KeplerTranslation::setKeplerElments - * method with the correct values. If \p filename is a valid TLE file but contains - * disallowed values (see KeplerTranslation::setKeplerElements), a - * KeplerTranslation::RangeError is thrown. - * - * \param filename The path to the file that contains the TLE file. - * \param lineNum The line number in the file where the set of 3 TLE lines starts - * - * \throw std::system_error if the TLE file is malformed (does not contain at least - * two lines that start with \c 1 and \c 2. - * \throw KeplerTranslation::RangeError If the Keplerian elements are outside of - * the valid range supported by Kepler::setKeplerElements - * \pre The \p filename must exist - */ - void readTLEFile(const std::string& filename, int lineNum); -}; - #endif // __OPENSPACE_MODULE_BASE___RenderableSatellites___H__ } diff --git a/modules/space/spacemodule.cpp b/modules/space/spacemodule.cpp index bf95c08672..ffbbd2843d 100644 --- a/modules/space/spacemodule.cpp +++ b/modules/space/spacemodule.cpp @@ -29,6 +29,7 @@ #include #include #include +// #include #include #include #include @@ -80,6 +81,7 @@ void SpaceModule::internalInitialize(const ghoul::Dictionary&) { fRenderable->registerClass("RenderablePlanet"); fRenderable->registerClass("RenderableRings"); fRenderable->registerClass("RenderableStars"); + // fRenderable->registerClass("ElonsTest"); auto fTranslation = FactoryManager::ref().factory(); ghoul_assert(fTranslation, "Ephemeris factory was not created");