diff --git a/.gitignore b/.gitignore index cb1b3319c5..475ebd7f3a 100644 --- a/.gitignore +++ b/.gitignore @@ -26,7 +26,12 @@ install_manifest.txt .cproject .project shaders/ABuffer/constants.hglsl -ScriptLog.txt +*.idea/ +.vs/ +.build-vs/ +*.dir +cmake-build-* +x64/ customization.lua COMMIT.md screenshots \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f8b955a6f..d83fc0f5c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,6 +79,18 @@ execute_process( OUTPUT_STRIP_TRAILING_WHITESPACE ) +# See if working directory is clean or not +execute_process( + COMMAND git diff-index --quiet HEAD -- + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + RESULT_VARIABLE OPENSPACE_GIT_STATUS_RETURN +) +if (NOT OPENSPACE_GIT_STATUS_RETURN EQUAL 0) + set(OPENSPACE_GIT_STATUS "uncomitted changes") +else() + set(OPENSPACE_GIT_STATUS "") +endif() + option(OPENSPACE_WARNINGS_AS_ERRORS "Treat warnings as errors" OFF) include(src/CMakeLists.txt) diff --git a/Jenkinsfile b/Jenkinsfile index fa4e137cfe..9150da5bef 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -54,7 +54,7 @@ stage('Build') { cd build cmake -G "Visual Studio 15 2017 Win64" .. ''' + flags + ''' .. - msbuild.exe OpenSpace.sln /nologo /verbosity:minimal /p:Configuration=Debug + msbuild.exe OpenSpace.sln /nologo /verbosity:minimal /p:Configuration=Debug /target:OpenSpace ''' } } diff --git a/apps/OpenSpace/CMakeLists.txt b/apps/OpenSpace/CMakeLists.txt index dbd5dae9e6..c2be5d7a5f 100644 --- a/apps/OpenSpace/CMakeLists.txt +++ b/apps/OpenSpace/CMakeLists.txt @@ -22,11 +22,10 @@ # OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # ########################################################################################## -include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake) +include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake) include(${OPENSPACE_CMAKE_EXT_DIR}/application_definition.cmake) include(${OPENSPACE_CMAKE_EXT_DIR}/global_variables.cmake) - ##### # OpenVR ##### @@ -34,9 +33,9 @@ option(OPENSPACE_OPENVR_SUPPORT "Build OpenSpace application with OpenVR support if (OPENSPACE_OPENVR_SUPPORT) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${OPENSPACE_EXT_DIR}/sgct/cmake/modules/") - + find_package(OpenVR REQUIRED) - + set(SGCT_OPENVR_DEFINITIONS OPENVR_SUPPORT) if (NOT SGCT_OPENVR_INCLUDE_DIRECTORY) @@ -111,6 +110,38 @@ target_compile_definitions(OpenSpace PRIVATE ${SPOUT_DEFINITIONS} ) + +# Web Browser and Web gui +# Why not put these in the module's path? Because they do not have access to the +# target as of July 2017, which is needed. +if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT) + # wanted by CEF + set(CMAKE_BUILD_TYPE Debug CACHE INTERNAL "CMAKE_BUILD_TYPE") + + if (WIN32) + set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc) + endif () + + # Add the CEF binary distribution's cmake/ directory to the module path and + # find CEF to initialize it properly. + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake") + include(webbrowser_helpers) + + set_cef_targets("${CEF_ROOT}" OpenSpace) + run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}") +elseif (OPENSPACE_MODULE_WEBBROWSER) + message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.") +endif () + +if (OPENSPACE_MODULE_WEBGUI AND WEBGUI_MODULE_PATH) + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBGUI_MODULE_PATH}/cmake") + include(webgui_helpers) + build_webgui_source(OpenSpace) +elseif(OPENSPACE_MODULE_WEBGUI) + message(WARNING "WebGui is configured to be included, but the web source could not be found. Try configuring CMake again.") +endif() +# End Web Browser and Web gui + if (MSVC) # This library is used for being able to output the callstack if an exception escapes target_link_libraries(OpenSpace Dbghelp.lib) diff --git a/apps/OpenSpace/main.cpp b/apps/OpenSpace/main.cpp index 6d61c9663d..8586b6d98e 100644 --- a/apps/OpenSpace/main.cpp +++ b/apps/OpenSpace/main.cpp @@ -106,7 +106,7 @@ LONG WINAPI generateMiniDump(EXCEPTION_POINTERS* exceptionPointers) { LINFO(fmt::format("Creating dump file: {}", dumpFile)); - HANDLE hDumpFile = CreateFile( + HANDLE hDumpFile = CreateFileA( dumpFile.c_str(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ, diff --git a/apps/Wormhole/CMakeLists.txt b/apps/Wormhole/CMakeLists.txt new file mode 100644 index 0000000000..9fc9569a31 --- /dev/null +++ b/apps/Wormhole/CMakeLists.txt @@ -0,0 +1,45 @@ +########################################################################################## +# # +# 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(${OPENSPACE_CMAKE_EXT_DIR}/application_definition.cmake) + +set_source_files_properties( + ${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns + PROPERTIES MACOSX_PACKAGE_LOCATION "Resources" +) + +set(MACOSX_BUNDLE_ICON_FILE openspace.icns) + +create_new_application( + Wormhole + MACOSX_BUNDLE + ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/openspace.rc + ${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns +) + +target_link_libraries( + Wormhole + libOpenSpace +) diff --git a/apps/Wormhole/include.cmake b/apps/Wormhole/include.cmake new file mode 100644 index 0000000000..7ac26b6f4f --- /dev/null +++ b/apps/Wormhole/include.cmake @@ -0,0 +1 @@ +set(DEFAULT_APPLICATION ON) diff --git a/apps/Wormhole/main.cpp b/apps/Wormhole/main.cpp new file mode 100644 index 0000000000..a688f80a13 --- /dev/null +++ b/apps/Wormhole/main.cpp @@ -0,0 +1,141 @@ +/***************************************************************************************** + * * + * 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 +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace { + const std::string _loggerCat = "Wormhole"; +} + +int main(int argc, char** argv) { + using namespace openspace; + + std::vector arguments(argv, argv + argc); + + ghoul::cmdparser::CommandlineParser commandlineParser( + "Wormhole", + ghoul::cmdparser::CommandlineParser::AllowUnknownCommands::Yes + ); + + std::stringstream defaultPassword; + defaultPassword << std::hex << std::setfill('0') << std::setw(6) << + (std::hash{}( + std::chrono::system_clock::now().time_since_epoch().count() + ) % 0xffffff); + + std::stringstream defaultChangeHostPassword; + defaultChangeHostPassword << std::hex << std::setfill('0') << std::setw(6) << + (std::hash{}( + std::chrono::system_clock::now().time_since_epoch().count() + 1 + ) % 0xffffff); + + std::string portString = ""; + commandlineParser.addCommand( + std::make_unique>( + portString, + "--port", + "-p", + "Sets the port to listen on" + ) + ); + + std::string password = ""; + commandlineParser.addCommand( + std::make_unique>( + password, + "--password", + "-l", + "Sets the password to use" + ) + ); + + std::string changeHostPassword = ""; + commandlineParser.addCommand( + std::make_unique>( + changeHostPassword, + "--hostpassword", + "-h", + "Sets the host password to use" + ) + ); + + commandlineParser.setCommandLine(arguments); + commandlineParser.execute(); + + if (password == "") { + password = defaultPassword.str(); + } + if (changeHostPassword == "") { + changeHostPassword = defaultChangeHostPassword.str(); + } + + LINFO(fmt::format("Connection password: {}", password)); + LINFO(fmt::format("Host password: {}", changeHostPassword)); + + int port = 25001; + + if (portString != "") { + try { + port = std::stoi(portString); + } + catch (...) { + LERROR(fmt::format("Invalid port: {}", portString)); + } + } + + ParallelServer server; + server.start(port, password, changeHostPassword); + server.setDefaultHostAddress("127.0.0.1"); + LINFO(fmt::format("Server listening to port {}", port)); + + while (std::cin.get() != 'q') {} + + server.stop(); + LINFO("Server stopped"); + + return 0; +}; diff --git a/apps/Wormhole/openspace.icns b/apps/Wormhole/openspace.icns new file mode 100644 index 0000000000..a6e08b0a54 Binary files /dev/null and b/apps/Wormhole/openspace.icns differ diff --git a/apps/Wormhole/openspace.ico b/apps/Wormhole/openspace.ico new file mode 100644 index 0000000000..38f7eb88a8 Binary files /dev/null and b/apps/Wormhole/openspace.ico differ diff --git a/apps/Wormhole/openspace.png b/apps/Wormhole/openspace.png new file mode 100644 index 0000000000..1e5f26b087 Binary files /dev/null and b/apps/Wormhole/openspace.png differ diff --git a/apps/Wormhole/openspace.rc b/apps/Wormhole/openspace.rc new file mode 100644 index 0000000000..86a250bb5d --- /dev/null +++ b/apps/Wormhole/openspace.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "openspace.ico" \ No newline at end of file diff --git a/data/assets/dawn.scene b/data/assets/dawn.scene index 55f91b8b88..7af21ba55f 100644 --- a/data/assets/dawn.scene +++ b/data/assets/dawn.scene @@ -37,7 +37,7 @@ asset.onInitialize(function () ) openspace.navigation.setCameraState({ - Focus = DawnAsset.Dawn.Name, + Focus = DawnAsset.Dawn.Identifier, Position = { 526781518487.171326, 257168309890.072144, -1381125204152.817383 }, Rotation = { -0.106166, 0.981574, -0.084545, 0.134513 }, }) diff --git a/data/assets/default.scene b/data/assets/default.scene index b32bf5da5c..4d43bd51f7 100644 --- a/data/assets/default.scene +++ b/data/assets/default.scene @@ -9,7 +9,6 @@ asset.require('scene/solarsystem/planets') asset.require('scene/solarsystem/planets/mars/moons/phobos') asset.require('scene/solarsystem/planets/mars/moons/deimos') assetHelper.requestAll(asset, 'scene/digitaluniverse') - -- Load default key bindings applicable to most scenes asset.require('util/default_keybindings') @@ -37,10 +36,9 @@ local Keybindings = { Key = "g", Command = propertyHelper.invert('Scene.MilkyWay.renderable.Enabled') .. propertyHelper.invert('Scene.Stars.renderable.Enabled') .. - propertyHelper.invert('Scene.Earth.RenderableGlobe.Layers.NightLayers.Earth at Night 2012.Enabled') .. - propertyHelper.invert('Scene.Earth.RenderableGlobe.PerformShading') .. - propertyHelper.invert('Scene.Mars.RenderableGlobe.PerformShading') .. - propertyHelper.invert('Scene.Earth.RenderableGlobe.Atmosphere') .. + propertyHelper.invert('Scene.Earth.RenderableGlobe.Layers.NightLayers.Earth_at_Night_2012.Enabled') .. + propertyHelper.invert('Scene.EarthAtmosphere.renderable.Enabled') .. + propertyHelper.invert('Scene.MarsAtmosphere.renderable.Enabled') .. propertyHelper.invert('Scene.Earth.RenderableGlobe.Layers.WaterMasks.MODIS_Water_Mask.Enabled') .. propertyHelper.invert('Scene.Moon.RenderableGlobe.Enabled') .. propertyHelper.invert('Scene.Sun.renderable.Enabled'), @@ -72,7 +70,6 @@ asset.onInitialize(function () "Earth", "Mars", "Moon" }) - openspace.addVirtualProperty( "BoolProperty", "Show Trails", @@ -84,7 +81,7 @@ asset.onInitialize(function () ) openspace.navigation.setCameraState({ - Focus = earthAsset.Earth.Name, + Focus = earthAsset.Earth.Identifier, Position = { 0, 0, 0 }, Rotation = { 0.758797, 0.221490, -0.605693, -0.091135 }, }) diff --git a/data/assets/examples/renderableplaneimageonline.asset b/data/assets/examples/renderableplaneimageonline.asset index fd48f1d35f..a4ac8f9831 100644 --- a/data/assets/examples/renderableplaneimageonline.asset +++ b/data/assets/examples/renderableplaneimageonline.asset @@ -6,8 +6,8 @@ local transforms = asset.require("scene/solarsystem/sun/transforms") local RenderablePlaneImageOnline = { - Name = "RenderablePlaneImageOnline", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "RenderablePlaneImageOnline", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderablePlaneImageOnline", Size = 3.0E11, @@ -15,7 +15,9 @@ local RenderablePlaneImageOnline = { Billboard = true, URL = "http://data.openspaceproject.com/examples/renderableplaneimageonline.jpg" }, - GuiPath = "/Examples" + GUI = { + Path = "/Examples" + } } diff --git a/data/assets/examples/screenspacespout.asset b/data/assets/examples/screenspacespout.asset index 54cc619cd5..54319351f8 100644 --- a/data/assets/examples/screenspacespout.asset +++ b/data/assets/examples/screenspacespout.asset @@ -6,15 +6,17 @@ local transforms = asset.require("scene/solarsystem/sun/transforms") local Spout = { - Name = "Spouty", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "Spouty", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderablePlaneSpout", Size = 3.0E11, Origin = "Center", Billboard = true }, - GuiPath = "/Examples" + GUI = { + Path = "/Examples" + } } diff --git a/data/assets/examples/urlsynchronization.asset b/data/assets/examples/urlsynchronization.asset index cc7e4b1a7c..630eb4762b 100644 --- a/data/assets/examples/urlsynchronization.asset +++ b/data/assets/examples/urlsynchronization.asset @@ -3,15 +3,15 @@ local assetHelper = asset.require("util/asset_helper") asset.syncedResource({ - Type = "UrlSynchronization", Name = "Example Single", + Type = "UrlSynchronization", Identifier = "example_single", Url = "http://celestrak.com/NORAD/elements/geo.txt" }) asset.syncedResource({ - Type = "UrlSynchronization", Name = "Example Multiple", + Type = "UrlSynchronization", Identifier = "example_multiple", Url = { "http://celestrak.com/NORAD/elements/stations.txt", @@ -20,14 +20,23 @@ asset.syncedResource({ }) asset.syncedResource({ - Type = "UrlSynchronization", Name = "Example Large", + Type = "UrlSynchronization", Identifier = "example_large", - Url = "http://ipv4.download.thinkbroadband.com/100MB.zip" + Url = "http://ipv4.download.thinkbroadband.com/100MB.zip", + Override = true }) asset.syncedResource({ + Name = "Example Medium", Type = "UrlSynchronization", + Identifier = "example_medium", + Url = "http://ipv4.download.thinkbroadband.com/5MB.zip", + Override = true +}) + +asset.syncedResource({ Name = "Example No ident", + Type = "UrlSynchronization", Url = "http://ipv4.download.thinkbroadband.com/5MB.zip" }) diff --git a/data/assets/juno.scene b/data/assets/juno.scene index f42cd27d5d..353af80afd 100644 --- a/data/assets/juno.scene +++ b/data/assets/juno.scene @@ -40,7 +40,7 @@ asset.onInitialize(function () ) openspace.navigation.setCameraState({ - Focus = junoAsset.Juno.Name, + Focus = junoAsset.Juno.Identifier, Position = { 1837386367.601345, -389860693812.834839, 714830404470.398926 }, Rotation = { -0.336540, 0.711402, -0.099212, 0.608937 }, }) diff --git a/data/assets/newhorizons.scene b/data/assets/newhorizons.scene index 3b109a3a34..af40f70ee0 100644 --- a/data/assets/newhorizons.scene +++ b/data/assets/newhorizons.scene @@ -101,7 +101,7 @@ local Keybindings = { }, { Key = "l", - Command = propertyHelper.invert('Scene.Labels.renderable.Enabled'), + Command = propertyHelper.fadeInOut('Scene.Labels.renderable.Opacity', 2.0), Documentation = "Toggles the visibility of the labels for the New Horizons instruments.", Local = false }, @@ -177,7 +177,7 @@ asset.onInitialize(function () ) openspace.navigation.setCameraState({ - Focus = NewHorizonsAsset.NewHorizons.Name, + Focus = NewHorizonsAsset.NewHorizons.Identifier, Position = { 4662120063743.592773, 1263245003503.724854, -955413856565.788086 }, Rotation = { 0.683224, -0.165934, 0.701234, 0.118073 }, }) diff --git a/data/assets/osirisrex.scene b/data/assets/osirisrex.scene index 98a30d82b0..2a41142844 100644 --- a/data/assets/osirisrex.scene +++ b/data/assets/osirisrex.scene @@ -124,7 +124,7 @@ asset.onInitialize(function () ) openspace.navigation.setCameraState({ - Focus = OsirisRexAsset.OsirisRex.Name, + Focus = OsirisRexAsset.OsirisRex.Identifier, Position = { 26974590199.661884, 76314608558.908020, -127086452897.101791 }, Rotation = { 0.729548, -0.126024, 0.416827, 0.527382 }, }) diff --git a/data/assets/rosetta.scene b/data/assets/rosetta.scene index b4fe3750e1..612ad671ef 100644 --- a/data/assets/rosetta.scene +++ b/data/assets/rosetta.scene @@ -126,7 +126,7 @@ asset.onInitialize(function () ) openspace.navigation.setCameraState({ - Focus = Comet67PAsset.Comet67P.Name, + Focus = Comet67PAsset.Comet67P.Identifier, Position = { 526781518487.171326, 257168309890.072144, -1381125204152.817383 }, Rotation = { -0.106166, 0.981574, -0.084545, 0.134513 }, }) diff --git a/data/assets/scene/digitaluniverse/2dF.asset b/data/assets/scene/digitaluniverse/2dF.asset index 7d3860220c..b7dac60fe2 100644 --- a/data/assets/scene/digitaluniverse/2dF.asset +++ b/data/assets/scene/digitaluniverse/2dF.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "2dF Galaxies", + Identifier = "2dF", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -31,7 +31,10 @@ local object = { Unit = "Mpc", ScaleFactor = 508.0 }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "2dF Galaxies", + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/digitaluniverse/2mass.asset b/data/assets/scene/digitaluniverse/2mass.asset index f0587ce522..3247753ba5 100644 --- a/data/assets/scene/digitaluniverse/2mass.asset +++ b/data/assets/scene/digitaluniverse/2mass.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "2MASS Galaxies", + Identifier = "2MASS", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -31,7 +31,10 @@ local object = { Unit = "Mpc", ScaleFactor = 508.0 }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "2MASS Galaxies", + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/digitaluniverse/6dF.asset b/data/assets/scene/digitaluniverse/6dF.asset index 020e1941c8..f5a80d2e3e 100644 --- a/data/assets/scene/digitaluniverse/6dF.asset +++ b/data/assets/scene/digitaluniverse/6dF.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "6dF Galaxies", + Identifier = "6dF", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -30,7 +30,10 @@ local object = { ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } }, Unit = "Mpc" }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "6dF Galaxies", + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/digitaluniverse/abell.asset b/data/assets/scene/digitaluniverse/abell.asset index 6dbddbd01c..187ca33fb8 100644 --- a/data/assets/scene/digitaluniverse/abell.asset +++ b/data/assets/scene/digitaluniverse/abell.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Abell Galaxy Clusters", + Identifier = "Abell", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -38,7 +38,10 @@ local object = { 0.0, 0.0, 0.0, 1.0 } }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "Abell Galaxy Clusters", + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/digitaluniverse/alternatestarlabels.asset b/data/assets/scene/digitaluniverse/alternatestarlabels.asset index 2c074e0bee..f96a2c20dc 100644 --- a/data/assets/scene/digitaluniverse/alternatestarlabels.asset +++ b/data/assets/scene/digitaluniverse/alternatestarlabels.asset @@ -10,7 +10,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Stars Labels - Alternate", + Identifier = "StarLabelsAlternate", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -23,7 +23,10 @@ local object = { TextMinSize = 6.0, Unit = "pc" }, - GuiPath = "/Milky Way/Stars" + GUI = { + Name = "Stars Labels - Alternate", + Path = "/Milky Way/Stars" + } } diff --git a/data/assets/scene/digitaluniverse/backgroundradiation.asset b/data/assets/scene/digitaluniverse/backgroundradiation.asset index 85f10e6393..5ca7b769ef 100644 --- a/data/assets/scene/digitaluniverse/backgroundradiation.asset +++ b/data/assets/scene/digitaluniverse/backgroundradiation.asset @@ -17,49 +17,57 @@ local speck = asset.syncedResource({ }) local wmap = { - Name = "Wilkinson Microwave Anisotropy Probe (WMAP)", + Identifier = "WMAP", Renderable = { Type = "RenderableSphere", Enabled = false, Size = 3975.41417036064E23, Segments = 80, - Alpha = 0.5, + Opacity = 0.5, Texture = textures .. "/wmap_ilc_7yr_v4_200uK_RGB_sos.png", Orientation = "Inside/Outside", FadeInThreshould = 8E26 }, - GuiPath = "/Universe/Cosmic Microwave Background" + GUI = { + Name = "Wilkinson Microwave Anisotropy Probe (WMAP)", + Path = "/Universe/Cosmic Microwave Background" + } } local cbe = { - Name = "Cosmic Background Explorer", + Identifier = "CBE", Renderable = { Type = "RenderableSphere", Enabled = false, Size = 3975.41417036064E23, Segments = 80, - Alpha = 0.5, + Opacity = 0.5, Texture = textures .. "/COBErect.png", Orientation = "Inside/Outside", FadeInThreshould = 8E26 }, - GuiPath = "/Universe/Cosmic Microwave Background" + GUI = { + Name = "Cosmic Background Explorer", + Path = "/Universe/Cosmic Microwave Background" + } } local planck = { - Name = "Planck", + Identifier = "Planck", Renderable = { Type = "RenderableSphere", Enabled = false, Size = 3975.41417036064E23, Segments = 80, - Alpha = 0.3, + Opacity = 0.3, Texture = textures .. "/cmb4k.jpg", Orientation = "Inside/Outside", FadeInThreshould = 8E26 }, - GuiPath = "/Universe/Cosmic Microwave Background" + GUI = { + Path = "/Universe/Cosmic Microwave Background" + } } diff --git a/data/assets/scene/digitaluniverse/clusters.asset b/data/assets/scene/digitaluniverse/clusters.asset index d6c588a1f9..6c7794eb13 100644 --- a/data/assets/scene/digitaluniverse/clusters.asset +++ b/data/assets/scene/digitaluniverse/clusters.asset @@ -10,7 +10,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Galaxy Cluster Labels", + Identifier = "GalaxyClusterLabels", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -23,7 +23,10 @@ local object = { TextMinSize = 8.0, Unit = "Mpc" }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "Galaxy Cluster Labels", + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/digitaluniverse/constellationbounds.asset b/data/assets/scene/digitaluniverse/constellationbounds.asset index b2a81000b7..35dd792e2c 100644 --- a/data/assets/scene/digitaluniverse/constellationbounds.asset +++ b/data/assets/scene/digitaluniverse/constellationbounds.asset @@ -15,7 +15,7 @@ local zodiacs = { } local object = { - Name = "Constellation Bounds", + Identifier = "ConstellationBounds", Renderable = { Type = "RenderableConstellationBounds", Enabled = false, @@ -34,7 +34,10 @@ local object = { Scale = 10e17 } }, - GuiPath = "/Milky Way/Constellations" + GUI = { + Name = "Constellation Bounds", + Path = "/Milky Way/Constellations" + } } diff --git a/data/assets/scene/digitaluniverse/constellations.asset b/data/assets/scene/digitaluniverse/constellations.asset index 8b60862ad8..0b18a7e549 100644 --- a/data/assets/scene/digitaluniverse/constellations.asset +++ b/data/assets/scene/digitaluniverse/constellations.asset @@ -10,7 +10,7 @@ local speck = asset.syncedResource({ }) local constellationsExtragalactic = { - Name = "Constellations (Extragalactic)", + Identifier = "ConstellationsExtragalactic", Renderable = { Type = "RenderableDUMeshes", Enabled = false, @@ -26,11 +26,14 @@ local constellationsExtragalactic = { MeshColor = { { 0.6, 0.4, 0.4 }, { 0.8, 0.0, 0.0 }, { 0.0, 0.3, 0.8 } }, Unit = "Mpc" }, - GuiPath = "/Milky Way/Constellations" + GUI = { + Name = "Constellations (Extragalactic)", + Path = "/Milky Way/Constellations" + } } local constellations = { - Name = "Constellations", + Identifier = "Constellations", Renderable = { Type = "RenderableDUMeshes", Enabled = false, @@ -46,7 +49,9 @@ local constellations = { MeshColor = { { 0.6, 0.4, 0.4 }, { 0.8, 0.0, 0.0 }, { 0.0, 0.3, 0.8 } }, Unit = "pc" }, - GuiPath = "/Milky Way/Constellations" + GUI = { + Path = "/Milky Way/Constellations" + } } diff --git a/data/assets/scene/digitaluniverse/dwarfs.asset b/data/assets/scene/digitaluniverse/dwarfs.asset index 4ec32c416a..d0e4bf6e18 100644 --- a/data/assets/scene/digitaluniverse/dwarfs.asset +++ b/data/assets/scene/digitaluniverse/dwarfs.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Dwarfs", + Identifier = "Dwarfs", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -32,7 +32,9 @@ local object = { ScaleFactor = 360, Unit = "pc" }, - GuiPath = "/Milky Way/Brown Dwarfs" + GUI = { + Path = "/Milky Way/Brown Dwarfs" + } } diff --git a/data/assets/scene/digitaluniverse/exoplanets.asset b/data/assets/scene/digitaluniverse/exoplanets.asset index 28fd66a121..a482e8674d 100644 --- a/data/assets/scene/digitaluniverse/exoplanets.asset +++ b/data/assets/scene/digitaluniverse/exoplanets.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Exoplanets", + Identifier = "Exoplanets", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -34,7 +34,9 @@ local object = { TextMinSize = 10.0, Unit = "pc" }, - GuiPath = "/Milky Way/Exoplanets" + GUI = { + Path = "/Milky Way/Exoplanets" + } } diff --git a/data/assets/scene/digitaluniverse/globularclusters.asset b/data/assets/scene/digitaluniverse/globularclusters.asset index bd367c4453..95e0505682 100644 --- a/data/assets/scene/digitaluniverse/globularclusters.asset +++ b/data/assets/scene/digitaluniverse/globularclusters.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Globular Clusters", + Identifier = "GlobularClusters", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -33,7 +33,10 @@ local object = { TextMinSize = 10.0, Unit = "pc" }, - GuiPath = "/Milky Way/Globular Clusters" + GUI = { + Name = "Globular Clusters", + Path = "/Milky Way/Globular Clusters" + } } diff --git a/data/assets/scene/digitaluniverse/grids.asset b/data/assets/scene/digitaluniverse/grids.asset index 05e44b5dfd..50f6319833 100644 --- a/data/assets/scene/digitaluniverse/grids.asset +++ b/data/assets/scene/digitaluniverse/grids.asset @@ -10,7 +10,7 @@ local speck = asset.syncedResource({ }) local ecliptic = { - Name = "Ecliptic Sphere", + Identifier = "EclipticSphere", Parent = transforms.SolarSystemBarycenter.Name, Renderable = { Type = "RenderableSphericalGrid", @@ -23,11 +23,14 @@ local ecliptic = { -0.09647644, 0.8622859, 0.4971472 , 0.0, 0.0 , 0.0 , 0.0 , 1.0 } }, - GuiPath = "/Other/Grids" + GUI = { + Name = "Ecliptic Sphere", + Path = "/Other/Grids" + } } local eclipticLabels = { - Name = "Ecliptic Sphere Labels", + Identifier = "EclipticSphereLabels", Parent = transforms.SolarSystemBarycenter.Name, Renderable = { Type = "RenderableBillboardsCloud", @@ -46,11 +49,14 @@ local eclipticLabels = { 0.0, 0.0, 0.0, 1.0 } }, - GuiPath = "/Other/Grids" + GUI = { + Name = "Ecliptic Sphere Labels", + Path = "/Other/Grids" + } } local equatorial = { - Name = "Equatorial Sphere", + Identifier = "EquatorialSphere", Parent = transforms.SolarSystemBarycenter.Name, Renderable = { Type = "RenderableSphericalGrid", @@ -63,11 +69,14 @@ local equatorial = { -0.483835 , 0.7469823, 0.4559838, 0.0, 0.0 , 0.0 , 0.0 , 1.0 }, }, - GuiPath = "/Other/Grids" + GUI = { + Name = "Equatorial Sphere", + Path = "/Other/Grids" + } } local equatorialLabels = { - Name = "Equatorial Sphere Labels", + Identifier = "EquatorialSphereLabels", Parent = transforms.SolarSystemBarycenter.Name, Renderable = { Type = "RenderableBillboardsCloud", @@ -86,11 +95,14 @@ local equatorialLabels = { 0.0, 0.0, 0.0, 1.0 } }, - GuiPath = "/Other/Grids" + GUI = { + Name = "Equatorial Sphere Labels", + Path = "/Other/Grids" + } } local galactic = { - Name = "Galactic Sphere", + Identifier = "GalacticSphere", Parent = transforms.SolarSystemBarycenter.Name, Renderable = { Type = "RenderableSphericalGrid", @@ -99,11 +111,14 @@ local galactic = { Radius = 9.46377307652E18; GridColor = { 0.0, 0.6, 0.6, 0.6} }, - GuiPath = "/Other/Grids" + GUI = { + Name = "Galactic Sphere", + Path = "/Other/Grids" + } } local galacticLabels = { - Name = "Galactic Sphere Labels", + Identifier = "GalacticSphereLabels", Parent = transforms.SolarSystemBarycenter.Name, Renderable = { Type = "RenderableBillboardsCloud", @@ -116,11 +131,14 @@ local galacticLabels = { TextMinSize = 5.0, Unit = "pc" }, - GuiPath = "/Other/Grids" + GUI = { + Name = "Galactic Sphere Labels", + Path = "/Other/Grids" + } } local plane100kly = { - Name = "100kly Grid", + Identifier = "100klyGrid", Renderable = { Type = "RenderableDUMeshes", Enabled = false, @@ -135,11 +153,14 @@ local plane100kly = { TextMinSize = 7.0, Unit = "Mpc" }, - GuiPath = "/Other/Grids" + GUI = { + Name = "100kly Grid", + Path = "/Other/Grids" + } } local plane1Mly = { - Name = "1Mly Grid", + Identifier = "1MlyGrid", Renderable = { Type = "RenderableDUMeshes", Enabled = false, @@ -154,11 +175,14 @@ local plane1Mly = { TextMinSize = 7.0, Unit = "Mpc" }, - GuiPath = "/Other/Grids" + GUI = { + Name = "1Mly Grid", + Path = "/Other/Grids" + } } local plane10Mly = { - Name = "10Mly Grid", + Identifier = "10MlyGrid", Renderable = { Type = "RenderableDUMeshes", Enabled = false, @@ -173,11 +197,14 @@ local plane10Mly = { TextMinSize = 7.0, Unit = "Mpc" }, - GuiPath = "/Other/Grids" + GUI = { + Name = "10Mly Grid", + Path = "/Other/Grids" + } } local plane100Mly = { - Name = "100Mly Grid", + Identifier = "100MlyGrid", Renderable = { Type = "RenderableDUMeshes", Enabled = false, @@ -192,11 +219,14 @@ local plane100Mly = { TextMinSize = 7.0, Unit = "Mpc" }, - GuiPath = "/Other/Grids" + GUI = { + Name = "100Mly Grid", + Path = "/Other/Grids" + } } local plane20Gly = { - Name = "20Gly Grid", + Identifier = "20GlyGrid", Renderable = { Type = "RenderableDUMeshes", Enabled = false, @@ -211,7 +241,10 @@ local plane20Gly = { TextMinSize = 7.0, Unit = "Mpc" }, - GuiPath = "/Other/Grids" + GUI = { + Name = "20Gly Grid", + Path = "/Other/Grids" + } } assetHelper.registerSceneGraphNodesAndExport(asset, { diff --git a/data/assets/scene/digitaluniverse/groups.asset b/data/assets/scene/digitaluniverse/groups.asset index 7a4d5dd1d1..95e63c03d0 100644 --- a/data/assets/scene/digitaluniverse/groups.asset +++ b/data/assets/scene/digitaluniverse/groups.asset @@ -10,7 +10,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Nearby Galaxy Groups", + Identifier = "NearbyGalaxyGroups", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -23,7 +23,10 @@ local object = { TextMinSize = 8.0, Unit = "Mpc" }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "Nearby Galaxy Groups", + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/digitaluniverse/h2regions.asset b/data/assets/scene/digitaluniverse/h2regions.asset index e053b562ef..61f756ef37 100644 --- a/data/assets/scene/digitaluniverse/h2regions.asset +++ b/data/assets/scene/digitaluniverse/h2regions.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "HII Regions", + Identifier = "HIIRegions", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -33,7 +33,10 @@ local object = { TextMinSize = 2.0, Unit = "pc" }, - GuiPath = "/Milky Way/HII" + GUI = { + Name = "HII Regions", + Path = "/Milky Way/HII" + } } diff --git a/data/assets/scene/digitaluniverse/kepler.asset b/data/assets/scene/digitaluniverse/kepler.asset index d482232f4f..a6c9d28cdc 100644 --- a/data/assets/scene/digitaluniverse/kepler.asset +++ b/data/assets/scene/digitaluniverse/kepler.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Kepler Planetary Candidates", + Identifier = "KeplerPlanetaryCandidates", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -28,7 +28,10 @@ local object = { Texture = textures .. "/halo.png", Unit = "pc" }, - GuiPath = "/Milky Way/Exoplanets" + GUI = { + Name = "Kepler Planetary Candidates", + Path = "/Milky Way/Exoplanets" + } } diff --git a/data/assets/scene/digitaluniverse/localdwarfs.asset b/data/assets/scene/digitaluniverse/localdwarfs.asset index 28a1934575..ba1354bb43 100644 --- a/data/assets/scene/digitaluniverse/localdwarfs.asset +++ b/data/assets/scene/digitaluniverse/localdwarfs.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Local Dwarf Galaxies", + Identifier = "LocalDwarfGalaxies", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -33,7 +33,10 @@ local object = { TextMinSize = 7.3, Unit = "Mpc" }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "Local Dwarf Galaxies", + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/digitaluniverse/milkyway.asset b/data/assets/scene/digitaluniverse/milkyway.asset index a55dca6ede..1d745cc3a2 100644 --- a/data/assets/scene/digitaluniverse/milkyway.asset +++ b/data/assets/scene/digitaluniverse/milkyway.asset @@ -24,21 +24,24 @@ local planeSpeck = asset.syncedResource({ }) local sphere = { - Name = "MilkyWay", + Identifier = "MilkyWay", Renderable = { Type = "RenderableSphere", Size = 9.2E20, Segments = 40, - Alpha = 0.4, + Opacity = 0.4, Texture = sphereTextures .. "/DarkUniverse_mellinger_4k.jpg", Orientation = "Inside/Outside", FadeOutThreshould = 0.25 }, - GuiPath = "/Milky Way/Milky Way" + GUI = { + Name = "Milky Way", + Path = "/Milky Way/Milky Way" + } } local plane = { - Name = "Milky Way Galaxy Image", + Identifier = "MilkyWayGalaxyImage", Parent = "Root", Renderable = { Type = "RenderablePlanesCloud", @@ -56,7 +59,10 @@ local plane = { PlaneMinSize = 5.0, Unit = "pc" }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "Milky Way Galaxy Image", + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/digitaluniverse/obassociations.asset b/data/assets/scene/digitaluniverse/obassociations.asset index ed73e33a3d..4de911b1d5 100644 --- a/data/assets/scene/digitaluniverse/obassociations.asset +++ b/data/assets/scene/digitaluniverse/obassociations.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "OB Associations", + Identifier = "OBAssociations", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -33,7 +33,10 @@ local object = { TextMinSize = 5.76, Unit = "pc" }, - GuiPath = "/Milky Way/OB Associations" + GUI = { + Name = "OB Associations", + Path = "/Milky Way/OB Associations" + } } diff --git a/data/assets/scene/digitaluniverse/openclusters.asset b/data/assets/scene/digitaluniverse/openclusters.asset index f46bb39b33..8bd27ec145 100644 --- a/data/assets/scene/digitaluniverse/openclusters.asset +++ b/data/assets/scene/digitaluniverse/openclusters.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Open Star Clusters", + Identifier = "OpenStarClusters", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -33,7 +33,10 @@ local object = { TextMinSize = 4.5, Unit = "pc" }, - GuiPath = "/Milky Way/Open Clusters" + GUI = { + Name = "Open Star Clusters", + Path = "/Milky Way/Open Clusters" + } } diff --git a/data/assets/scene/digitaluniverse/planetarynebulae.asset b/data/assets/scene/digitaluniverse/planetarynebulae.asset index df68d19c1b..f4f55b1b9c 100644 --- a/data/assets/scene/digitaluniverse/planetarynebulae.asset +++ b/data/assets/scene/digitaluniverse/planetarynebulae.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Planetary Nebulae", + Identifier = "PlanetaryNebulae", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -33,7 +33,10 @@ local object = { TextMinSize = 4.5, Unit = "pc" }, - GuiPath = "/Milky Way/Planetary Nebulae" + GUI = { + Name = "Planetary Nebulae", + Path = "/Milky Way/Planetary Nebulae" + } } diff --git a/data/assets/scene/digitaluniverse/pulsars.asset b/data/assets/scene/digitaluniverse/pulsars.asset index e91df77306..0eb50d72d0 100644 --- a/data/assets/scene/digitaluniverse/pulsars.asset +++ b/data/assets/scene/digitaluniverse/pulsars.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Pulsars", + Identifier = "Pulsars", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -33,7 +33,9 @@ local object = { TextMinSize = 4.5, Unit = "pc" }, - GuiPath = "/Milky Way/Pulsars" + GUI = { + Path = "/Milky Way/Pulsars" + } } diff --git a/data/assets/scene/digitaluniverse/quasars.asset b/data/assets/scene/digitaluniverse/quasars.asset index 0db00a9a5f..63020c882c 100644 --- a/data/assets/scene/digitaluniverse/quasars.asset +++ b/data/assets/scene/digitaluniverse/quasars.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Quasars", + Identifier = "Quasars", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -32,7 +32,9 @@ local object = { BillboardMaxSize = 30.0, BillboardMinSize = 0.0, }, - GuiPath = "/Universe/Quasars" + GUI = { + Path = "/Universe/Quasars" + } } diff --git a/data/assets/scene/digitaluniverse/sdss.asset b/data/assets/scene/digitaluniverse/sdss.asset index 086f53d01b..bf3df4dba7 100644 --- a/data/assets/scene/digitaluniverse/sdss.asset +++ b/data/assets/scene/digitaluniverse/sdss.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Sloan Digital Sky Survey", + Identifier = "SloanDigitalSkySurvey", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -38,7 +38,10 @@ local object = { TextMinSize = 10.0, TextMaxSize = 50.0 }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "Sloan Digital Sky Survey", + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/digitaluniverse/starlabels.asset b/data/assets/scene/digitaluniverse/starlabels.asset index 01fecdbf42..14a536635d 100644 --- a/data/assets/scene/digitaluniverse/starlabels.asset +++ b/data/assets/scene/digitaluniverse/starlabels.asset @@ -10,7 +10,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Stars Labels", + Identifier = "StarsLabels", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -24,7 +24,10 @@ local object = { TextMaxSize = 50.0, Unit = "pc" }, - GuiPath = "/Milky Way/Stars" + GUI = { + Name = "Stars Labels", + Path = "/Milky Way/Stars" + } } diff --git a/data/assets/scene/digitaluniverse/stars.asset b/data/assets/scene/digitaluniverse/stars.asset index 939667f169..89bcc82991 100644 --- a/data/assets/scene/digitaluniverse/stars.asset +++ b/data/assets/scene/digitaluniverse/stars.asset @@ -24,14 +24,16 @@ local colorLUT = asset.syncedResource({ }) local object = { - Name = "Stars", + Identifier = "Stars", Renderable = { Type = "RenderableStars", File = speck .. "/stars.speck", Texture = textures .. "/halo.png", ColorMap = colorLUT .. "/colorbv.cmap" }, - GuiPath = "/Milky Way/Stars" + GUI = { + Path = "/Milky Way/Stars" + } } diff --git a/data/assets/scene/digitaluniverse/superclusters.asset b/data/assets/scene/digitaluniverse/superclusters.asset index ec293afce4..cd8afe87fd 100644 --- a/data/assets/scene/digitaluniverse/superclusters.asset +++ b/data/assets/scene/digitaluniverse/superclusters.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Galaxy Superclusters", + Identifier = "GalaxySuperclusters", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -32,7 +32,10 @@ local object = { TextMinSize = 8.0, Unit = "Mpc" }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "Galaxy Superclusters", + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/digitaluniverse/supernovaremnants.asset b/data/assets/scene/digitaluniverse/supernovaremnants.asset index a0b5592ec8..a010f4e6fa 100644 --- a/data/assets/scene/digitaluniverse/supernovaremnants.asset +++ b/data/assets/scene/digitaluniverse/supernovaremnants.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Supernova Remnants", + Identifier = "SupernovaRemnants", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -33,7 +33,10 @@ local object = { TextMinSize = 8.0, Unit = "pc" }, - GuiPath = "/Milky Way/Supernova Remnants" + GUI = { + Name = "Supernova Remnants", + Path = "/Milky Way/Supernova Remnants" + } } diff --git a/data/assets/scene/digitaluniverse/tully.asset b/data/assets/scene/digitaluniverse/tully.asset index b598194b8b..b1ae788a5d 100644 --- a/data/assets/scene/digitaluniverse/tully.asset +++ b/data/assets/scene/digitaluniverse/tully.asset @@ -17,7 +17,7 @@ local speck = asset.syncedResource({ }) local tullyPoints = { - Name = "Tully Galaxies", + Identifier = "TullyGalaxies", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -46,11 +46,14 @@ local tullyPoints = { BillboardMaxSize = 50.0, BillboardMinSize = 0.0, }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "Tully Galaxies", + Path = "/Universe/Galaxies" + } } local tullyImages = { - Name = "Tully Galaxies Images", + Identifier = "TullyGalaxiesImages", Renderable = { Type = "RenderablePlanesCloud", Enabled = false, @@ -72,7 +75,10 @@ local tullyImages = { FadeInDistances = {0.05, 0.1}, PlaneMinSize = 5.0 }, - GuiPath = "/Universe/Galaxies" + GUI = { + Name = "Tully Galaxies Images", + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/digitaluniverse/voids.asset b/data/assets/scene/digitaluniverse/voids.asset index f269e46be6..605e2c8a97 100644 --- a/data/assets/scene/digitaluniverse/voids.asset +++ b/data/assets/scene/digitaluniverse/voids.asset @@ -10,7 +10,7 @@ local speck = asset.syncedResource({ }) local object = { - Name = "Voids", + Identifier = "Voids", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, @@ -22,7 +22,9 @@ local object = { TextMinSize = 8.0, Unit = "Mpc" }, - GuiPath = "/Universe/Galaxies" + GUI = { + Path = "/Universe/Galaxies" + } } diff --git a/data/assets/scene/milkyway/milkyway/eso.asset b/data/assets/scene/milkyway/milkyway/eso.asset index cb77f1f655..dcfd30c43b 100644 --- a/data/assets/scene/milkyway/milkyway/eso.asset +++ b/data/assets/scene/milkyway/milkyway/eso.asset @@ -10,17 +10,20 @@ local textures = asset.syncedResource({ }) local object = { - Name = "MilkyWay (ESO)", + Identifier = "MilkyWay-ESO", Renderable = { Type = "RenderableSphere", Size = 9.2E20, Segments = 40, - Alpha = 0.4, + Opacity = 0.4, Texture = textures .. "/eso0932a_blend.png", Orientation = "Inside/Outside", FadeOutThreshould = 0.01 }, - GuiPath = "/Milky Way/Milky Way" + GUI = { + Name = "Milky Way (ESO)", + Path = "/Milky Way/Milky Way" + } } diff --git a/data/assets/scene/milkyway/stars/denver.asset b/data/assets/scene/milkyway/stars/denver.asset index 8d9e059b4d..86fc3ff621 100644 --- a/data/assets/scene/milkyway/stars/denver.asset +++ b/data/assets/scene/milkyway/stars/denver.asset @@ -24,14 +24,17 @@ local colorLUT = asset.syncedResource({ }) local object = { - Name = "Stars (Denver)", + Identifier = "Stars-Denver", Renderable = { Type = "RenderableStars", File = speck .. "/denver_stars.speck", Texture = textures .. "/halo.png", ColorMap = colorLUT .. "/denver_colorbv.cmap" }, - GuiPath = "/Milky Way/Stars" + GUI = { + Name = "Stars (Denver)", + Path = "/Milky Way/Stars" + } } diff --git a/data/assets/scene/solarsystem/missions/dawn/ceres.asset b/data/assets/scene/solarsystem/missions/dawn/ceres.asset index 8b4d3dea86..119e42b728 100644 --- a/data/assets/scene/solarsystem/missions/dawn/ceres.asset +++ b/data/assets/scene/solarsystem/missions/dawn/ceres.asset @@ -12,8 +12,8 @@ local textures = asset.syncedResource({ }) local Ceres = { - Name = "Ceres", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "Ceres", + Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -50,7 +50,9 @@ local Ceres = { } } }, - GuiPath = "/Solar System/Dwarf Planets/Ceres" + GUI = { + Path = "/Solar System/Dwarf Planets/Ceres" + } } diff --git a/data/assets/scene/solarsystem/missions/dawn/dawn.asset b/data/assets/scene/solarsystem/missions/dawn/dawn.asset index 0451842e0a..1c7ab5f19e 100644 --- a/data/assets/scene/solarsystem/missions/dawn/dawn.asset +++ b/data/assets/scene/solarsystem/missions/dawn/dawn.asset @@ -617,8 +617,8 @@ local KernelFiles = { } local Dawn = { - Name = "Dawn", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "Dawn", + Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -642,13 +642,15 @@ local Dawn = { }, ColorTexture = textures .. "/gray.png" }, - GuiPath = "/Solar System/Missions/Dawn" + GUI = { + Path = "/Solar System/Missions/Dawn" + } } -- Dawn Solar Array module 1 local DawnSolarArray1 = { - Name = "DawnSolar1", - Parent = Dawn.Name, + Identifier = "DawnSolar1", + Parent = Dawn.Identifier, Transformation = { Rotation = { Type = "SpiceRotation", @@ -665,13 +667,16 @@ local DawnSolarArray1 = { }, ColorTexture = textures .. "/gray.png" }, - GuiPath = "/Solar System/Missions/Dawn" + GUI = { + Name = "Dawn Solar 1", + Path = "/Solar System/Missions/Dawn" + } } -- Dawn Solar Array module 2 local DawnSolarArray2 = { - Name = "DawnSolar2", - Parent = Dawn.Name, + Identifier = "DawnSolar2", + Parent = Dawn.Identifier, Transformation = { Rotation = { Type = "SpiceRotation", @@ -688,12 +693,15 @@ local DawnSolarArray2 = { }, ColorTexture = textures .. "/gray.png" }, - GuiPath = "/Solar System/Missions/Dawn" + GUI = { + Name = "Dawn Solar 2", + Path = "/Solar System/Missions/Dawn" + } } local DawnTrail = { - Name = "DawnTrail", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "DawnTrail", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -711,13 +719,16 @@ local DawnTrail = { EnableFade = false, Rendering = "Lines+Points" }, - GuiPath = "/Solar System/Missions/Dawn" + GUI = { + Name = "Dawn Trail", + Path = "/Solar System/Missions/Dawn" + } } -- DawnFov 1 local DawnFramingCamera1 = { - Name = "Dawn_framing_camera_1", - Parent = Dawn.Name, + Identifier = "Dawn_framing_camera_1", + Parent = Dawn.Identifier, Renderable = { Type = "RenderableFov", Body = "DAWN", @@ -730,12 +741,15 @@ local DawnFramingCamera1 = { }, PotentialTargets = { "VESTA", "CERES" } }, - GuiPath = "/Solar System/Missions/Dawn" + GUI = { + Name = "Dawn Framing Camera 1", + Path = "/Solar System/Missions/Dawn" + } } local DawnFramingCamera2 = { - Name = "Dawn_framing_camera_2", - Parent = Dawn.Name, + Identifier = "Dawn_framing_camera_2", + Parent = Dawn.Identifier, Renderable = { Type = "RenderableFov", Body = "DAWN", @@ -748,7 +762,10 @@ local DawnFramingCamera2 = { }, PotentialTargets = { "VESTA", "CERES" } }, - GuiPath = "/Solar System/Missions/Dawn" + GUI = { + Name = "Dawn Framing Camera 2", + Path = "/Solar System/Missions/Dawn" + } } assetHelper.registerSceneGraphNodesAndExport(asset, { diff --git a/data/assets/scene/solarsystem/missions/dawn/vesta.asset b/data/assets/scene/solarsystem/missions/dawn/vesta.asset index c2789191d7..2279c520a4 100644 --- a/data/assets/scene/solarsystem/missions/dawn/vesta.asset +++ b/data/assets/scene/solarsystem/missions/dawn/vesta.asset @@ -25,8 +25,8 @@ local models = asset.syncedResource({ }) local Vesta = { - Name = "Vesta", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "Vesta", + Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -108,12 +108,14 @@ local Vesta = { PotentialTargets = { "VESTA" } } }, - GuiPath = "/Solar System/Asteroid Belt/Vesta" + GUI = { + Path = "/Solar System/Asteroid Belt/Vesta" + } } local VestaTrail = { - Name = "VestaTrail", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "VestaTrail", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -127,7 +129,10 @@ local VestaTrail = { Period = 1325.0, Resolution = 3600 * 24 }, - GuiPath = "/Solar System/Asteroid Belt/Vesta" + GUI = { + Name = "Vesta Trail", + Path = "/Solar System/Asteroid Belt/Vesta" + } } diff --git a/data/assets/scene/solarsystem/missions/juno/juno.asset b/data/assets/scene/solarsystem/missions/juno/juno.asset index 13ecb3e085..8919a2235d 100644 --- a/data/assets/scene/solarsystem/missions/juno/juno.asset +++ b/data/assets/scene/solarsystem/missions/juno/juno.asset @@ -136,8 +136,8 @@ local RotationMatrix = { } local Juno = { - Name = "Juno", - Parent = transforms.JupiterBarycenter.Name, + Identifier = "Juno", + Parent = transforms.JupiterBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -161,12 +161,14 @@ local Juno = { ColorTexture = textures .. "/gray.png", ModelTransform = RotationMatrix }, - GuiName = "/Solar System/Missions/Juno" + GUI = { + Path = "/Solar System/Missions/Juno" + } } local JunoTrail = { - Name = "JunoTrail", - Parent = "JupiterBarycenter", + Identifier = "JunoTrail", + Parent = transforms.JupiterBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -180,7 +182,10 @@ local JunoTrail = { EndTime = "2016 DEC 13", SampleInterval = 2 }, - GuiName = "/Solar System/Missions/Juno" + GUI = { + Name = "Juno Trail", + Path = "/Solar System/Missions/Juno" + } } diff --git a/data/assets/scene/solarsystem/missions/newhorizons/charon.asset b/data/assets/scene/solarsystem/missions/newhorizons/charon.asset index 66439faaa4..cbfb0391b7 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/charon.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/charon.asset @@ -15,8 +15,8 @@ local textures = asset.syncedResource({ local charonRadius = 6.035E5 local Charon = { - Name = "Charon", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "Charon", + Parent = transforms.PlutoBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -66,12 +66,14 @@ local Charon = { } } }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Path = "/Solar System/Dwarf Planets/Pluto" + } } local CharonText = { - Name = "CharonText", - Parent = Charon.Name, + Identifier = "CharonText", + Parent = Charon.Identifier, Transform = { Translation = { Type = "StaticTranslation", @@ -86,12 +88,15 @@ local CharonText = { Texture = textures .. "/Charon-Text.png", BlendMode = "Additive" }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Charon Text", + Path = "/Solar System/Dwarf Planets/Pluto" + } } local CharonShadow = { - Name = "CharonShadow", - Parent = Charon.Name, + Identifier = "CharonShadow", + Parent = Charon.Identifier, Renderable = { Type = "RenderableShadowCylinder", TerminatorType = "PENUMBRAL", @@ -101,12 +106,15 @@ local CharonShadow = { BodyFrame = "IAU_CHARON", Aberration = "NONE" }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Charon Shadow", + Path = "/Solar System/Dwarf Planets/Pluto" + } } local CharonTrail = { - Name = "CharonTrail", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "CharonTrail", + Parent = transforms.PlutoBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -118,7 +126,10 @@ local CharonTrail = { Period = 6.38725, Resolution = 1000 }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Charon Trail", + Path = "/Solar System/Dwarf Planets/Pluto" + } } diff --git a/data/assets/scene/solarsystem/missions/newhorizons/fov.asset b/data/assets/scene/solarsystem/missions/newhorizons/fov.asset index 88f4827ff2..182639b9ad 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/fov.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/fov.asset @@ -9,8 +9,8 @@ local AliceOffset = { -7.9, -1.7, 8.3 } local RexOffset = { 0, 0, 0 } local Lorri = { - Name = "NH_LORRI", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_LORRI", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableFov", Body = "NEW HORIZONS", @@ -32,12 +32,15 @@ local Lorri = { Position = LorriOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "LORRI", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } local RalphLeisa = { - Name = "NH_RALPH_LEISA", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_RALPH_LEISA", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableFov", Body = "NEW HORIZONS", @@ -59,12 +62,15 @@ local RalphLeisa = { Position = RalphOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "RALPH LEISA", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } local RalphMvicPan1 = { - Name = "NH_RALPH_MVIC_PAN1", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_RALPH_MVIC_PAN1", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableFov", Body = "NEW HORIZONS", @@ -86,12 +92,15 @@ local RalphMvicPan1 = { Position = RalphOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "RALPH MVIC PAN 1", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } local RalphMvicPan2 = { - Name = "NH_RALPH_MVIC_PAN2", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_RALPH_MVIC_PAN2", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableFov", Body = "NEW HORIZONS", @@ -113,12 +122,15 @@ local RalphMvicPan2 = { Position = RalphOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "RALPH MVIC PAN 2", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } local RalphMvicRed = { - Name = "NH_RALPH_MVIC_RED", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_RALPH_MVIC_RED", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableFov", Body = "NEW HORIZONS", @@ -140,12 +152,15 @@ local RalphMvicRed = { Position = RalphOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "RALPH MVIC RED", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } local RalphMvicBlue = { - Name = "NH_RALPH_MVIC_BLUE", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_RALPH_MVIC_BLUE", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableFov", Body = "NEW HORIZONS", @@ -167,12 +182,15 @@ local RalphMvicBlue = { Position = RalphOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "RALPH MVIC BLUE", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } local RalphMvicFt = { - Name = "NH_RALPH_MVIC_FT", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_RALPH_MVIC_FT", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableFov", Body = "NEW HORIZONS", @@ -194,12 +212,15 @@ local RalphMvicFt = { Position = RalphOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "RALPH MVIC FT", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } local RalphMvicMethane = { - Name = "NH_RALPH_MVIC_METHANE", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_RALPH_MVIC_METHANE", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableFov", Body = "NEW HORIZONS", @@ -221,12 +242,15 @@ local RalphMvicMethane = { Position = RalphOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "RALPH MVIC METHANE", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } local RalphMvicNir = { - Name = "NH_RALPH_MVIC_NIR", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_RALPH_MVIC_NIR", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableFov", Body = "NEW HORIZONS", @@ -248,12 +272,15 @@ local RalphMvicNir = { Position = RalphOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "RALPH MVIC NIR", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } local AliceAirglow = { - Name = "NH_ALICE_AIRGLOW", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_ALICE_AIRGLOW", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableFov", Body = "NEW HORIZONS", @@ -276,12 +303,15 @@ local AliceAirglow = { Position = AliceOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "ALICE AIRGLOW", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } local AliceSoc = { - Name = "NH_ALICE_SOC", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_ALICE_SOC", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableFov", Body = "NEW HORIZONS", @@ -303,12 +333,15 @@ local AliceSoc = { Position = AliceOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "ALICE SOC", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } local Rex = { - Name = "NH_REX", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NH_REX", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableCrawlingLine", Source = "NH_REX", @@ -333,7 +366,10 @@ local Rex = { Position = RexOffset } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "REX", + Path = "/Solar System/Missions/New Horizons/Instruments" + } } diff --git a/data/assets/scene/solarsystem/missions/newhorizons/hydra.asset b/data/assets/scene/solarsystem/missions/newhorizons/hydra.asset index 3e84d77c43..3f5b5da8cb 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/hydra.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/hydra.asset @@ -12,8 +12,8 @@ local textures = asset.syncedResource({ }) local Hydra = { - Name = "Hydra", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "Hydra", + Parent = transforms.PlutoBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -34,12 +34,14 @@ local Hydra = { }, ColorTexture = textures .. "/gray.jpg" }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Path = "/Solar System/Dwarf Planets/Pluto" + } } local HydraText = { - Name = "HydraText", - Parent = Hydra.Name, + Identifier = "HydraText", + Parent = Hydra.Identifier, Transform = { Translation = { Type = "StaticTranslation", @@ -54,12 +56,15 @@ local HydraText = { Texture = textures .. "/Hydra-Text.png", BlendMode = "Additive" }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Hydra Text", + Path = "/Solar System/Dwarf Planets/Pluto" + } } local HydraTrail = { - Name = "HydraTrail", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "HydraTrail", + Parent = transforms.PlutoBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -71,7 +76,10 @@ local HydraTrail = { Period = 38.20177, Resolution = 1000 }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Hydra Trail", + Path = "/Solar System/Dwarf Planets/Pluto" + } } diff --git a/data/assets/scene/solarsystem/missions/newhorizons/kerberos.asset b/data/assets/scene/solarsystem/missions/newhorizons/kerberos.asset index 07298e75b2..e5929a7e7f 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/kerberos.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/kerberos.asset @@ -12,8 +12,8 @@ local textures = asset.syncedResource({ }) local Kerberos = { - Name = "Kerberos", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "Kerberos", + Parent = transforms.PlutoBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -38,12 +38,14 @@ local Kerberos = { }, ColorTexture = textures .. "/gray.jpg" }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Path = "/Solar System/Dwarf Planets/Pluto" + } } local KerberosText = { - Name = "KerberosText", - Parent = Kerberos.Name, + Identifier = "KerberosText", + Parent = Kerberos.Identifier, Transform = { Translation = { Type = "StaticTranslation", @@ -57,12 +59,15 @@ local KerberosText = { Billboard = true, Texture = textures .. "/Kerberos-Text.png" }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Kerberos Text", + Path = "/Solar System/Dwarf Planets/Pluto" + } } local KerberosTrail = { - Name = "KerberosTrail", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "KerberosTrail", + Parent = transforms.PlutoBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -74,7 +79,10 @@ local KerberosTrail = { Period = 32.16756, Resolution = 1000 }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Kerberos Trail", + Path = "/Solar System/Dwarf Planets/Pluto" + } } diff --git a/data/assets/scene/solarsystem/missions/newhorizons/label.asset b/data/assets/scene/solarsystem/missions/newhorizons/label.asset index e3b1cdcac0..bd3978f255 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/label.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/label.asset @@ -9,8 +9,8 @@ local textures = NewHorizonsModel.NewHorizonsTextures local models = NewHorizonsModel.NewHorizonsModels local Labels = { - Name = "Labels", - Parent = NewHorizonsModel.NewHorizons.Name, + Identifier = "Labels", + Parent = NewHorizonsModel.NewHorizons.Identifier, Renderable = { Type = "RenderableModel", Body = "NEW HORIZONS", @@ -20,7 +20,9 @@ local Labels = { }, ColorTexture = textures .. "/labels.png" }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Path = "/Solar System/Missions/New Horizons" + } } diff --git a/data/assets/scene/solarsystem/missions/newhorizons/model.asset b/data/assets/scene/solarsystem/missions/newhorizons/model.asset index d4286a54db..7b7444e60b 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/model.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/model.asset @@ -18,8 +18,8 @@ local models = asset.syncedResource({ }) local NewHorizons = { - Name = "NewHorizons", - Parent = transforms.NewHorizonsPosition.Name, + Identifier = "NewHorizons", + Parent = transforms.NewHorizonsPosition.Identifier, Renderable = { Type = "RenderableModel", Body = "NEW HORIZONS", @@ -29,7 +29,10 @@ local NewHorizons = { }, ColorTexture = textures .. "/NHTexture.jpg" }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "New Horizons", + Path = "/Solar System/Missions/New Horizons" + } } diff --git a/data/assets/scene/solarsystem/missions/newhorizons/nix.asset b/data/assets/scene/solarsystem/missions/newhorizons/nix.asset index be2baf9b8c..20494361e5 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/nix.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/nix.asset @@ -12,8 +12,8 @@ local textures = asset.syncedResource({ }) local Nix = { - Name = "Nix", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "Nix", + Parent = transforms.PlutoBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -24,6 +24,7 @@ local Nix = { }, Renderable = { Type = "RenderablePlanet", + Body = "NIX", Geometry = { Type = "SimpleSphere", Radius = 0.45E5, @@ -31,12 +32,14 @@ local Nix = { }, ColorTexture = textures .. "/gray.jpg", }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Path = "/Solar System/Dwarf Planets/Pluto" + } } local NixText = { - Name = "NixText", - Parent = Nix.Name, + Identifier = "NixText", + Parent = Nix.Identifier, Renderable = { Type = "RenderablePlaneImageLocal", Size = 10^6.3, @@ -45,12 +48,15 @@ local NixText = { Texture = textures .. "/Nix-Text.png", BlendMode = "Additive" }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Nix Text", + Path = "/Solar System/Dwarf Planets/Pluto" + } } local NixTrail = { - Name = "NixTrail", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "NixTrail", + Parent = transforms.PlutoBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -62,7 +68,10 @@ local NixTrail = { Period = 24.85463, Resolution = 1000 }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Nix Trail", + Path = "/Solar System/Dwarf Planets/Pluto" + } } diff --git a/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset b/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset index 868e379234..953866302a 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset @@ -36,8 +36,8 @@ local images = asset.syncedResource({ local plutoRadius = 1.173E6 local Pluto = { - Name = "Pluto", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "Pluto", + Parent = transforms.PlutoBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -178,12 +178,14 @@ local Pluto = { } } }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Path = "/Solar System/Dwarf Planets/Pluto" + } } local PlutoBarycenterLabel = { - Name = "PlutoBarycenterLabel", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "PlutoBarycenterLabel", + Parent = transforms.PlutoBarycenter.Identifier, Renderable = { Type = "RenderablePlaneImageLocal", Billboard = true, @@ -191,12 +193,15 @@ local PlutoBarycenterLabel = { Texture = encounterTextures .. "/barycenter.png", BlendMode = "Additive" }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Pluto Barycenter Label", + Path = "/Solar System/Dwarf Planets/Pluto" + } } local PlutoText = { - Name = "PlutoText", - Parent = Pluto.Name, + Identifier = "PlutoText", + Parent = Pluto.Identifier, Transform = { Translation = { Type = "StaticTranslation", @@ -211,12 +216,15 @@ local PlutoText = { Texture = encounterTextures .. "/Pluto-Text.png", BlendMode = "Additive" }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Pluto Text", + Path = "/Solar System/Dwarf Planets/Pluto" + } } local PlutoShadow = { - Name = "PlutoShadow", - Parent = Pluto.Name, + Identifier = "PlutoShadow", + Parent = Pluto.Identifier, Renderable = { Type = "RenderableShadowCylinder", TerminatorType = "PENUMBRAL", @@ -226,12 +234,15 @@ local PlutoShadow = { BodyFrame = "IAU_PLUTO", Aberration = "NONE", }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Pluto Shadow", + Path = "/Solar System/Dwarf Planets/Pluto" + } } local PlutoTrailBarycentric = { - Name = "PlutoBarycentricTrail", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "PlutoBarycentricTrail", + Parent = transforms.PlutoBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -243,12 +254,15 @@ local PlutoTrailBarycentric = { Period = 6.38723, Resolution = 1000 }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Pluto Barycenteric Trail", + Path = "/Solar System/Dwarf Planets/Pluto" + } } local PlutoTrail = { - Name = "PlutoTrail", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "PlutoTrail", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Enabled = false, @@ -263,7 +277,10 @@ local PlutoTrail = { Period = 160 * 365.242, Resolution = 1000 }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Pluto Trail", + Path = "/Solar System/Dwarf Planets/Pluto" + } } diff --git a/data/assets/scene/solarsystem/missions/newhorizons/styx.asset b/data/assets/scene/solarsystem/missions/newhorizons/styx.asset index 4d29b3e179..56ed5b9c62 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/styx.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/styx.asset @@ -12,8 +12,8 @@ local textures = asset.syncedResource({ }) local Styx = { - Name = "Styx", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "Styx", + Parent = transforms.PlutoBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -33,12 +33,14 @@ local Styx = { }, ColorTexture = textures .. "/gray.jpg" }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Path = "/Solar System/Dwarf Planets/Pluto" + } } local StyxText = { - Name = "StyxText", - Parent = Styx.Name, + Identifier = "StyxText", + Parent = Styx.Identifier, Transform = { Translation = { Type = "StaticTranslation", @@ -53,12 +55,15 @@ local StyxText = { Texture = textures .. "/Styx-Text.png", BlendMode = "Additive" }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Styx Text", + Path = "/Solar System/Dwarf Planets/Pluto" + } } local StyxTrail = { - Name = "StyxTrail", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "StyxTrail", + Parent = transforms.PlutoBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -70,7 +75,10 @@ local StyxTrail = { Period = 20.16155, Resolution = 1000 }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Styx Trail", + Path = "/Solar System/Dwarf Planets/Pluto" + } } diff --git a/data/assets/scene/solarsystem/missions/newhorizons/trail.asset b/data/assets/scene/solarsystem/missions/newhorizons/trail.asset index e28ec88c72..a51e11f073 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/trail.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/trail.asset @@ -4,8 +4,8 @@ local transforms = asset.require('./transforms') local TrailAtPluto = { - Name = "NewHorizonsTrailPluto", - Parent = transforms.PlutoBarycenter.Name, + Identifier = "NewHorizonsTrailPluto", + Parent = transforms.PlutoBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -23,7 +23,10 @@ local TrailAtPluto = { EnableFade = false, Rendering = "Lines+Points" }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "New Horizons Trail Pluto", + Path = "/Solar System/Missions/New Horizons" + } } diff --git a/data/assets/scene/solarsystem/missions/newhorizons/transforms.asset b/data/assets/scene/solarsystem/missions/newhorizons/transforms.asset index bae78af35f..26c54961f6 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/transforms.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/transforms.asset @@ -5,8 +5,8 @@ local kernels = asset.require('./kernels') local PlutoBarycenter = { - Name = "PlutoBarycenter", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "PlutoBarycenter", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -15,12 +15,15 @@ local PlutoBarycenter = { Kernels = kernels.PlutoKernels }, }, - GuiPath = "/Solar System/Dwarf Planets/Pluto" + GUI = { + Name = "Pluto Barycenter", + Path = "/Solar System/Dwarf Planets/Pluto" + } } local NewHorizonsPosition = { - Name = "NewHorizonsPosition", - Parent = PlutoBarycenter.Name, + Identifier = "NewHorizonsPosition", + Parent = PlutoBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -34,7 +37,10 @@ local NewHorizonsPosition = { DestinationFrame = "GALACTIC" } }, - GuiPath = "/Solar System/Missions/New Horizons" + GUI = { + Name = "New Horizons Position", + Path = "/Solar System/Missions/New Horizons" + } } diff --git a/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset b/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset index ee833916e2..a935cc6fcf 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset @@ -22,10 +22,10 @@ local BENNU_BODY = "2101955" local Bennu = { - Name = "Bennu", - Parent = transforms.BennuBarycenter.Name, - Transform = -{ Rotation = { + Identifier = "Bennu", + Parent = transforms.BennuBarycenter.Identifier, + Transform = { + Rotation = { Type = "SpiceRotation", SourceFrame = "IAU_BENNU", DestinationFrame = "GALACTIC" @@ -84,12 +84,14 @@ local Bennu = { } } }, - GuiPath = "/Solar System/Asteroid" + GUI = { + Path = "/Solar System/Asteroid" + } } local BennuTrail = { - Name = "BennuTrail", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "BennuTrail", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -102,7 +104,10 @@ local BennuTrail = { EndTime = "2023 MAY 31 00:00:00.000", SampleInterval = 3600 }, - GuiPath = "/Solar System/Asteroid" + GUI = { + Name = "Bennu Trail", + Path = "/Solar System/Asteroid" + } } diff --git a/data/assets/scene/solarsystem/missions/osirisrex/model.asset b/data/assets/scene/solarsystem/missions/osirisrex/model.asset index b32b59482b..bc611bbf75 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/model.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/model.asset @@ -184,8 +184,8 @@ for i = 0, #CaseDependentKernels do end local OsirisRex = { - Name = "OsirisRex", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "OsirisRex", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -208,12 +208,15 @@ local OsirisRex = { }, ColorTexture = textures .. "/osirisTex.png" }, - GuiPath = "/Solar System/Missions/OSIRIS REx" + GUI = { + Name = "OSIRIS REx", + Path = "/Solar System/Missions/OSIRIS REx" + } } local PolyCam = { - Name = "ORX_OCAMS_POLYCAM", - Parent = OsirisRex.Name, + Identifier = "ORX_OCAMS_POLYCAM", + Parent = OsirisRex.Identifier, Transform = { Translation = { Type = "StaticTranslation", @@ -234,12 +237,15 @@ local PolyCam = { }, ColorTexture = textures .. "/osirisTex.png" }, - GuiPath = "/Solar System/Missions/OSIRIS REx" + GUI = { + Name = "OCAMS POLYCAM", + Path = "/Solar System/Missions/OSIRIS REx/Instruments" + } } local Rexis = { - Name = "ORX_REXIS", - Parent = OsirisRex.Name, + Identifier = "ORX_REXIS", + Parent = OsirisRex.Identifier, Renderable = { Type = "RenderableModel", Body = "OSIRIS-REX", @@ -260,12 +266,15 @@ local Rexis = { DestinationFrame = "ORX_SPACECRAFT" }, }, - GuiPath = "/Solar System/Missions/OSIRIS REx" + GUI = { + Name = "REXIS", + Path = "/Solar System/Missions/OSIRIS REx/Instruments" + } } local PolyCamFov = { - Name = "POLYCAM FOV", - Parent = PolyCam.Name, + Identifier = "POLYCAM FOV", + Parent = PolyCam.Identifier, Renderable = { Type = "RenderableFov", Body = "OSIRIS-REX", @@ -278,12 +287,15 @@ local PolyCamFov = { }, PotentialTargets = { BENNU_BODY } }, - GuiPath = "/Solar System/Missions/OSIRIS REx" + GUI = { + Name = "POLYCAM FOV", + Path = "/Solar System/Missions/OSIRIS REx/Instruments" + } } local RexisFov = { - Name = "REXIS FOV", - Parent = Rexis.Name, + Identifier = "REXIS FOV", + Parent = Rexis.Identifier, Renderable = { Type = "RenderableFov", Body = "OSIRIS-REX", @@ -299,7 +311,10 @@ local RexisFov = { [BENNU_BODY] = "IAU_BENNU" } }, - GuiPath = "/Solar System/Missions/OSIRIS REx" + GUI = { + Name = "REXIS FOV", + Path = "/Solar System/Missions/OSIRIS REx/Instruments" + } } diff --git a/data/assets/scene/solarsystem/missions/osirisrex/script_schedule.asset b/data/assets/scene/solarsystem/missions/osirisrex/script_schedule.asset index 147d918cfe..9c331e2000 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/script_schedule.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/script_schedule.asset @@ -14,5 +14,5 @@ end) asset.onDeinitialize(function () - openspace.scriptScheduler.clear() + openspace.scriptScheduler.clear() end) \ No newline at end of file diff --git a/data/assets/scene/solarsystem/missions/osirisrex/trail.asset b/data/assets/scene/solarsystem/missions/osirisrex/trail.asset index e1ca69219a..b156ee96c6 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/trail.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/trail.asset @@ -8,8 +8,8 @@ local earthTransforms = asset.require('scene/solarsystem/planets/earth/transform local BENNU_BODY = "2101955" local OsirisRexTrailEarth = { - Name = "OsirisRexTrailEarth", - Parent = earthTransforms.EarthIAU.Name, + Identifier = "OsirisRexTrailEarth", + Parent = earthTransforms.EarthIAU.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -23,12 +23,15 @@ local OsirisRexTrailEarth = { EndTime = "2016 SEP 9 00:05:00", SampleInterval = 60 }, - GuiPath = "/Solar System/Missions/OSIRIS REx" + GUI = { + Name = "OSIRIS REx Trail Earth", + Path = "/Solar System/Missions/OSIRIS REx" + } } local OsirisRexTrailSolarSystem = { - Name = "OsirisRexTrailSolarSystem", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "OsirisRexTrailSolarSystem", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -41,12 +44,15 @@ local OsirisRexTrailSolarSystem = { EndTime = "2023 SEP 24 12:00:00", SampleInterval = 3600 }, - GuiPath = "/Solar System/Missions/OSIRIS REx" + GUI = { + Name = "OSIRIS REx Trail Solar System", + Path = "/Solar System/Missions/OSIRIS REx" + } } local OsirisRexTrailBennu = { - Name = "OsirisRexTrailBennu", - Parent = transforms.BennuBarycenter.Name, + Identifier = "OsirisRexTrailBennu", + Parent = transforms.BennuBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -59,7 +65,10 @@ local OsirisRexTrailBennu = { EndTime = "2023 SEP 24 12:00:00", SampleInterval = 3600 }, - GuiPath = "/Solar System/Missions/OSIRIS REx" + GUI = { + Name = "OSIRIS REx Trail Bennu", + Path = "/Solar System/Missions/OSIRIS REx" + } } diff --git a/data/assets/scene/solarsystem/missions/osirisrex/transforms.asset b/data/assets/scene/solarsystem/missions/osirisrex/transforms.asset index 3fe681ae4d..e464ab5e20 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/transforms.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/transforms.asset @@ -6,14 +6,18 @@ local transforms = asset.require('scene/solarsystem/sun/transforms') local BENNU_BODY = "2101955" local BennuBarycenter = { - Name = "BennuBarycenter", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "BennuBarycenter", + Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", Target = BENNU_BODY, Observer = "SUN" } + }, + GUI = { + Name = "Bennu Barycenter", + Path = "/Solar System/Missions/OSIRIS REx" } } diff --git a/data/assets/scene/solarsystem/missions/rosetta/67p.asset b/data/assets/scene/solarsystem/missions/rosetta/67p.asset index 7ebb619172..65739cd7f0 100644 --- a/data/assets/scene/solarsystem/missions/rosetta/67p.asset +++ b/data/assets/scene/solarsystem/missions/rosetta/67p.asset @@ -32,8 +32,8 @@ local imagesTorrent = asset.syncedResource({ }) .. "/rosettaimages" local Barycenter = { - Name = "67PBarycenter", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "67PBarycenter", + Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -41,12 +41,15 @@ local Barycenter = { Observer = "SUN" } }, - GuiPath = "/Solar System/Comets/67P Churymov-Gerasimenko" + GUI = { + Name = "67P Barycenter", + Path = "/Solar System/Comets/67P Churymov-Gerasimenko" + } } local Comet67P = { - Name = "67P", - Parent = Barycenter.Name, + Identifier = "67P", + Parent = Barycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -108,12 +111,15 @@ local Comet67P = { BoundingSphereRadius = 5000.0 }, - GuiPath = "/Solar System/Comets/67P Churymov-Gerasimenko" + GUI = { + Name = "67P Churymov-Gerasimenko", + Path = "/Solar System/Comets/67P Churymov-Gerasimenko" + } } local Trail67P = { - Name = "67PTrail", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "67PTrail", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -126,7 +132,10 @@ local Trail67P = { EndTime = "2017 JAN 01 00:00:00.000", SampleInterval = 3600 }, - GuiPath = "/Solar System/Comets/67P Churymov-Gerasimenko" + GUI = { + Name = "67P Trail", + Path = "/Solar System/Comets/67P Churymov-Gerasimenko" + } } diff --git a/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset b/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset index 85a1d50498..1d61cf68bc 100644 --- a/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset +++ b/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset @@ -82,8 +82,8 @@ local RotationMatrix = { } local Rosetta = { - Name = "Rosetta", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Rosetta", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -97,12 +97,14 @@ local Rosetta = { DestinationFrame = "GALACTIC" } }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Path = "/Solar System/Missions/Rosetta" + } } local RosettaModel = { - Name = "RosettaModel", - Parent = Rosetta.Name, + Identifier = "RosettaModel", + Parent = Rosetta.Identifier, Transform = { Scale = { Type = "StaticScale", @@ -110,12 +112,15 @@ local RosettaModel = { Scale = 0.01 } }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Model", + Path = "/Solar System/Missions/Rosetta" + } } local RosettaBlackFoil = { - Name = "Rosetta_black_foil", - Parent = RosettaModel.Name, + Identifier = "Rosetta_black_foil", + Parent = RosettaModel.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -126,12 +131,15 @@ local RosettaBlackFoil = { ColorTexture = textures .. "/foil_silver_ramp.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Model Part Black Foil", + Path = "/Solar System/Missions/Rosetta" + } } local RosettaBlackParts = { - Name = "Rosetta_black_parts", - Parent = RosettaModel.Name, + Identifier = "Rosetta_black_parts", + Parent = RosettaModel.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -142,12 +150,15 @@ local RosettaBlackParts = { ColorTexture = textures .. "/foil_silver_ramp.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Model Part Black Parts", + Path = "/Solar System/Missions/Rosetta" + } } local RosettaDish = { - Name = "Rosetta_dish", - Parent = RosettaModel.Name, + Identifier = "Rosetta_dish", + Parent = RosettaModel.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -158,12 +169,15 @@ local RosettaDish = { ColorTexture = textures .. "/dish_AO.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Model Part Dish", + Path = "/Solar System/Missions/Rosetta" + } } local RosettaParts = { - Name = "Rosetta_parts", - Parent = RosettaModel.Name, + Identifier = "Rosetta_parts", + Parent = RosettaModel.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -174,12 +188,15 @@ local RosettaParts = { ColorTexture = textures .. "/parts2_AO.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Model Part Parts", + Path = "/Solar System/Missions/Rosetta" + } } local RosettaSilverFoil = { - Name = "Rosetta_silver_foil", - Parent = RosettaModel.Name, + Identifier = "Rosetta_silver_foil", + Parent = RosettaModel.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -190,12 +207,15 @@ local RosettaSilverFoil = { ColorTexture = textures .. "/foil_silver_ramp.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Model Part Silver Foil", + Path = "/Solar System/Missions/Rosetta" + } } local RosettaVents = { - Name = "Rosetta_vents", - Parent = RosettaModel.Name, + Identifier = "Rosetta_vents", + Parent = RosettaModel.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -206,12 +226,15 @@ local RosettaVents = { ColorTexture = textures .. "/tex_01.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Model Part Vents", + Path = "/Solar System/Missions/Rosetta" + } } local RosettaWingA = { - Name = "Rosetta_wing_a", - Parent = RosettaModel.Name, + Identifier = "Rosetta_wing_a", + Parent = RosettaModel.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -222,12 +245,15 @@ local RosettaWingA = { ColorTexture = textures .. "/tex_01.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Model Part Wing A", + Path = "/Solar System/Missions/Rosetta" + } } local RosettaWingB = { - Name = "Rosetta_wing_b", - Parent = RosettaModel.Name, + Identifier = "Rosetta_wing_b", + Parent = RosettaModel.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -238,12 +264,15 @@ local RosettaWingB = { ColorTexture = textures .. "/tex_01.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Model Part Wing B", + Path = "/Solar System/Missions/Rosetta" + } } local RosettaYellowFoil = { - Name = "Rosetta_yellow_foil", - Parent = RosettaModel.Name, + Identifier = "Rosetta_yellow_foil", + Parent = RosettaModel.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -254,12 +283,15 @@ local RosettaYellowFoil = { ColorTexture = textures .. "/foil_gold_ramp.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Model Part Yellow Foil", + Path = "/Solar System/Missions/Rosetta" + } } local Philae = { - Name = "Philae", - Parent = transforms.Barycenter.Name, + Identifier = "Philae", + Parent = transforms.Barycenter.Identifier, -- This should need a transform, but currently the model is intrinsically -- translated Transform = { @@ -280,12 +312,15 @@ local Philae = { Scale = 0.01 } }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Philae Model", + Path = "/Solar System/Missions/Rosetta" + } } local PhilaeFoil = { - Name = "Philae_foil", - Parent = Philae.Name, + Identifier = "Philae_foil", + Parent = Philae.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -296,12 +331,15 @@ local PhilaeFoil = { ColorTexture = textures .. "/foil_silver_ramp.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Philae Model Part Foil", + Path = "/Solar System/Missions/Rosetta" + } } local PhilaeLids = { - Name = "Philae_lids", - Parent = Philae.Name, + Identifier = "Philae_lids", + Parent = Philae.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -312,12 +350,15 @@ local PhilaeLids = { ColorTexture = textures .. "/parts2_AO.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Philae Model Part Lids", + Path = "/Solar System/Missions/Rosetta" + } } local PhilaeParts = { - Name = "Philae_parts", - Parent = Philae.Name, + Identifier = "Philae_parts", + Parent = Philae.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -328,12 +369,15 @@ local PhilaeParts = { ColorTexture = textures .. "/foil_silver_ramp.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Philae Model Part Parts", + Path = "/Solar System/Missions/Rosetta" + } } local PhilaeSolarPanels = { - Name = "Philae_solarp", - Parent = Philae.Name, + Identifier = "Philae_solarp", + Parent = Philae.Identifier, Renderable = { Type = "RenderableModel", Body = "ROSETTA", @@ -344,18 +388,23 @@ local PhilaeSolarPanels = { ColorTexture = textures .. "/tex_01.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Philae Model Parts Solar Panels", + Path = "/Solar System/Missions/Rosetta" + } } local NavCam = { - Name = "NAVCAM", - Parent = Rosetta.Name, - GuiPath = "/Solar System/Missions/Rosetta" + Identifier = "NAVCAM", + Parent = Rosetta.Identifier, + GUI = { + Path = "/Solar System/Missions/Rosetta/Instruments" + } } local NavCamFov = { - Name = "NAVCAM FOV", - Parent = NavCam.Name, + Identifier = "NAVCAM_FOV", + Parent = NavCam.Identifier, Renderable = { Type = "RenderableFov", Body = "ROSETTA", @@ -371,12 +420,15 @@ local NavCamFov = { ["CHURYUMOV-GERASIMENKO"] = "67P/C-G_CK" } }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "NAVCAM FOV", + Path = "/Solar System/Missions/Rosetta/Instruments" + } } local ImagePlane = { - Name = "ImagePlaneRosetta", - Parent = transforms.Comet67P.Name, + Identifier = "ImagePlaneRosetta", + Parent = transforms.Comet67P.Identifier, Renderable = { Type = "RenderablePlaneProjection", Frame = "67P/C-G_CK", @@ -386,12 +438,15 @@ local ImagePlane = { Moving = false, Texture = textures .. "/defaultProj.png" }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Image Plane", + Path = "/Solar System/Missions/Rosetta" + } } local RosettaCometTrail = { - Name = "RosettaCometTrail", - Parent = transforms.Barycenter.Name, + Identifier = "RosettaCometTrail", + Parent = transforms.Barycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -404,12 +459,15 @@ local RosettaCometTrail = { EndTime = "2016 SEP 30 12:00:00", SampleInterval = 3600 }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Rosetta Comet Trail", + Path = "/Solar System/Missions/Rosetta" + } } local PhilaeTrail = { - Name = "PhilaeTrail", - Parent = transforms.Barycenter.Name, + Identifier = "PhilaeTrail", + Parent = transforms.Barycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -422,7 +480,10 @@ local PhilaeTrail = { EndTime = "2014 NOV 12 17:00:00", SampleInterval = 2 }, - GuiPath = "/Solar System/Missions/Rosetta" + GUI = { + Name = "Philae Trail", + Path = "/Solar System/Missions/Rosetta" + } } diff --git a/data/assets/scene/solarsystem/missions/voyager/voyager1.asset b/data/assets/scene/solarsystem/missions/voyager/voyager1.asset index 0e72159101..5d8e2392c0 100644 --- a/data/assets/scene/solarsystem/missions/voyager/voyager1.asset +++ b/data/assets/scene/solarsystem/missions/voyager/voyager1.asset @@ -35,8 +35,8 @@ local RotationMatrix = { } local Voyager1 = { - Name = "Voyager 1", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_1", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -50,12 +50,15 @@ local Voyager1 = { DestinationFrame = "GALACTIC" } }, - GuiPath = "/Solar System/Missions/Voyager 1" + GUI = { + Name = "Voyager 1", + Path = "/Solar System/Missions/Voyager 1" + } } local Voyager1Main = { - Name = "Voyager 1 Main", - Parent = Voyager1.Name, + Identifier = "Voyager_1_Main", + Parent = Voyager1.Identifier, Renderable = { Type = "RenderableModel", Geometry = { @@ -65,12 +68,15 @@ local Voyager1Main = { ColorTexture = models .. "/voyager-main.jpg", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Voyager 1" + GUI = { + Name = "Voyager 1 Main", + Path = "/Solar System/Missions/Voyager 1" + } } local Voyager1Antenna = { - Name = "Voyager 1 Antanna", - Parent = Voyager1.Name, + Identifier = "Voyager_1_Antanna", + Parent = Voyager1.Identifier, Renderable = { Type = "RenderableModel", Geometry = { @@ -80,15 +86,18 @@ local Voyager1Antenna = { ColorTexture = models .. "/voyager-antenna.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Voyager 1" + GUI = { + Name = "Voyager 1 Antanna", + Path = "/Solar System/Missions/Voyager 1" + } } -- The trails are organized as follows. The cruise phases can be resolved in relatively -- low resolution since they are just straight lines -- The encounter phases should be much higher resolution or otherwise artifacts would appear local VoyagerTrailCruiseEarthJupiter = { - Name = "Voyager 1 Trail Cruise Earth-Jupiter", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_1_Trail_Cruise_Earth_Jupiter", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -102,12 +111,15 @@ local VoyagerTrailCruiseEarthJupiter = { EndTime = "1979 MAR 04", SampleInterval = 545 * 2 -- 545 is the number of days between the Start and End time }, - GuiPath = "/Solar System/Missions/Voyager 1" + GUI = { + Name = "Voyager 1 Trail Cruise Earth-Jupiter", + Path = "/Solar System/Missions/Voyager 1" + } } local VoyagerTrailEncounterJupiter = { - Name = "Voyager 1 Trail Encounter Jupiter", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_1_Trail_Encounter_Jupiter", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -122,12 +134,15 @@ local VoyagerTrailEncounterJupiter = { EndTime = "1979 MAR 09", SampleInterval = 100 }, - GuiPath = "/Solar System/Missions/Voyager 1" + GUI = { + Name = "Voyager 1 Trail Encounter Jupiter", + Path = "/Solar System/Missions/Voyager 1" + } } local VoyagerTrailCruiseJupiterSaturn = { - Name = "Voyager 1 Trail Cruise Jupiter-Saturn", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_1_Trail_Cruise_Jupiter_Saturn", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -142,12 +157,15 @@ local VoyagerTrailCruiseJupiterSaturn = { EndTime = "1980 NOV 11", SampleInterval = 618 * 2 -- 618 is the number of days between the Start and End time }, - GuiPath = "/Solar System/Missions/Voyager 1" + GUI = { + Name = "Voyager 1 Trail Cruise Jupiter-Saturn", + Path = "/Solar System/Missions/Voyager 1" + } } local VoyagerTrailEncounterSaturn = { - Name = "Voyager 1 Trail Encounter Saturn", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_1_Trail_Encounter_Saturn", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -162,12 +180,15 @@ local VoyagerTrailEncounterSaturn = { EndTime = "1980 NOV 16", SampleInterval = 100 }, - GuiPath = "/Solar System/Missions/Voyager 1" + GUI = { + Name = "Voyager 1 Trail Encounter Saturn", + Path = "/Solar System/Missions/Voyager 1" + } } local VoyagerTrailCruiseSaturnInf = { - Name = "Voyager 1 Trail Cruise Saturn-Inf", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_1_Trail_Cruise_Saturn_Inf", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -182,7 +203,10 @@ local VoyagerTrailCruiseSaturnInf = { EndTime = "2021 JAN 01", SampleInterval = 14656 * 2 -- 14656 is the number of days between the Start and End time }, - GuiPath = "/Solar System/Missions/Voyager 1" + GUI = { + Name = "Voyager 1 Trail Cruise Saturn-Inf", + Path = "/Solar System/Missions/Voyager 1" + } } diff --git a/data/assets/scene/solarsystem/missions/voyager/voyager2.asset b/data/assets/scene/solarsystem/missions/voyager/voyager2.asset index 7d8b94a965..192ed5b95a 100644 --- a/data/assets/scene/solarsystem/missions/voyager/voyager2.asset +++ b/data/assets/scene/solarsystem/missions/voyager/voyager2.asset @@ -37,8 +37,8 @@ local RotationMatrix = { } local Voyager2 = { - Name = "Voyager 2", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_2", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -52,12 +52,15 @@ local Voyager2 = { DestinationFrame = "GALACTIC" } }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2", + Path = "/Solar System/Missions/Voyager 2" + } } local Voyager2Main = { - Name = "Voyager 2 Main", - Parent = Voyager2.Name, + Identifier = "Voyager_2_Main", + Parent = Voyager2.Identifier, Renderable = { Type = "RenderableModel", Geometry = { @@ -67,12 +70,15 @@ local Voyager2Main = { ColorTexture = models .. "/voyager-main.jpg", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2 Main", + Path = "/Solar System/Missions/Voyager 2" + } } local Voyager2Antenna = { - Name = "Voyager 2 Antanna", - Parent = Voyager2.Name, + Identifier = "Voyager_2_Antanna", + Parent = Voyager2.Identifier, Renderable = { Type = "RenderableModel", Geometry = { @@ -82,15 +88,18 @@ local Voyager2Antenna = { ColorTexture = models .. "/voyager-antenna.png", ModelTransform = RotationMatrix }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2 Antanna", + Path = "/Solar System/Missions/Voyager 2" + } } -- The trails are organized as follows. The cruise phases can be resolved in relatively -- low resolution since they are just straight lines -- The encounter phases should be much higher resolution or otherwise artifacts would appear local VoyagerTrailCruiseEarthJupiter = { - Name = "Voyager 2 Trail Cruise Earth-Jupiter", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_2_Trail_Cruise_Earth_Jupiter", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -104,12 +113,15 @@ local VoyagerTrailCruiseEarthJupiter = { EndTime = "1979 JUL 06", SampleInterval = 669 * 2 -- 669 is the number of days between the Start and End time }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2 Trail Cruise Earth-Jupiter", + Path = "/Solar System/Missions/Voyager 2" + } } local VoyagerTrailEncounterJupiter = { - Name = "Voyager 2 Trail Encounter Jupiter", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_2_Trail_Encounter_Jupiter", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -124,12 +136,15 @@ local VoyagerTrailEncounterJupiter = { EndTime = "1979 JUL 15", SampleInterval = 100 }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2 Trail Encounter Jupiter", + Path = "/Solar System/Missions/Voyager 2" + } } local VoyagerTrailCruiseJupiterSaturn = { - Name = "Voyager 2 Trail Cruise Jupiter-Saturn", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_2_Trail_Cruise_Jupiter_Saturn", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -144,12 +159,15 @@ local VoyagerTrailCruiseJupiterSaturn = { EndTime = "1981 AUG 23", SampleInterval = 770 * 2 -- 770 is the number of days between the Start and End time }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2 Trail Cruise Jupiter-Saturn", + Path = "/Solar System/Missions/Voyager 2" + } } local VoyagerTrailEncounterSaturn = { - Name = "Voyager 2 Trail Encounter Saturn", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_2_Trail_Encounter_Saturn", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -164,12 +182,15 @@ local VoyagerTrailEncounterSaturn = { EndTime = "1981 AUG 30", SampleInterval = 100 }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2 Trail Encounter Saturn", + Path = "/Solar System/Missions/Voyager 2" + } } local VoyagerTrailSaturnUranus = { - Name = "Voyager 2 Trail Cruise Saturn-Uranus", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_2_Trail_Cruise_Saturn_Uranus", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -184,12 +205,15 @@ local VoyagerTrailSaturnUranus = { EndTime = "1986 JAN 22", SampleInterval = 1971 * 2 -- 1971 is the number of days between the Start and End time }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2 Trail Cruise Saturn-Uranus", + Path = "/Solar System/Missions/Voyager 2" + } } local VoyagerTrailEncounterUranus = { - Name = "Voyager 2 Trail Encounter Uranus", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_2_Trail_Encounter_Uranus", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -204,12 +228,15 @@ local VoyagerTrailEncounterUranus = { EndTime = "1986 JAN 27", SampleInterval = 100 }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2 Trail Encounter Uranus", + Path = "/Solar System/Missions/Voyager 2" + } } local VoyagerTrailCruiseUranusNeptune = { - Name = "Voyager 2 Trail Cruise Uranus-Neptune", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_2_Trail_Cruise_Uranus_Neptune", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -224,12 +251,15 @@ local VoyagerTrailCruiseUranusNeptune = { EndTime = "1989 AUG 24", SampleInterval = 1305 * 2 -- 1305 is the number of days between the Start and End time }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2 Trail Cruise Uranus-Neptune", + Path = "/Solar System/Missions/Voyager 2" + } } local VoyagerTrailEncounterNeptune = { - Name = "Voyager 2 Trail Encounter Neptune", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_2_Trail_Encounter_Neptune", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -244,12 +274,15 @@ local VoyagerTrailEncounterNeptune = { EndTime = "1989 AUG 26", SampleInterval = 100 }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2 Trail Encounter Neptune", + Path = "/Solar System/Missions/Voyager 2" + } } local VoyagerTrailCruiseNeptuneInf = { - Name = "Voyager 2 Trail Cruise Neptune-Inf", - Parent = sunTransforms.SolarSystemBarycenter.Name, + Identifier = "Voyager_2_Trail_Cruise_Neptune_Inf", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -264,7 +297,10 @@ local VoyagerTrailCruiseNeptuneInf = { EndTime = "2021 JAN 01", SampleInterval = 11451 * 2 -- 11451 is the number of days between the Start and End time }, - GuiPath = "/Solar System/Missions/Voyager 2" + GUI = { + Name = "Voyager 2 Trail Cruise Neptune-Inf", + Path = "/Solar System/Missions/Voyager 2" + } } diff --git a/data/assets/scene/solarsystem/planets/earth/atmosphere.asset b/data/assets/scene/solarsystem/planets/earth/atmosphere.asset index b13c8f677b..641e3a0759 100644 --- a/data/assets/scene/solarsystem/planets/earth/atmosphere.asset +++ b/data/assets/scene/solarsystem/planets/earth/atmosphere.asset @@ -6,28 +6,28 @@ local assetHelper = asset.require('util/asset_helper') -- local earthEllipsoid = { 6378137.0, 6378137.0, 6356752.314245 } local earthEllipsoid = { 6378137.0, 6378137.0, 6378137.0 } local Atmosphere = { - Name = "EarthAtmosphere", - Parent = transforms.Earth.Name, + Identifier = "EarthAtmosphere", + Parent = transforms.Earth.Identifier, Renderable = { Type = "RenderableAtmosphere", Atmosphere = { - -- Atmosphere radius in Km - AtmosphereRadius = 6447.0, - PlanetRadius = 6377.0, - PlanetAverageGroundReflectance = 0.1, - GroundRadianceEmittion = 0.6, - Rayleigh = { - Coefficients = { - -- Wavelengths are given in 10^-9m - Wavelengths = { 680, 550, 440 }, - -- Reflection coefficients are given in km^-1 - Scattering = { 5.8E-3, 13.5E-3, 33.1E-3 }, - -- In Rayleigh scattering, the coefficients of absorption and scattering are the same. + -- Atmosphere radius in Km + AtmosphereRadius = 6447.0, + PlanetRadius = 6377.0, + PlanetAverageGroundReflectance = 0.1, + GroundRadianceEmittion = 0.6, + Rayleigh = { + Coefficients = { + -- Wavelengths are given in 10^-9m + Wavelengths = { 680, 550, 440 }, + -- Reflection coefficients are given in km^-1 + Scattering = { 5.8E-3, 13.5E-3, 33.1E-3 }, + -- In Rayleigh scattering, the coefficients of absorption and scattering are the same. + }, + -- Thichkness of atmosphere if its density were uniform, in Km + H_R = 8.0 }, - -- Thichkness of atmosphere if its density were uniform, in Km - H_R = 8.0 - }, - --[[ + --[[ Ozone = { Coefficients = { -- Extinction coefficients @@ -93,7 +93,10 @@ local Atmosphere = { --Caster2 = { Name = "Independency Day Ship", Radius = 0.0, } } }, - GuiPath = "/Solar System/Planets/Earth" + GUI = { + Name = "Earth Atmosphere", + Path = "/Solar System/Planets/Earth" + } } diff --git a/data/assets/scene/solarsystem/planets/earth/earth.asset b/data/assets/scene/solarsystem/planets/earth/earth.asset index d7e8c4f6e3..5ed01f4bfd 100644 --- a/data/assets/scene/solarsystem/planets/earth/earth.asset +++ b/data/assets/scene/solarsystem/planets/earth/earth.asset @@ -10,21 +10,24 @@ local earthEllipsoid = { 6378137.0, 6378137.0, 6378137.0 } local mapServiceConfigsPath = asset.localResource("map_service_configs") local Earth = { - Name = "Earth", - Parent = transforms.EarthIAU.Name, + Identifier = "Earth", + Parent = transforms.EarthIAU.Identifier, Renderable = { Type = "RenderableGlobe", Radii = earthEllipsoid, SegmentsPerPatch = 64, + PerformShading = false, Layers = { ColorLayers = { { + Identifier = "ESRI_VIIRS_Combo", Name = "ESRI VIIRS Combo", Type = "ByLevelTileLayer", LevelTileProviders = { { MaxLevel = 4, TileProvider = { + Identifier = "Temporal_VIIRS_SNPP", Name = "Temporal VIIRS SNPP", Type = "TemporalTileLayer", FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( @@ -41,6 +44,7 @@ local Earth = { { MaxLevel = 22, TileProvider = { + Identifier = "ESRI_World_Imagery", Name = "ESRI World Imagery", FilePath = mapServiceConfigsPath .. "/ESRI/World_Imagery.wms", PadTiles = false @@ -50,20 +54,24 @@ local Earth = { Enabled = true, PadTiles = false, Fallback = { + Identifier = "Blue_Marble", Name = "Blue Marble", FilePath = texturesPath .. "/earth_bluemarble.jpg", Enabled = true } }, { + Identifier = "ESRI_World_Imagery", Name = "ESRI World Imagery", FilePath = mapServiceConfigsPath .. "/ESRI/World_Imagery.wms" }, { + Identifier = "ESRI_Imagery_World_2D", Name = "ESRI Imagery World 2D", FilePath = mapServiceConfigsPath .. "/ESRI/ESRI_Imagery_World_2D.wms" }, { + Identifier = "VIIRS_SNPP_Temporal", Name = "VIIRS SNPP (Temporal)", Type = "TemporalTileLayer", FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( @@ -76,6 +84,7 @@ local Earth = { ) }, { + Identifier = "Aqua_Modis_Temporal", Name = "Aqua Modis (Temporal)", Type = "TemporalTileLayer", FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( @@ -88,6 +97,7 @@ local Earth = { ) }, { + Identifier = "Terra_Modis_Temporal", Name = "Terra Modis (Temporal)", Type = "TemporalTileLayer", FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( @@ -100,11 +110,12 @@ local Earth = { ) }, { - Name = "BMNG", + Identifier = "BMNG", FilePath = mapServiceConfigsPath .. "/Utah/Bmng.wms" }, { - Name = "AMSR2_GCOM_W1_Sea_Ice_Concentration (Temporal)", + Identifier = "AMSR2_GCOM_W1_Sea_Ice_Concentration_Temporal", + Name = "AMSR2 GCOM W1 Sea Ice Concentration (Temporal)", Type = "TemporalTileLayer", FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( "AMSR2_Sea_Ice_Concentration_12km", @@ -116,7 +127,8 @@ local Earth = { ) }, { - Name = "MODIS_Terra_Chlorophyll_A (Temporal)", + Identifier = "MODIS_Terra_Chlorophyll_A_Temporal", + Name = "MODIS Terra Chlorophyll A (Temporal)", Type = "TemporalTileLayer", FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( "MODIS_Terra_Chlorophyll_A", @@ -128,7 +140,8 @@ local Earth = { ) }, { - Name = "GHRSST_L4_G1SST_Sea_Surface_Temperature (Temporal)", + Identifier = "GHRSST_L4_G1SST_Sea_Surface_Temperature_Temporal", + Name = "GHRSST L4 G1SST Sea Surface Temperature (Temporal)", Type = "TemporalTileLayer", FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( "GHRSST_L4_G1SST_Sea_Surface_Temperature", @@ -142,26 +155,19 @@ local Earth = { }, NightLayers = { { + Identifier = "Earth_at_Night_2012", Name = "Earth at Night 2012", FilePath = mapServiceConfigsPath .. "/GIBS/night/VIIRS_CityLights_2012.wms", Enabled = true, - Settings = { - Opacity = 1.0, - Gamma = 1.5, - Multiplier = 15.0 - }, Fallback = { + Identifier = "Earth_Night", Name = "Earth Night", FilePath = texturesPath .. "/earth_night.jpg", Enabled = true, - Settings = { - Opacity = 1.0, - Gamma = 1.5, - Multiplier = 15.0 - }, } }, { + Identifier = "Earth_at_Night_Temporal", Name = "Earth at Night (Temporal)", Type = "TemporalTileLayer", FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( @@ -176,33 +182,38 @@ local Earth = { }, WaterMasks = { { - Name = "MODIS_Water_Mask", + Identifier = "MODIS_Water_Mask", + Name = "MODIS Water Mask", FilePath = mapServiceConfigsPath .. "/GIBS/water/MODIS_Water_Mask.wms", Enabled = true }, { - Name = "GEBCO", + Identifier = "GEBCO", FilePath = mapServiceConfigsPath .. "/Utah/Gebco.wms" } }, Overlays = { { - Name = "Coastlines", + Identifier = "Coastlines", FilePath = mapServiceConfigsPath .. "/GIBS/overlays/Coastlines.wms" }, { - Name = "Reference_Features", + Identifier = "Reference_Features", + Name = "Reference Features", FilePath = mapServiceConfigsPath .. "/GIBS/overlays/Reference_Features.wms" }, { - Name = "Reference_Labels", + Identifier = "Reference_Labels", + Name = "Reference Labels", FilePath = mapServiceConfigsPath .. "/GIBS/overlays/Reference_Labels.wms" }, { + Identifier = "Tile_Indices", Name = "Tile Indices", Type = "TileIndexTileLayer" }, { + Identifier = "Size_Reference", Name = "Size Reference", Type = "SizeReferenceTileLayer", Radii = earthEllipsoid @@ -210,6 +221,7 @@ local Earth = { }, HeightLayers = { { + Identifier = "Terrain_tileset", Name = "Terrain tileset", FilePath = mapServiceConfigsPath .. "/ESRI/Terrain.wms", Enabled = true, @@ -224,7 +236,9 @@ local Earth = { } }, Tag = { "planet_solarSystem", "planet_terrestrial" }, - GuiPath = "/Solar System/Planets/Earth" + GUI = { + Path = "/Solar System/Planets/Earth" + } } diff --git a/data/assets/scene/solarsystem/planets/earth/markers.asset b/data/assets/scene/solarsystem/planets/earth/markers.asset index ffb25ffb8a..beeaa55e27 100644 --- a/data/assets/scene/solarsystem/planets/earth/markers.asset +++ b/data/assets/scene/solarsystem/planets/earth/markers.asset @@ -5,8 +5,8 @@ local texturesPath = asset.require('./earth_textures').TexturesPath local EarthMarker = { - Name = "EarthMarker", - Parent = transforms.EarthIAU.Name, + Identifier = "EarthMarker", + Parent = transforms.EarthIAU.Identifier, Renderable = { Type = "RenderablePlaneImageLocal", Enabled = false, @@ -16,7 +16,10 @@ local EarthMarker = { Texture = texturesPath .. "/marker.png", BlendMode = "Additive" }, - GuiPath = "/Solar System/Planets/Earth" + GUI = { + Name = "Earth Marker", + Path = "/Solar System/Planets/Earth" + } } diff --git a/data/assets/scene/solarsystem/planets/earth/moon/moon.asset b/data/assets/scene/solarsystem/planets/earth/moon/moon.asset index ed249c903c..44692f8ca3 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/moon.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/moon.asset @@ -10,8 +10,8 @@ asset.request('./trail') local mapServiceConfigs = asset.localResource("map_service_configs") local Moon = { - Name = "Moon", - Parent = transforms.EarthBarycenter.Name, + Identifier = "Moon", + Parent = transforms.EarthBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -32,28 +32,31 @@ local Moon = { ColorLayers = { -- Utah based servers { - Name = "ClemUvvis", + Identifier = "ClemUvvis", + Name = "Clem Uvvis", FilePath = mapServiceConfigs .. "/Utah/ClemUvvis.wms" }, { - Name = "Kaguya", + Identifier = "Kaguya", FilePath = mapServiceConfigs .. "/Utah/Kaguya.wms" }, { + Identifier = "WAC_Utah", Name = "WAC Utah", FilePath = mapServiceConfigs .. "/Utah/Wac.wms", Enabled = true }, -- LMMP based servers { - Name = "OnMoon", + Identifier = "OnMoon", FilePath = mapServiceConfigs .. "/OnMoonColor.wms" } }, HeightLayers = { -- Utah based servers { - Name = "LolaDem", + Identifier = "LolaDem", + Name = "WAC [Utah]", FilePath = mapServiceConfigs .. "/Utah/LolaDem.wms", Enabled = true, TilePixelSize = 64, @@ -72,7 +75,9 @@ local Moon = { } } }, - GuiPath = "/Solar System/Planets/Earth/Moon" + GUI = { + Path = "/Solar System/Planets/Earth/Moon" + } } diff --git a/data/assets/scene/solarsystem/planets/earth/moon/trail.asset b/data/assets/scene/solarsystem/planets/earth/moon/trail.asset index b82b2cb143..fe707fff53 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/trail.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/trail.asset @@ -5,8 +5,8 @@ asset.require('spice/base') local MoonTrail = { - Name = "MoonTrail", - Parent = transforms.EarthBarycenter.Name, + Identifier = "MoonTrail", + Parent = transforms.EarthBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -18,7 +18,10 @@ local MoonTrail = { Period = 27, Resolution = 1000 }, - GuiPath = "/Solar System/Planets/Earth/Moon" + GUI = { + Name = "Moon Trail", + Path = "/Solar System/Planets/Earth/Moon" + } } diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/amateur.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/amateur.asset new file mode 100644 index 0000000000..734a0c2a75 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/amateur.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Amateur Radio", + Url = "http://www.celestrak.com/NORAD/elements/amateur.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/experimental.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/experimental.asset new file mode 100644 index 0000000000..d914346b3e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/experimental.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Experimental", + Url = "http://www.celestrak.com/NORAD/elements/x-comm.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/geostationary.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/geostationary.asset new file mode 100644 index 0000000000..a4af6800e8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/geostationary.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Geostationary", + Url = "http://celestrak.com/NORAD/elements/geo.txt", + TrailColor = { 0.9, 0.9, 0.0 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/globalstar.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/globalstar.asset new file mode 100644 index 0000000000..743df69502 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/globalstar.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "GlobalStar", + Url = "http://www.celestrak.com/NORAD/elements/globalstar.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/gorizont.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/gorizont.asset new file mode 100644 index 0000000000..b3a28b5644 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/gorizont.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Gorizont", + Url = "http://www.celestrak.com/NORAD/elements/gorizont.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/intelsat.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/intelsat.asset new file mode 100644 index 0000000000..ff2ced1cee --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/intelsat.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Intelsat", + Url = "http://www.celestrak.com/NORAD/elements/intelsat.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium.asset new file mode 100644 index 0000000000..860fb7b4eb --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Iridium", + Url = "http://www.celestrak.com/NORAD/elements/iridium.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium_next.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium_next.asset new file mode 100644 index 0000000000..a58ef236a6 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium_next.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Iridium NEXT", + Url = "http://www.celestrak.com/NORAD/elements/iridium-NEXT.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/molniya.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/molniya.asset new file mode 100644 index 0000000000..57028fd4f0 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/molniya.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Molniya", + Url = "http://www.celestrak.com/NORAD/elements/molniya.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/orbcomm.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/orbcomm.asset new file mode 100644 index 0000000000..2897921252 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/orbcomm.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Orbcomm", + Url = "http://www.celestrak.com/NORAD/elements/orbcomm.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/other_comm.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/other_comm.asset new file mode 100644 index 0000000000..0968d8f30a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/other_comm.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Other comm", + Url = "http://www.celestrak.com/NORAD/elements/other-comm.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/raduga.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/raduga.asset new file mode 100644 index 0000000000..7133629c93 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/raduga.asset @@ -0,0 +1,24 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Raduga", + Url = "http://www.celestrak.com/NORAD/elements/raduga.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/ses.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/ses.asset new file mode 100644 index 0000000000..fc6e0461bb --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/ses.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "SES", + Url = "http://www.celestrak.com/NORAD/elements/ses.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_breezem.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_breezem.asset new file mode 100644 index 0000000000..755dbdc921 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_breezem.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Breeze-M Breakup", + Url = "http://www.celestrak.com/NORAD/elements/2012-044.txt", + TrailColor = { 0.25, 0.35, 0.45 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, true) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_fengyun.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_fengyun.asset new file mode 100644 index 0000000000..e7d80fa019 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_fengyun.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Fengyun Debris", + Url = "http://www.celestrak.com/NORAD/elements/1999-025.txt", + TrailColor = { 0.25, 0.35, 0.45 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, true) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_iridium33.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_iridium33.asset new file mode 100644 index 0000000000..603d15b12b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_iridium33.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Iridium 33 Debris", + Url = "http://www.celestrak.com/NORAD/elements/iridium-33-debris.txt", + TrailColor = { 0.25, 0.35, 0.45 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, true) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_kosmos2251.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_kosmos2251.asset new file mode 100644 index 0000000000..847047bf67 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_kosmos2251.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Kosmos 2251 Debris", + Url = "http://www.celestrak.com/NORAD/elements/cosmos-2251-debris.txt", + TrailColor = { 0.25, 0.35, 0.45 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, true) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/brightest.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/brightest.asset new file mode 100644 index 0000000000..dd3c90564d --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/brightest.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "100 Brightest", + Url = "http://www.celestrak.com/NORAD/elements/visual.txt", + TrailColor = { 0.55, 0.25, 0.65 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, true) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/cubesats.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/cubesats.asset new file mode 100644 index 0000000000..b780584955 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/cubesats.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "CubeSat", + Url = "http://www.celestrak.com/NORAD/elements/cubesat.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/military.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/military.asset new file mode 100644 index 0000000000..0b0f7f05ef --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/military.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Military", + Url = "http://www.celestrak.com/NORAD/elements/military.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/other.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/other.asset new file mode 100644 index 0000000000..8e66e3d36d --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/other.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Other", + Url = "http://www.celestrak.com/NORAD/elements/other.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/radar.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/radar.asset new file mode 100644 index 0000000000..bccc163bde --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/radar.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Radar Calibration", + Url = "http://www.celestrak.com/NORAD/elements/radar.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/spacestations.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/spacestations.asset new file mode 100644 index 0000000000..b16833dde5 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/spacestations.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "SpaceStations", + Url = "http://celestrak.com/NORAD/elements/stations.txt", + TrailColor = { 0.9, 0.0, 0.0 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/tle-new.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/tle-new.asset new file mode 100644 index 0000000000..79edd04285 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/tle-new.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Last 30 Days", + Url = "http://www.celestrak.com/NORAD/elements/tle-new.txt", + TrailColor = { 0.65, 0.25, 0.45 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/beidou.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/beidou.asset new file mode 100644 index 0000000000..194b84b0ce --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/beidou.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Beidou", + Url = "http://www.celestrak.com/NORAD/elements/beidou.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, true) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/galileo.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/galileo.asset new file mode 100644 index 0000000000..24296abcd6 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/galileo.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Galileo", + Url = "http://www.celestrak.com/NORAD/elements/galileo.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/glosnass.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/glosnass.asset new file mode 100644 index 0000000000..6442b71d53 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/glosnass.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Glosnass", + Url = "http://www.celestrak.com/NORAD/elements/glo-ops.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/gps.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/gps.asset new file mode 100644 index 0000000000..b58801b01c --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/gps.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "GPS", + Url = "http://celestrak.com/NORAD/elements/gps-ops.txt", + TrailColor = { 0.9, 0.5, 0.0 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/musson.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/musson.asset new file mode 100644 index 0000000000..1a279f5f78 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/musson.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Russian LEO Navigation", + Url = "http://www.celestrak.com/NORAD/elements/musson.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/nnss.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/nnss.asset new file mode 100644 index 0000000000..fa001847a2 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/nnss.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Navy Navigation Satellite System", + Url = "http://www.celestrak.com/NORAD/elements/nnss.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/sbas.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/sbas.asset new file mode 100644 index 0000000000..c7f7b6401d --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/sbas.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Satellite Based Augmentation System", + Url = "http://www.celestrak.com/NORAD/elements/sbas.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites.asset index 6b498b155a..44c81c4ef8 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites.asset @@ -1,179 +1 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') - --- Waiting for URL based download - ---[[ -DOWNLOAD = false - -function dirListing(dirname) - f = io.popen('ls ' .. dirname) - files = {} - for name in f:lines() do - table.insert(files, name) - end - return files -end - -function values(t) - local i = 0 - return function () i = i + 1; return t[i] end -end - -function trimString(s) - s = s:gsub("^%s*(.-)%s*$", "%1") - s = s:gsub("%s+", "_") - s = s:gsub("[%-()]", "") - return s -end - -function getPeriodFromFile(line2) - return tonumber(string.sub(line2, 53, 63)) -end - -function getNumLinesInFile(filename) - local ctr = 0 - for _ in io.lines(filename) do - ctr = ctr + 1 - end - return ctr -end - -function isEmpty(s) - return s == nil or s == '' -end - ---Check format of a set of 3 TLE file lines and return nonzero if there is a format error -function checkTleFileFormat(lineArr) - if isEmpty(lineArr[1]) or isEmpty(lineArr[2]) or isEmpty(lineArr[3]) then - return -1 - end - if string.sub(lineArr[2], 1, 2) ~= "1 " then - return -1 - end - if string.sub(lineArr[3], 1, 2) ~= "2 " then - return -1 - end - return 0 -end - - -function getSat(title, file, lineNum) - return { - Name = title, - Parent = "EarthInertial", - Renderable = { - Type = "RenderablePlaneImageLocal", - Size = 3e4, - Origin = "Center", - Body = "TLE", - Billboard = true, - Texture = "satB.png" - }, - Transform = { - Translation = { - Type = "TLETranslation", - Body = title, - Observer = "EarthInertial", - File = file, - LineNum = lineNum - }, - Scale = { - Type = "StaticScale", - Scale = 1, - } - }, - GuiPath = "/Solar System/Planets/Earth/Satellites" - } -end - -function getSatTrail(title, file, lineNum, per, color) - trailName = title .. "_trail" - - return { - Name = trailName, - Parent = "EarthInertial", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "TLETranslation", - Body = title, - Observer = "EarthInertial", - File = file, - LineNum = lineNum - }, - Color = color, - Period = per, - Resolution = 160 - }, - GuiPath = "/Solar System/Planets/Earth/Satellites" - } -end - -------------------------------------------------------------- ---Name, URL, and color scheme for each satellite group -satelliteGroups = { - { title = "GPS", - url = "http://celestrak.com/NORAD/elements/gps-ops.txt", - trailColor = {0.9, 0.5, 0.0} - }, - { title = "SpaceStations", - url = "http://celestrak.com/NORAD/elements/stations.txt", - trailColor = {0.9, 0.0, 0.0} - }, - { title = "Geostationary", - url = "http://celestrak.com/NORAD/elements/geo.txt", - trailColor = {0.9, 0.9, 0.0} - }, -} - -modElements = {} -fileErr = "" -for sOrbit in values(satelliteGroups) do - filename = sOrbit.url:match("([^/]+)$") - filenameSansExt = filename:gsub(filename:match "(%.%w+)$", "") - sOrbit.path = "satellites/tle/" .. filename - - if DOWNLOAD then - openspace.downloadFile(sOrbit.url, sOrbit.path) - end - sOrbit.path = "../" .. sOrbit.path - pathFromScenegraphParent = "./" .. sOrbit.path - - line = {} - myfile = io.open(sOrbit.path, "r") - lines = getNumLinesInFile(sOrbit.path) - --now loop through the tle file and get each set of 3 lines - if myfile then - for n=1,lines,3 do - line[1] = myfile:read('*l') --title line - line[2] = myfile:read('*l') - line[3] = myfile:read('*l') - if( checkTleFileFormat(line) == 0 ) then - title = trimString(line[1]) - per = getPeriodFromFile(line[3]) - per = 1.0 / per * 2 --trail for 2x a single revolution - table.insert(modElements, getSat(filenameSansExt .. "_" .. title, pathFromScenegraphParent, n)) - table.insert(modElements, getSatTrail(filenameSansExt .. "_" .. title, - pathFromScenegraphParent, n, per, sOrbit.trailColor)) - else - fileErr = " TLE file syntax error on line " .. n .. ": " .. sOrbit.path - break - end - end - else - fileErr = " File not found: " .. sOrbit.path - break - end -end -assert(fileErr == "", fileErr) - - -if (fileErr == "") then - return modElements -else - return "Invalid file: " .. fileErr -end - - -]] \ No newline at end of file +asset.request('./satellites_interesting') diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_all.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_all.asset new file mode 100644 index 0000000000..cb663ed946 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_all.asset @@ -0,0 +1,8 @@ +asset.request('./satellites_communications') +-- The debris contains a **lot** of nodes, so we disable it on default +-- asset.request('./satellites_debris') +asset.request('./satellites_interesting') +asset.request('./satellites_misc') +asset.request('./satellites_navigation') +asset.request('./satellites_science') +asset.request('./satellites_weather') diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_communications.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_communications.asset new file mode 100644 index 0000000000..78080e6557 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_communications.asset @@ -0,0 +1,13 @@ +asset.request('./communications/geostationary') +asset.request('./communications/intelsat') +asset.request('./communications/ses') +asset.request('./communications/iridium') +asset.request('./communications/iridium_next') +asset.request('./communications/orbcomm') +asset.request('./communications/globalstar') +asset.request('./communications/amateur') +asset.request('./communications/experimental') +asset.request('./communications/other_comm') +asset.request('./communications/gorizont') +asset.request('./communications/raduga') +asset.request('./communications/molniya') diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_debris.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_debris.asset new file mode 100644 index 0000000000..e4902c1725 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_debris.asset @@ -0,0 +1,4 @@ +asset.request('./debris/debris_breezem') +asset.request('./debris/debris_fengyun') +asset.request('./debris/debris_iridium33') +asset.request('./debris/debris_kosmos2251') diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_interesting.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_interesting.asset new file mode 100644 index 0000000000..230ded9c65 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_interesting.asset @@ -0,0 +1,5 @@ +asset.request('./misc/brightest') +asset.request('./communications/geostationary') +asset.request('./navigation/gps') +asset.request('./misc/spacestations') +asset.request('./misc/tle-new') diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_misc.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_misc.asset new file mode 100644 index 0000000000..117ad486e8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_misc.asset @@ -0,0 +1,4 @@ +asset.request('./misc/military') +asset.request('./misc/radar') +asset.request('./misc/cubesats') +asset.request('./misc/other') diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_navigation.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_navigation.asset new file mode 100644 index 0000000000..2707ea06b4 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_navigation.asset @@ -0,0 +1,7 @@ +asset.request('./navigation/beidou') +asset.request('./navigation/galileo') +asset.request('./navigation/glosnass') +asset.request('./navigation/gps') +asset.request('./navigation/musson') +asset.request('./navigation/nnss') +asset.request('./navigation/sbas') diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_science.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_science.asset new file mode 100644 index 0000000000..8e8d0a3e0f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_science.asset @@ -0,0 +1,4 @@ +asset.request('./science/spaceearth') +asset.request('./science/geodetic') +asset.request('./science/engineering') +asset.request('./science/education') diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_shared.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_shared.asset new file mode 100644 index 0000000000..7bd1566701 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_shared.asset @@ -0,0 +1,169 @@ +local transforms = asset.require('scene/solarsystem/planets/earth/transforms') + +local satImageFolder = asset.syncedResource({ + Name = "Satellite Image Files", + Type = "HttpSynchronization", + Identifier = "tle_satellites_images", + Version = 1 +}) + +function downloadTLEFile(sceneAsset, url, name) + local identifier = name + identifier = identifier:gsub(" ", "") + identifier = identifier:gsub("&", "") + identifier = identifier:gsub("-", "") + return sceneAsset.syncedResource({ + Name = "Satellite TLE Data (" .. name .. ")", + Type = "UrlSynchronization", + Identifier = "satellite_tle_data_" .. identifier, + Url = url + }) +end + +local addSatelliteGroupObjects = function(group, tleFolder, shouldAddDuplicates) + function numLinesInFile(filename) + local ctr = 0 + for _ in io.lines(filename) do ctr = ctr + 1 end + return ctr + end + + -- Check format of a set of 3 TLE file lines and return nonzero if there is a format error + function isValidTLEFileFormat(lineArr) + function isEmpty(s) return s == nil or s == '' end + + if isEmpty(lineArr[1]) or isEmpty(lineArr[2]) or isEmpty(lineArr[3]) then + return false + end + if string.sub(lineArr[2], 1, 2) ~= "1 " then + return false + end + if string.sub(lineArr[3], 1, 2) ~= "2 " then + return false + end + return true + end + + function getSat(title, file, lineNum, textureFile, group) + return { + Identifier = title, + Parent = transforms.EarthInertial.Identifier, + Renderable = { + Type = "RenderablePlaneImageLocal", + Enabled = false, + 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 + + + local filename = group.Url:match("([^/]+)$") + local filenameSansExt = filename:gsub(filename:match("(%.%w+)$"), "") + + local path = tleFolder .. "/" .. filename + local texture = satImageFolder .. "/" .. "satB.png" + + + local file = io.open(path, "r") + assert(file, "File not found: " .. path) + + local obj = {} + + --now loop through the tle file and get each set of 3 lines + for n = 1, numLinesInFile(path), 3 do + local line = { + file:read('*l'), --title line + file:read('*l'), + file:read('*l') + } + assert(isValidTLEFileFormat(line), "TLE file syntax error on line " .. n .. ": " .. path) + + -- Trim string + line[1] = line[1]:gsub("^%s*(.-)%s*$", "%1") + line[1] = line[1]:gsub("%s+", "_") + line[1] = line[1]:gsub("[%-()]", "") + local title = line[1] + + -- Get period from correct location of the string + local per = tonumber(string.sub(line[3], 53, 63)) + -- Trail for 2x a single revolution + per = 1.0 / per * 2.0 + + local satName = filenameSansExt .. "_" .. title + + local shouldAddNotes = true + if openspace.hasSceneGraphNode(satName) then + if shouldAddDuplicates then + local originalSatName = satName + local i = 1 + while openspace.hasSceneGraphNode(satName) do + satName = originalSatName .. "_" .. tostring(i) + i = i + 1 + end + else + shouldAddNotes = false + end + end + + if shouldAddNotes then + -- Register satellite object and trail + 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) + end + end + + return obj +end + +asset.export("satImageFolder", satImageFolder) +asset.export("downloadTLEFile", downloadTLEFile) +asset.export("addSatelliteGroupObjects", addSatelliteGroupObjects) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_weather.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_weather.asset new file mode 100644 index 0000000000..c464cb4a6f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_weather.asset @@ -0,0 +1,10 @@ +asset.request('./weather/argos') +asset.request('./weather/dmc') +asset.request('./weather/earth_resources') +asset.request('./weather/goes') +asset.request('./weather/noaa') +asset.request('./weather/planet') +asset.request('./weather/sarsat') +asset.request('./weather/spire') +asset.request('./weather/tdrss') +asset.request('./weather/weather') diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/science/education.asset b/data/assets/scene/solarsystem/planets/earth/satellites/science/education.asset new file mode 100644 index 0000000000..6d0cdee19a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/science/education.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Education", + Url = "http://www.celestrak.com/NORAD/elements/education.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/science/engineering.asset b/data/assets/scene/solarsystem/planets/earth/satellites/science/engineering.asset new file mode 100644 index 0000000000..d5c563a9c3 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/science/engineering.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Engineering", + Url = "http://www.celestrak.com/NORAD/elements/engineering.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/science/geodetic.asset b/data/assets/scene/solarsystem/planets/earth/satellites/science/geodetic.asset new file mode 100644 index 0000000000..4e4cd2a0d2 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/science/geodetic.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Geodect", + Url = "http://www.celestrak.com/NORAD/elements/geodetic.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/science/spaceearth.asset b/data/assets/scene/solarsystem/planets/earth/satellites/science/spaceearth.asset new file mode 100644 index 0000000000..454e5ac748 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/science/spaceearth.asset @@ -0,0 +1,22 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Space & Earth Science", + Url = "http://www.celestrak.com/NORAD/elements/science.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/argos.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/argos.asset new file mode 100644 index 0000000000..9920953d7b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/argos.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "ARGOS", + Url = "http://www.celestrak.com/NORAD/elements/argos.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/dmc.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/dmc.asset new file mode 100644 index 0000000000..31e8ff2724 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/dmc.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Disaster Monitoring", + Url = "http://www.celestrak.com/NORAD/elements/dmc.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/earth_resources.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/earth_resources.asset new file mode 100644 index 0000000000..6028cb5fc0 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/earth_resources.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Earth Resources", + Url = "http://www.celestrak.com/NORAD/elements/resource.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/goes.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/goes.asset new file mode 100644 index 0000000000..0f782c2750 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/goes.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "GOES", + Url = "http://www.celestrak.com/NORAD/elements/goes.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/noaa.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/noaa.asset new file mode 100644 index 0000000000..8c744a0b9c --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/noaa.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "NOAA", + Url = "http://www.celestrak.com/NORAD/elements/noaa.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/planet.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/planet.asset new file mode 100644 index 0000000000..3224c9b0e0 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/planet.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Planet", + Url = "http://www.celestrak.com/NORAD/elements/planet.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/sarsat.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/sarsat.asset new file mode 100644 index 0000000000..0b6399b9b7 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/sarsat.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Search & Rescue (SARSAT)", + Url = "http://www.celestrak.com/NORAD/elements/sarsat.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/spire.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/spire.asset new file mode 100644 index 0000000000..ed058860c3 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/spire.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Spire", + Url = "http://www.celestrak.com/NORAD/elements/spire.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/tdrss.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/tdrss.asset new file mode 100644 index 0000000000..6ccbeede95 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/tdrss.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Tracking and Data Relay Satellite System (TDRSS)", + Url = "http://www.celestrak.com/NORAD/elements/tdrss.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/weather.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/weather.asset new file mode 100644 index 0000000000..362798b181 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/weather.asset @@ -0,0 +1,23 @@ +local assetHelper = asset.require('util/asset_helper') +local shared = asset.require('../satellites_shared') + +local group = { + Title = "Weather", + Url = "http://www.celestrak.com/NORAD/elements/weather.txt", + TrailColor = { 0.75, 0.75, 0.35 } +} + +local tle = shared.downloadTLEFile(asset, group.Url, group.Title) + + +local objectNames = {} + +asset.onInitialize(function () + objectNames = shared.addSatelliteGroupObjects(group, tle, false) +end) + +asset.onDeinitialize(function () + for _, n in ipairs(objectNames) do + openspace.removeSceneGraphNode(n) + end +end) diff --git a/data/assets/scene/solarsystem/planets/earth/trail.asset b/data/assets/scene/solarsystem/planets/earth/trail.asset index 815ed7c019..7abe222003 100644 --- a/data/assets/scene/solarsystem/planets/earth/trail.asset +++ b/data/assets/scene/solarsystem/planets/earth/trail.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local EarthTrail = { - Name = "EarthTrail", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "EarthTrail", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -19,7 +19,10 @@ local EarthTrail = { Resolution = 1000, Tag = { "planetTrail_solarSystem", "planetTrail_terrestrial" } }, - GuiPath = "/Solar System/Planets/Earth" + GUI = { + Name = "Earth Trail", + Path = "/Solar System/Planets/Earth" + } } diff --git a/data/assets/scene/solarsystem/planets/earth/transforms.asset b/data/assets/scene/solarsystem/planets/earth/transforms.asset index 5630c9bbc2..e93c136f2b 100644 --- a/data/assets/scene/solarsystem/planets/earth/transforms.asset +++ b/data/assets/scene/solarsystem/planets/earth/transforms.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local EarthBarycenter = { - Name = "EarthBarycenter", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "EarthBarycenter", + Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -14,13 +14,17 @@ local EarthBarycenter = { Observer = "SUN" } }, - GuiPath = "/Solar System/Planets/Earth" + GUI = { + Name = "Earth Barycenter", + Path = "/Solar System/Planets/Earth", + Hidden = true + } } local EarthInertial = { -- The default reference frame for Earth-orbiting satellites - Name = "EarthInertial", - Parent = EarthBarycenter.Name, + Identifier = "EarthInertial", + Parent = EarthBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -28,12 +32,16 @@ local EarthInertial = { DestinationFrame = "GALACTIC", } }, - GuiPath = "/Solar System/Planets/Earth" + GUI = { + Name = "Earth Inertial", + Path = "/Solar System/Planets/Earth", + Hidden = true + } } local EarthIAU = { - Name = "EarthIAU", - Parent = EarthBarycenter.Name, + Identifier = "EarthIAU", + Parent = EarthBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -41,7 +49,11 @@ local EarthIAU = { DestinationFrame = "GALACTIC", } }, - GuiPath = "/Solar System/Planets/Earth" + GUI = { + Name = "Earth IAU", + Path = "/Solar System/Planets/Earth", + Hidden = true + } } diff --git a/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset b/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset index 4ed9c55f5c..6f1abe17c6 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset @@ -14,8 +14,8 @@ local textures = asset.syncedResource({ }) local Callisto = { - Name = "Callisto", - Parent = transforms.JupiterBarycenter.Name, + Identifier = "Callisto", + Parent = transforms.JupiterBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -37,7 +37,7 @@ local Callisto = { Layers = { ColorLayers = { { - Name = "Callisto Texture", + Identifier = "Texture", FilePath = textures .. "/callisto.jpg", Enabled = true } @@ -45,7 +45,9 @@ local Callisto = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_jupiter" }, - GuiPath = "/Solar System/Planets/Jupiter/Moons" + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset index 3f5232b41c..2c4f4e58a0 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset @@ -6,8 +6,8 @@ local kernels = asset.require('../jup310').Kernels local CallistoTrail = { - Name = "CallistoTrail", - Parent = transforms.JupiterBarycenter.Name, + Identifier = "CallistoTrail", + Parent = transforms.JupiterBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -21,7 +21,10 @@ local CallistoTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter" }, - GuiPath = "/Solar System/Planets/Jupiter/Moons" + GUI = { + Name = "Callisto Trail", + Path = "/Solar System/Planets/Jupiter/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset index 40711a8999..d37e1d2d3b 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset @@ -14,8 +14,8 @@ local textures = asset.syncedResource({ }) local Europa = { - Name = "Europa", - Parent = transforms.JupiterBarycenter.Name, + Identifier = "Europa", + Parent = transforms.JupiterBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -37,7 +37,7 @@ local Europa = { Layers = { ColorLayers = { { - Name = "Europa Texture", + Identifier = "Texture", FilePath = textures .. "/europa.jpg", Enabled = true } @@ -45,7 +45,9 @@ local Europa = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_jupiter" }, - GuiPath = "/Solar System/Planets/Jupiter/Moons" + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset index 451ef42937..9c450158f7 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset @@ -6,8 +6,8 @@ local kernels = asset.require('../jup310').Kernels local EuropaTrail = { - Name = "EuropaTrail", - Parent = transforms.JupiterBarycenter.Name, + Identifier = "EuropaTrail", + Parent = transforms.JupiterBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -21,7 +21,10 @@ local EuropaTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter" }, - GuiPath = "/Solar System/Planets/Jupiter/Moons" + GUI = { + Name = "Europa Trail", + Path = "/Solar System/Planets/Jupiter/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset b/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset index adce77b102..42efa8d7cb 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset @@ -14,8 +14,8 @@ local textures = asset.syncedResource({ }) local Ganymede = { - Name = "Ganymede", - Parent = transforms.JupiterBarycenter.Name, + Identifier = "Ganymede", + Parent = transforms.JupiterBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -37,7 +37,7 @@ local Ganymede = { Layers = { ColorLayers = { { - Name = "Ganymede Texture", + Identifier = "Texture", FilePath = textures .. "/ganymede.jpg", Enabled = true } @@ -45,7 +45,9 @@ local Ganymede = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_jupiter" }, - GuiPath = "/Solar System/Planets/Jupiter/Moons" + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset index c87ff052ee..580e1429f3 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset @@ -6,8 +6,8 @@ local kernels = asset.require('../jup310').Kernels local GanymedeTrail = { - Name = "GanymedeTrail", - Parent = transforms.JupiterBarycenter.Name, + Identifier = "GanymedeTrail", + Parent = transforms.JupiterBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -21,7 +21,10 @@ local GanymedeTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter" }, - GuiPath = "/Solar System/Planets/Jupiter/Moons" + GUI = { + Name = "Ganymede Trail", + Path = "/Solar System/Planets/Jupiter/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/jupiter/io/io.asset b/data/assets/scene/solarsystem/planets/jupiter/io/io.asset index c3c8fb7bb4..62d8309243 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/io/io.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/io/io.asset @@ -14,8 +14,8 @@ local textures = asset.syncedResource({ }) local Io = { - Name = "Io", - Parent = transforms.JupiterBarycenter.Name, + Identifier = "Io", + Parent = transforms.JupiterBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -37,7 +37,7 @@ local Io = { Layers = { ColorLayers = { { - Name = "Io Texture", + Identifier = "Texture", FilePath = textures .. "/io.jpg", Enabled = true } @@ -45,7 +45,9 @@ local Io = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_jupiter" }, - GuiPath = "/Solar System/Planets/Jupiter/Moons" + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset index 84ffaefd49..a971aaf806 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset @@ -6,8 +6,8 @@ local kernels = asset.require('../jup310').Kernels local IoTrail = { - Name = "IoTrail", - Parent = transforms.JupiterBarycenter.Name, + Identifier = "IoTrail", + Parent = transforms.JupiterBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -21,7 +21,10 @@ local IoTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter" }, - GuiPath = "/Solar System/Planets/Jupiter/Moons" + GUI = { + Name = "Io Trail", + Path = "/Solar System/Planets/Jupiter/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset b/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset index 1696493f42..9333c339c1 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Jupiter = { - Name = "Jupiter", - Parent = transforms.JupiterBarycenter.Name, + Identifier = "Jupiter", + Parent = transforms.JupiterBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -29,7 +29,7 @@ local Jupiter = { Layers = { ColorLayers = { { - Name = "Jupiter Texture", + Identifier = "Texture", FilePath = textures .. "/jupiter.jpg", Enabled = true } @@ -37,7 +37,9 @@ local Jupiter = { } }, Tag = { "planet_solarSystem", "planet_giants" }, - GuiPath = "/Solar System/Planets/Jupiter" + GUI = { + Path = "/Solar System/Planets/Jupiter" + } } diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/ananke_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/ananke_group.asset index 319a459950..dad2a58ad3 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/ananke_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/ananke_group.asset @@ -5,162 +5,186 @@ local kernels341 = asset.require('../jup341').Kernels -local parentName = transforms.JupiterBarycenter.Name +local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_ananke" } local trailColor = { 0.4, 0.3, 0.01 } local anankeGroup = { { - Name = "S/2010 J 2", + Identifier = "S2010J2", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "552", Radii = { 1000, 1000, 1000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Ananke Group", + GUI = { + Name = "S/2010 J 2", + Path = "/Solar System/Planets/Jupiter/Moons/Ananke Group" + }, TrailColor = trailColor, OrbitPeriod = 588.36, Kernels = kernels341 }, { - Name = "Thelxinoe", + Identifier = "Thelxinoe", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "THELXINOE", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Ananke Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Ananke Group" + }, TrailColor = trailColor, OrbitPeriod = 597.61, Kernels = kernels341 }, { - Name = "Euanthe", + Identifier = "Euanthe", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "EUANTHE", Radii = { 3000, 3000, 3000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Ananke Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Ananke Group" + }, TrailColor = trailColor, OrbitPeriod = 598.09, Kernels = kernels341 }, { - Name = "Iocaste", + Identifier = "Iocaste", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "IOCASTE", Radii = { 5000, 5000, 5000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Ananke Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Ananke Group" + }, TrailColor = trailColor, OrbitPeriod = 609.43, Kernels = kernels341 }, { - Name = "S/2003 J 16", + Identifier = "S2003J16", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "55068", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Ananke Group", + GUI = { + Name = "S/2003 J 16", + Path = "/Solar System/Planets/Jupiter/Moons/Ananke Group" + }, TrailColor = trailColor, OrbitPeriod = 610.36, Kernels = kernels341 }, { - Name = "Praxidike", + Identifier = "Praxidike", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PRAXIDIKE", Radii = { 7000, 7000, 7000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Ananke Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Ananke Group" + }, TrailColor = trailColor, OrbitPeriod = 613.90, Kernels = kernels341 }, { - Name = "Harpalyke", + Identifier = "Harpalyke", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "HARPALYKE", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Ananke Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Ananke Group" + }, TrailColor = trailColor, OrbitPeriod = 624.54, Kernels = kernels341 }, { - Name = "Mneme", + Identifier = "Mneme", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "MNEME", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Ananke Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Ananke Group" + }, TrailColor = trailColor, OrbitPeriod = 627.48, Kernels = kernels341 }, { - Name = "Hermippe", + Identifier = "Hermippe", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "HERMIPPE", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Ananke Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Ananke Group" + }, TrailColor = trailColor, OrbitPeriod = 629.81, Kernels = kernels341 }, { - Name = "Thyone", + Identifier = "Thyone", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "THYONE", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Ananke Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Ananke Group" + }, TrailColor = trailColor, OrbitPeriod = 639.80, Kernels = kernels341 }, { - Name = "Ananke", + Identifier = "Ananke", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ANANKE", Radii = { 28000, 28000, 28000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Ananke Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Ananke Group" + }, TrailColor = trailColor, OrbitPeriod = 640.38, Kernels = kernels341 diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/carme_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/carme_group.asset index ad9ffad04c..e84e241bf7 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/carme_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/carme_group.asset @@ -5,218 +5,250 @@ local kernels341 = asset.require('../jup341').Kernels -local parentName = transforms.JupiterBarycenter.Name +local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_carme" } local trailColor = { 0.4, 0.3, 0.01 } local carmeGroup = { { - Name = "Herse", + Identifier = "Herse", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "HERSE", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 672.75, Kernels = kernels341 }, { - Name = "Aitne", + Identifier = "Aitne", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "AITNE", Radii = { 3000, 3000, 3000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 679.64, Kernels = kernels341 }, { - Name = "Kale", + Identifier = "Kale", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "KALE", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 685.32, Kernels = kernels341 }, { - Name = "Taygete", + Identifier = "Taygete", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "TAYGETE", Radii = { 5000, 5000, 5000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 686.67, Kernels = kernels341 }, { - Name = "Chaldene", + Identifier = "Chaldene", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "CHALDENE", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 699.33, Kernels = kernels341 }, { - Name = "Erinome", + Identifier = "Erinome", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ERINOME", Radii = { 3000, 3000, 3000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 711.96, Kernels = kernels341 }, { - Name = "Kallichore", + Identifier = "Kallichore", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "KALLICHORE", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 717.81, Kernels = kernels341 }, { - Name = "Kalyke", + Identifier = "Kalyke", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "KALYKE", Radii = { 5000, 5000, 5000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 721.02, Kernels = kernels341 }, { - Name = "Pasithee", + Identifier = "Pasithee", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PASITHEE", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 726.93, Kernels = kernel341 }, { - Name = "S/2010 J 1", + Identifier = "S2010J1", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "551", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Name = "S/2010 J 1", + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 722.83, Kernels = kernels341 }, { - Name = "Eukelade", + Identifier = "Eukelade", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "EUKELADE", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 735.20, Kernels = kernels341 }, { - Name = "Arche", + Identifier = "Arche", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ARCHE", Radii = { 3000, 3000, 3000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 746.19, Kernels = kernels341 }, { - Name = "Isonoe", + Identifier = "Isonoe", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ISONOE", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 750.13, Kernels = kernels341 }, { - Name = "Carme", + Identifier = "Carme", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "CARME", Radii = { 46000, 46000, 46000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 763.95, Kernels = kernels341 }, { - Name = "S/2003 J 5", + Identifier = "S2003J5", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "557", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carme Group", + GUI = { + Name = "S/2003 J 5", + Path = "/Solar System/Planets/Jupiter/Moons/Carme Group" + }, TrailColor = trailColor, OrbitPeriod = 758.34, Kernels = kernels341 diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/carpo_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/carpo_group.asset index 5cf3db134d..0125e88f37 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/carpo_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/carpo_group.asset @@ -5,22 +5,24 @@ local kernels341 = asset.require('../jup341').Kernels -local parentName = transforms.JupiterBarycenter.Name +local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_carpo" } local trailColor = { 0.4, 0.3, 0.01 } local carpoGroup = { { - Name = "Carpo", + Identifier = "Carpo", Parent = { - Name = parentName, + Name = parentIdentifier, Spice = parentSpice }, Spice = "CARPO", Radii = { 3000, 3000, 3000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Carpo Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Carpo Group" + }, TrailColor = trailColor, OrbitPeriod = 458.62, Kernels = kernels341 diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/himalia_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/himalia_group.asset index 7c5956f6bb..11091923d4 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/himalia_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/himalia_group.asset @@ -5,79 +5,89 @@ local kernels341 = asset.require('../jup341').Kernels -local parentName = transforms.JupiterBarycenter.Name +local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_himalia" } local trailColor = { 0.4, 0.3, 0.01 } local himaliaGroup = { { - Name = "Leda", + Identifier = "Leda", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "LEDA", Radii = { 16000, 16000, 16000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Himalia Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Himalia Group" + }, TrailColor = trailColor, OrbitPeriod = 240.82, Kernels = kernels341 }, { - Name = "Himalia", + Identifier = "Himalia", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "HIMALIA", Radii = { 170000, 170000, 170000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Himalia Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Himalia Group" + }, TrailColor = trailColor, OrbitPeriod = 250.23, Kernels = kernels341 }, { - Name = "Lysithea", + Identifier = "Lysithea", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "LYSITHEA", Radii = { 36000, 36000, 36000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Himalia Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Himalia Group" + }, TrailColor = trailColor, OrbitPeriod = 259.89, Kernels = kernels341 }, { - Name = "Elara", + Identifier = "Elara", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ELARA", Radii = { 86000, 86000, 86000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Himalia Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Himalia Group" + }, TrailColor = trailColor, OrbitPeriod = 257.62, Kernels = kernels341 }, { - Name = "Dia", + Identifier = "Dia", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, - -- Spice = "DIA", -- The name is not correctly registered in the Spice kernel + -- Spice = "DIA", -- The Identifier is not correctly registered in the Spice kernel Spice = "553", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Himalia Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Himalia Group" + }, TrailColor = trailColor, OrbitPeriod = 287.93, Kernels = kernels341 diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/inner_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/inner_group.asset index dbe50113c7..fbc0a0713e 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/inner_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/inner_group.asset @@ -5,64 +5,72 @@ local kernels341 = asset.require('../jup341').Kernels -local parentName = transforms.JupiterBarycenter.Name +local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_inner" } local trailColor = { 0.4, 0.3, 0.01 } local innerMoons = { { - Name = "Metis", + Identifier = "Metis", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "METIS", Radii = { 60000, 40000, 34000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Inner Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Inner Group" + }, TrailColor = trailColor, OrbitPeriod = 0.117912037, Kernels = kernels341 }, { - Name = "Adrastea", + Identifier = "Adrastea", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ADRASTEA", Radii = { 20000, 16000, 14000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Inner Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Inner Group" + }, TrailColor = trailColor, OrbitPeriod = 0.2982638889, Kernels = kernels341 }, { - Name = "Amalthea", + Identifier = "Amalthea", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "AMALTHEA", Radii = { 250000, 146000, 128000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Inner Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Inner Group" + }, TrailColor = trailColor, OrbitPeriod = 0.4981828704, Kernels = kernels341 }, { - Name = "Thebe", + Identifier = "Thebe", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "THEBE", Radii = { 116000, 98000, 84000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Inner Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Inner Group" + }, TrailColor = trailColor, OrbitPeriod = 0.6745023148, Kernels = kernels341 diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/other_groups.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/other_groups.asset index 46233a059f..b03ce0909e 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/other_groups.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/other_groups.asset @@ -5,120 +5,144 @@ local kernels341 = asset.require('../jup341').Kernels -local parentName = transforms.JupiterBarycenter.Name +local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_other" } local trailColor = { 0.4, 0.3, 0.01 } local otherGroups = { { - Name = "S/2003 J 12", + Identifier = "S2003J12", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "55066", Radii = { 1000, 1000, 1000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Other Groups", + GUI = { + Name = "S/2003 J 12", + Path = "/Solar System/Planets/Jupiter/Moons/Other Groups" + }, TrailColor = trailColor, OrbitPeriod = 482.69, Kernels = kernels341 }, { - Name = "S/2003 J 3", + Identifier = "S/2003J3", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "55061", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Other Groups", + GUI = { + Name = "S/2003 J 3", + Path = "/Solar System/Planets/Jupiter/Moons/Other Groups" + }, TrailColor = trailColor, OrbitPeriod = 561.52, Kernels = kernels341 }, { - Name = "S/2011 J 1", + Identifier = "S2011J1", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "55074", Radii = { 1000, 1000, 1000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Other Groups", + GUI = { + Name = "S/2011 J 1", + Path = "/Solar System/Planets/Jupiter/Moons/Other Groups" + }, TrailColor = trailColor, OrbitPeriod = 582.22, Kernels = kernels341 }, { - Name = "S/2003 J 19", + Identifier = "S2003J19", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "55070", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Other Groups", + GUI = { + Name = "S/2003 J 19", + Path = "/Solar System/Planets/Jupiter/Moons/Other Groups" + }, TrailColor = trailColor, OrbitPeriod = 699.12, Kernels = kernels341 }, { - Name = "S/2003 J 10", + Identifier = "S2003J10", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "55065", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Other Groups", + GUI = { + Name = "S/2003 J 10", + Path = "/Solar System/Planets/Jupiter/Moons/Other Groups" + }, TrailColor = trailColor, OrbitPeriod = 700.13, Kernels = kernels341 }, { - Name = "S/2003 J 23", + Identifier = "S2003J23", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "55071", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Other Groups", + GUI = { + Name = "S/2003 J 23", + Path = "/Solar System/Planets/Jupiter/Moons/Other Groups" + }, TrailColor = trailColor, OrbitPeriod = 700.54, Kernels = kernels341 }, { - Name = "S/2003 J 9", + Identifier = "S2003J9", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "55064", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Other Groups", + GUI = { + Name = "S/2003 J 9", + Path = "/Solar System/Planets/Jupiter/Moons/Other Groups" + }, TrailColor = trailColor, OrbitPeriod = 752.84, Kernels = kernels341 }, { - Name = "S/2003 J 2", + Identifier = "S2003J2", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "55060", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Other Groups", + GUI = { + Name = "S/2003 J 2", + Path = "/Solar System/Planets/Jupiter/Moons/Other Groups" + }, TrailColor = trailColor, OrbitPeriod = 981.55, Kernels = kernels341 diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/pasiphae_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/pasiphae_group.asset index 8351b0c74e..ed922bbd00 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/pasiphae_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/pasiphae_group.asset @@ -5,289 +5,335 @@ local kernels341 = asset.require('../jup341').Kernels -local parentName = transforms.JupiterBarycenter.Name +local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_pasiphae" } local trailColor = { 0.4, 0.3, 0.01 } local pasiphaeGroup = { { - Name = "Euporie", + Identifier = "Euporie", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "EUPORIE", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 538.78, Kernels = kernels341 }, { - Name = "S/2003 J 18", + Identifier = "S2003J18", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "555", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Name = "S/2003 J 18", + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 587.38, Kernels = kernels341 }, { - Name = "Helike", + Identifier = "Helike", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "HELIKE", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 601.40, Kernels = kernels341 }, { - Name = "Orthosie", + Identifier = "Orthosie", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ORTHOSIE", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 602.62, Kernels = kernels341 }, { - Name = "S/2016 J 1", + Identifier = "S2016J1", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "554", Radii = { 3000, 3000, 3000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Name = "S/2016 J 1", + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 603.83, Kernels = kernels341 }, { - Name = "S/2003 J 15", + Identifier = "S2003J15", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "558", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Name = "S/2003 J 15", + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 699.68, Kernels = kernels341 }, { - Name = "Aoede", + Identifier = "Aoede", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "AOEDE", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 714.66, Kernels = kernels341 }, { - Name = "Callirrhoe", + Identifier = "Callirrhoe", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "CALLIRRHOE", Radii = { 9000, 9000, 9000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 727.11, Kernels = kernels341 }, { - Name = "Eurydome", + Identifier = "Eurydome", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "EURYDOME", Radii = { 3000, 3000, 3000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 723.36, Kernels = kernels341 }, { - Name = "Kore", + Identifier = "Kore", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "KORE", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 776.02, Kernels = kernels341 }, { - Name = "Cyllene", + Identifier = "Cyllene", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "CYLLENE", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 731.10, Kernels = kernels341 }, { - Name = "S/2011 J 2", + Identifier = "S2011J2", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "556", Radii = { 1000, 1000, 1000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Name = "S/2011 J 2", + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 731.32, Kernels = kernels341 }, { - Name = "S/2017 J 1", + Identifier = "S2017J1", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "559", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Name = "S/2017 J 1", + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 734.15, Kernels = kernels341 }, { - Name = "S/2003 J 4", + Identifier = "S2003J4", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "55062", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Name = "S/2003 J 4", + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 739.29, Kernels = kernels341 }, { - Name = "Pasiphae", + Identifier = "Pasiphae", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PASIPHAE", Radii = { 60000, 60000, 60000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 739.80, Kernels = kernels341 }, { - Name = "Hegemone", + Identifier = "Hegemone", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "HEGEMONE", Radii = { 3000, 3000, 3000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 745.50, Kernels = kernels341 }, { - Name = "Sinope", + Identifier = "Sinope", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "SINOPE", Radii = { 38000, 38000, 38000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 739.33, Kernels = kernels341 }, { - Name = "Sponde", + Identifier = "Sponde", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "SPONDE", Radii = { 2000, 2000, 2000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 771.60, Kernels = kernels341 }, { - Name = "Autonoe", + Identifier = "Autonoe", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "AUTONOE", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 772.17, Kernels = kernels341 }, { - Name = "Megaclite", + Identifier = "Megaclite", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, - -- sic: The name in the SPICE kernel is wrong + -- sic: The Identifier in the SPICE kernel is wrong Spice = "MAGACLITE", Radii = { 5000, 5000, 5000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Pasiphae Group" + }, TrailColor = trailColor, OrbitPeriod = 792.44, Kernels = kernels341 diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/themisto_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/themisto_group.asset index 346563b31a..d5d43ccaa3 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/themisto_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/themisto_group.asset @@ -5,22 +5,24 @@ local kernels341 = asset.require('../jup341').Kernels -local parentName = transforms.JupiterBarycenter.Name +local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_themisto" } local trailColor = { 0.4, 0.3, 0.01 } local themistoGroup = { { - Name = "Themisto", + Identifier = "Themisto", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "THEMISTO", Radii = { 8000, 8000, 8000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Jupiter/Moons/Themisto Group", + GUI = { + Path = "/Solar System/Planets/Jupiter/Moons/Themisto Group" + }, TrailColor = trailColor, OrbitPeriod = 129.87, Kernels = kernels341 diff --git a/data/assets/scene/solarsystem/planets/jupiter/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/trail.asset index ea66b8b6da..c78bce02ca 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/trail.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local JupiterTrail = { - Name = "JupiterTrail", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "JupiterTrail", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -19,7 +19,10 @@ local JupiterTrail = { Resolution = 1000 }, Tag = { "planetTrail_solarSystem", "planetTrail_giants" }, - GuiPath = "/Solar System/Planets/Jupiter" + GUI = { + Name = "Jupiter Trail", + Path = "/Solar System/Planets/Jupiter" + } } diff --git a/data/assets/scene/solarsystem/planets/jupiter/transforms.asset b/data/assets/scene/solarsystem/planets/jupiter/transforms.asset index b0cc9a23e0..851a2d5310 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/transforms.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/transforms.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local JupiterBarycenter = { - Name = "JupiterBarycenter", - Parent = sun_transforms_asset.SolarSystemBarycenter.Name, + Identifier = "JupiterBarycenter", + Parent = sun_transforms_asset.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -14,7 +14,11 @@ local JupiterBarycenter = { Observer = "SUN" } }, - GuiPath = "/Solar System/Planets/Jupiter" + GUI = { + Name = "Jupiter Barycenter", + Path = "/Solar System/Planets/Jupiter", + Hidden = true + } } diff --git a/data/assets/scene/solarsystem/planets/mars/atmosphere.asset b/data/assets/scene/solarsystem/planets/mars/atmosphere.asset index 663624aec6..2850e528ca 100644 --- a/data/assets/scene/solarsystem/planets/mars/atmosphere.asset +++ b/data/assets/scene/solarsystem/planets/mars/atmosphere.asset @@ -4,8 +4,8 @@ local assetHelper = asset.require('util/asset_helper') local Atmosphere = { - Name = "MarsAtmosphere", - Parent = transforms.Mars.Name, + Identifier = "MarsAtmosphere", + Parent = transforms.Mars.Identifier, Renderable = { Type = "RenderableAtmosphere", Atmosphere = { @@ -55,7 +55,10 @@ local Atmosphere = { } } }, - GuiPath = "/Solar System/Planets/Mars" + GUI = { + Name = "Mars Atmosphere", + Path = "/Solar System/Planets/Mars" + } } diff --git a/data/assets/scene/solarsystem/planets/mars/mars.asset b/data/assets/scene/solarsystem/planets/mars/mars.asset index 8f94b21e31..703eeff975 100644 --- a/data/assets/scene/solarsystem/planets/mars/mars.asset +++ b/data/assets/scene/solarsystem/planets/mars/mars.asset @@ -19,6 +19,7 @@ local mapServiceConfigs = asset.localResource("map_service_configs") local color_layers = { { + Identifier = "MOC_WA_AMNH_Color", Name = "MOC WA AMNH Color", FilePath = mapServiceConfigs .. "/Utah/Mars_Color.wms", Enabled = true, @@ -29,60 +30,73 @@ local color_layers = { } }, { + Identifier = "Viking_MDIM", Name = "Viking MDIM", FilePath = mapServiceConfigs .. "/MARS_Viking_MDIM21.wms" }, { + Identifier = "MOLA_Pseudo_Color", Name = "MOLA Pseudo Color", FilePath = mapServiceConfigs .. "/Utah/Mola_PseudoColor.wms" }, { + Identifier = "MOLA_HRSC", Name = "MOLA HRSC", FilePath = mapServiceConfigs .. "/Utah/Mola_HRSC.wms" }, { + Identifier = "Viking_MDIM_Utah", Name = "Viking MDIM [Utah]", FilePath = mapServiceConfigs .. "/Utah/Mdim.wms" }, { + Identifier = "Viking_MDIM_AWS", Name = "Viking MDIM [AWS]", FilePath = mapServiceConfigs .. "/AWS/Mdim.wms" }, { + Identifier = "MOLA_Pseudo_Color_AWS", Name = "MOLA Pseudo Color [AWS]", FilePath = mapServiceConfigs .. "/AWS/Mola_PseudoColor.wms" }, { + Identifier = "CTX_Mosaic_LiU", Name = "CTX Mosaic [LiU]", FilePath = mapServiceConfigs .. "/LiU/CTX.wms", BlendMode = "Color" }, { + Identifier = "CTX_Mosaic_Utah", Name = "CTX Mosaic [Utah]", FilePath = mapServiceConfigs .. "/Utah/CTX.wms", BlendMode = "Color" }, { + Identifier = "CTX_Mosaic_AWS", Name = "CTX Mosaic [AWS]", FilePath = mapServiceConfigs .. "/AWS/CTX.wms", BlendMode = "Color" }, { + Identifier = "Themis_IR_Day_Utah", Name = "Themis IR Day [Utah]", FilePath = mapServiceConfigs .. "/Utah/Themis_IR_Day.wms", BlendMode = "Color" }, { + Identifier = "Themis_IR_Night_Utah", Name = "Themis IR Night [Utah]", FilePath = mapServiceConfigs .. "/Utah/Themis_IR_Night.wms", BlendMode = "Color" }, { + Identifier = "Themis_IR_Day_AWS_", Name = "Themis IR Day [AWS]", FilePath = mapServiceConfigs .. "/AWS/Themis_IR_Day.wms", BlendMode = "Color" }, { + Identifier = "Themis_IR_Night_AWS", Name = "Themis IR Night [AWS]", FilePath = mapServiceConfigs .. "/AWS/Themis_IR_Night.wms", BlendMode = "Color" @@ -91,34 +105,39 @@ local color_layers = { local overlay_layers = { { - Type = "TileIndexTileLayer", - Name = "Indices" + Identifier = "Indices", + Type = "TileIndexTileLayer" }, { - Type = "SizeReferenceTileLayer", + Identifier = "Size_Reference", Name = "Size Reference", + Type = "SizeReferenceTileLayer", Radii = marsRadii } } local height_layers = { { + Identifier = "Mola", Name = "Mola Elevation", FilePath = mapServiceConfigs .. "/Mars_MGS_MOLA_DEM.wms", TilePixelSize = 90 }, { + Identifier = "Mola_Europe", Name = "Mola Elevation [Europe]", FilePath = mapServiceConfigs .. "/LiU/Mola_Elevation.wms", Enabled = true, TilePixelSize = 90 }, { + Identifier = "Mola_Utah", Name = "Mola Elevation [Utah]", FilePath = mapServiceConfigs .. "/Utah/Mola_Elevation.wms", TilePixelSize = 90 }, { + Identifier = "Mola_AWS", Name = "Mola Elevation [AWS]", FilePath = mapServiceConfigs .. "/AWS/Mola_Elevation.wms", TilePixelSize = 90 @@ -126,8 +145,8 @@ local height_layers = { } local Mars = { - Name = "Mars", - Parent = transforms.MarsBarycenter.Name, + Identifier = "Mars", + Parent = transforms.MarsBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -146,7 +165,9 @@ local Mars = { } }, Tag = { "planet_solarSystem", "planet_terrestrial" }, - GuiPath = "/Solar System/Planets/Mars" + GUI = { + Path = "/Solar System/Planets/Mars" + } } diff --git a/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset b/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset index ec9951ba39..c880bf8b08 100644 --- a/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset +++ b/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset @@ -12,8 +12,8 @@ local kernels = asset.require('../mar097').Kernels local Deimos = { - Name = "Deimos", - Parent = transforms.MarsBarycenter.Name, + Identifier = "Deimos", + Parent = transforms.MarsBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -36,12 +36,14 @@ local Deimos = { } }, Tag = { "moon_solarSystem", "moon_terrestrial", "moon_mars" }, - GuiPath = "/Solar System/Planets/Mars" + GUI = { + Path = "/Solar System/Planets/Mars" + } } local DeimosTrail = { - Name = "DeimosTrail", - Parent = transforms.MarsBarycenter.Name, + Identifier = "DeimosTrail", + Parent = transforms.MarsBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -54,7 +56,10 @@ local DeimosTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_terrestrial", "moonTrail_mars" }, - GuiPath = "/Solar System/Planets/Mars" + GUI = { + Name = "Deimos Trail", + Path = "/Solar System/Planets/Mars" + } } diff --git a/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset b/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset index 3e0bbce206..ff97e74ce2 100644 --- a/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset +++ b/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset @@ -12,8 +12,8 @@ local kernels = asset.require('../mar097').Kernels local Phobos = { - Name = "Phobos", - Parent = transforms.MarsBarycenter.Name, + Identifier = "Phobos", + Parent = transforms.MarsBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -36,12 +36,14 @@ local Phobos = { } }, Tag = { "moon_solarSystem", "moon_terrestrial", "moon_mars" }, - GuiPath = "/Solar System/Planets/Mars" + GUI = { + Path = "/Solar System/Planets/Mars" + } } local PhobosTrail = { - Name = "PhobosTrail", - Parent = transforms.MarsBarycenter.Name, + Identifier = "PhobosTrail", + Parent = transforms.MarsBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -54,7 +56,10 @@ local PhobosTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_terrestrial", "moonTrail_mars" }, - GuiPath = "/Solar System/Planets/Mars" + GUI = { + Name = "Phobos Trail", + Path = "/Solar System/Planets/Mars" + } } diff --git a/data/assets/scene/solarsystem/planets/mars/trail.asset b/data/assets/scene/solarsystem/planets/mars/trail.asset index 30746e230f..19e201a8af 100644 --- a/data/assets/scene/solarsystem/planets/mars/trail.asset +++ b/data/assets/scene/solarsystem/planets/mars/trail.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local MarsTrail = { - Name = "MarsTrail", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "MarsTrail", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -19,7 +19,10 @@ local MarsTrail = { Resolution = 1000 }, Tag = { "planetTrail_solarSystem", "planetTrail_terrestrial" }, - GuiPath = "/Solar System/Planets/Mars" + GUI = { + Name = "Mars Trail", + Path = "/Solar System/Planets/Mars" + } } diff --git a/data/assets/scene/solarsystem/planets/mars/transforms.asset b/data/assets/scene/solarsystem/planets/mars/transforms.asset index deab65360a..c953e89c69 100644 --- a/data/assets/scene/solarsystem/planets/mars/transforms.asset +++ b/data/assets/scene/solarsystem/planets/mars/transforms.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local MarsBarycenter = { - Name = "MarsBarycenter", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "MarsBarycenter", + Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -14,7 +14,11 @@ local MarsBarycenter = { Observer = "SUN" } }, - GuiPath = "/Solar System/Planets/Mars" + GUI = { + Name = "Mars Barycenter", + Path = "/Solar System/Planets/Mars", + Hidden = true + } } diff --git a/data/assets/scene/solarsystem/planets/mercury/mercury.asset b/data/assets/scene/solarsystem/planets/mercury/mercury.asset index 1b88fb68f3..e4a50c6964 100644 --- a/data/assets/scene/solarsystem/planets/mercury/mercury.asset +++ b/data/assets/scene/solarsystem/planets/mercury/mercury.asset @@ -10,28 +10,32 @@ local mapServiceConfigs = asset.localResource("map_service_configs") local color_layers = { -- Utah based servers { + Identifier = "Messenger_MDIS_Utah", Name = "Messenger MDIS [Utah]", FilePath = mapServiceConfigs .. "/Utah/MessengerMDIS.wms", Enabled = true }, { + Identifier = "Messenger_Mosaic_Utah", Name = "Messenger Mosaic [Utah]", FilePath = mapServiceConfigs .. "/Utah/MessengerMosaic.wms" }, -- AWS based servers { + Identifier = "Messenger_MDIS_AWS", Name = "Messenger MDIS [AWS]", FilePath = mapServiceConfigs .. "/AWS/MessengerMdis.wms" }, { + Identifier = "Messenger_Mosaic_AWS", Name = "Messenger Mosaic [AWS]", FilePath = mapServiceConfigs .. "/AWS/MessengerMosaic.wms" } } local Mercury = { - Name = "Mercury", - Parent = transforms.MercuryBarycenter.Name, + Identifier = "Mercury", + Parent = transforms.MercuryBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -51,7 +55,9 @@ local Mercury = { } }, Tag = { "planet_solarSystem", "planet_terrestrial" }, - GuiPath = "/Solar System/Planets/Mercury" + GUI = { + Path = "/Solar System/Planets/Mercury" + } } diff --git a/data/assets/scene/solarsystem/planets/mercury/trail.asset b/data/assets/scene/solarsystem/planets/mercury/trail.asset index 6adf1f2679..1a7f9c1195 100644 --- a/data/assets/scene/solarsystem/planets/mercury/trail.asset +++ b/data/assets/scene/solarsystem/planets/mercury/trail.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local MercuryTrail = { - Name = "MercuryTrail", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "MercuryTrail", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -19,7 +19,10 @@ local MercuryTrail = { Resolution = 100 }, Tag = { "planetTrail_solarSystem", "planetTrail_terrestrial" }, - GuiPath = "/Solar System/Planets/Mercury" + GUI = { + Name = "Mercury Trail", + Path = "/Solar System/Planets/Mercury" + } } diff --git a/data/assets/scene/solarsystem/planets/mercury/transforms.asset b/data/assets/scene/solarsystem/planets/mercury/transforms.asset index 4365925fcd..bef198f85d 100644 --- a/data/assets/scene/solarsystem/planets/mercury/transforms.asset +++ b/data/assets/scene/solarsystem/planets/mercury/transforms.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local MercuryBarycenter = { - Name = "MercuryBarycenter", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "MercuryBarycenter", + Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -14,7 +14,11 @@ local MercuryBarycenter = { Observer = "SUN" } }, - GuiPath = "/Solar System/Planets/Mercury" + GUI = { + Name = "Mercury Barycenter", + Path = "/Solar System/Planets/Mercury", + Hidden = true + } } diff --git a/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset b/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset index 522b56ebb8..f767bc9cbc 100644 --- a/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset @@ -7,106 +7,121 @@ local kernels088 = asset.require('./nep088').Kernels -local parentName = transforms.NeptuneBarycenter.Name +local parentIdentifier = transforms.NeptuneBarycenter.Identifier local parentSpice = "NEPTUNE BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_inner" } local trailColor = { 0.2, 0.5, 0.75 } local innerMoons = { { - Name = "Naiad", + Identifier = "Naiad", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "NAIAD", Radii = { 96000, 60000, 52000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.294, Kernels = kernels088 }, { - Name = "Thalassa", + Identifier = "Thalassa", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "THALASSA", Radii = { 108000, 100000, 52000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.311, Kernels = kernels088 }, { - Name = "Despina", + Identifier = "Despina", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "DESPINA", Radii = { 180000, 148000, 128000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.335, Kernels = kernels088 }, { - Name = "Galatea", + Identifier = "Galatea", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "GALATEA", Radii = { 204000, 184000, 144000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.429, Kernels = kernels088 }, { - Name = "Larissa", + Identifier = "Larissa", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "LARISSA", Radii = { 216000, 204000, 168000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.555, Kernels = kernels088 }, { - Name = "S/2004 N 1", + Identifier = "S2004N1", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "814", Radii = { 16000, 16000, 16000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Inner Moons", + GUI = { + Name = "S/2004 N 1", + Path = "/Solar System/Planets/Neptune/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.936, Kernels = kernels088 }, { - Name = "Proteus", + Identifier = "Proteus", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PROTEUS", Radii = { 436000, 416000, 402000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 1.122, Kernels = kernels081 diff --git a/data/assets/scene/solarsystem/planets/neptune/irregular_prograde_moons.asset b/data/assets/scene/solarsystem/planets/neptune/irregular_prograde_moons.asset index 80cf5b6f64..41b2868905 100644 --- a/data/assets/scene/solarsystem/planets/neptune/irregular_prograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/irregular_prograde_moons.asset @@ -7,50 +7,56 @@ local kernels088 = asset.require('./nep088').Kernels -local parentName = transforms.NeptuneBarycenter.Name +local parentIdentifier = transforms.NeptuneBarycenter.Identifier local parentSpice = "NEPTUNE BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_irregular_prograde" } local trailColor = { 0.2, 0.5, 0.75 } local irregularProgradeMoons = { { - Name = "Halimede", + Identifier = "Halimede", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "HALIMEDE", Radii = { 62000, 62000, 62000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Irregular Prograde Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Irregular Prograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 1879.08, Kernels = kernels086 }, { - Name = "Psamathe", + Identifier = "Psamathe", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PSAMATHE", Radii = { 40000, 40000, 40000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Irregular Prograde Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Irregular Prograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 9074.3, Kernels = kernels086 }, { - Name = "Neso", + Identifier = "Neso", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "NESO", Radii = { 60000, 60000, 60000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Irregular Prograde Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Irregular Prograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 9740.73, Kernels = kernels086 diff --git a/data/assets/scene/solarsystem/planets/neptune/irregular_retrograde_moons.asset b/data/assets/scene/solarsystem/planets/neptune/irregular_retrograde_moons.asset index dc0343273d..d07e7e26c3 100644 --- a/data/assets/scene/solarsystem/planets/neptune/irregular_retrograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/irregular_retrograde_moons.asset @@ -7,50 +7,56 @@ local kernels088 = asset.require('./nep088').Kernels -local parentName = transforms.NeptuneBarycenter.Name +local parentIdentifier = transforms.NeptuneBarycenter.Identifier local parentSpice = "NEPTUNE BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_irregular_retrograde" } local trailColor = { 0.2, 0.5, 0.75 } local irregularRetrogradeMoons = { { - Name = "Nereid", + Identifier = "Nereid", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "NEREID", Radii = { 340000, 340000, 340000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Irregular Retrograde Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Irregular Retrograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 360.13, Kernels = kernels081 }, { - Name = "Sao", + Identifier = "Sao", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "SAO", Radii = { 44000, 44000, 44000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Irregular Retrograde Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Irregular Retrograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 2912.72, Kernels = kernels086 }, { - Name = "Laomedeia", + Identifier = "Laomedeia", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "LAOMEDEIA", Radii = { 42000, 42000, 42000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Neptune/Moons/Irregular Retrograde Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Irregular Retrograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 3171.33, Kernels = kernels086 diff --git a/data/assets/scene/solarsystem/planets/neptune/neptune.asset b/data/assets/scene/solarsystem/planets/neptune/neptune.asset index 79ebb44214..4cd35f22a6 100644 --- a/data/assets/scene/solarsystem/planets/neptune/neptune.asset +++ b/data/assets/scene/solarsystem/planets/neptune/neptune.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Neptune = { - Name = "Neptune", - Parent = transforms.NeptuneBarycenter.Name, + Identifier = "Neptune", + Parent = transforms.NeptuneBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -29,7 +29,7 @@ local Neptune = { Layers = { ColorLayers = { { - Name = "Texture", + Identifier = "Texture", FilePath = textures .. "/neptune.jpg", Enabled = true } @@ -37,7 +37,9 @@ local Neptune = { } }, Tag = { "planet_solarSystem", "planet_giants" }, - GuiPath = "/Solar System/Planets/Neptune" + GUI = { + Path = "/Solar System/Planets/Neptune" + } } diff --git a/data/assets/scene/solarsystem/planets/neptune/trail.asset b/data/assets/scene/solarsystem/planets/neptune/trail.asset index 3d93d39c66..c1647a47da 100644 --- a/data/assets/scene/solarsystem/planets/neptune/trail.asset +++ b/data/assets/scene/solarsystem/planets/neptune/trail.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local NeptuneTrail = { - Name = "NeptuneTrail", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "NeptuneTrail", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -30,7 +30,10 @@ local NeptuneTrail = { Resolution = 1000 }, Tag = { "planetTrail_solarSystem", "planetTrail_giants" }, - GuiPath = "/Solar System/Planets/Neptune" + GUI = { + Name = "Neptune Trail", + Path = "/Solar System/Planets/Neptune" + } } diff --git a/data/assets/scene/solarsystem/planets/neptune/transforms.asset b/data/assets/scene/solarsystem/planets/neptune/transforms.asset index 7f3e6f58d3..c9671ca5b0 100644 --- a/data/assets/scene/solarsystem/planets/neptune/transforms.asset +++ b/data/assets/scene/solarsystem/planets/neptune/transforms.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local NeptuneBarycenter = { - Name = "NeptuneBarycenter", - Parent = sun_transforms_asset.SolarSystemBarycenter.Name, + Identifier = "NeptuneBarycenter", + Parent = sun_transforms_asset.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -14,7 +14,11 @@ local NeptuneBarycenter = { Observer = "SUN" } }, - GuiPath = "/Solar System/Planets/Neptune" + GUI = { + Name = "Neptune Barycenter", + Path = "/Solar System/Planets/Neptune", + Hidden = true + } } diff --git a/data/assets/scene/solarsystem/planets/neptune/triton.asset b/data/assets/scene/solarsystem/planets/neptune/triton.asset index d60d52dd16..92a57ab4cc 100644 --- a/data/assets/scene/solarsystem/planets/neptune/triton.asset +++ b/data/assets/scene/solarsystem/planets/neptune/triton.asset @@ -6,15 +6,17 @@ local kernels081 = asset.require('./nep081').Kernels local Triton = { - Name = "Triton", + Identifier = "Triton", Parent = { - Name = transforms.NeptuneBarycenter.Name, + Identifier = transforms.NeptuneBarycenter.Identifier, Spice = "NEPTUNE BARYCENTER" }, Spice = "TRITON", Radii = { 2709000, 2706000, 2705000 }, Tags = { "moon_solarSystem", "moon_giants", "moon_neptune" }, - GuiPath = "/Solar System/Planets/Neptune/Moons/Irregular Prograde Moons", + GUI = { + Path = "/Solar System/Planets/Neptune/Moons/Irregular Prograde Moons" + }, TrailColor = { 0.2, 0.5, 0.75 }, OrbitPeriod = 5.877, Kernels = kernels081 diff --git a/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset b/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset index bd8a1e0fd7..dc185156e9 100644 --- a/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset +++ b/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Dione = { - Name = "Dione", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "Dione", + Parent = transforms.SaturnBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -35,7 +35,7 @@ local Dione = { Layers = { ColorLayers = { { - Name = "Dione Texture", + Identifier = "Texture", FilePath = textures .. "/dione.jpg", Enabled = true } @@ -43,7 +43,9 @@ local Dione = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset b/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset index f27bd71afc..95fe6b1953 100644 --- a/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset @@ -5,8 +5,8 @@ local kernels375 = asset.require('../sat375').Kernels local DioneTrail = { - Name = "DioneTrail", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "DioneTrail", + Parent = transforms.SaturnBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -20,7 +20,10 @@ local DioneTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Name = "Dione Trail", + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset index 92116bc318..1e443df8e4 100644 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Enceladus = { - Name = "Enceladus", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "Enceladus", + Parent = transforms.SaturnBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -35,7 +35,7 @@ local Enceladus = { Layers = { ColorLayers = { { - Name = "Enceladus Texture", + Identifier = "Texture", FilePath = textures .. "/enceladus.jpg", Enabled = true } @@ -43,7 +43,9 @@ local Enceladus = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset index 8834b45399..466281b1f4 100644 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset @@ -5,8 +5,8 @@ local kernels375 = asset.require('../sat375').Kernels local EnceladusTrail = { - Name = "EnceladusTrail", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "EnceladusTrail", + Parent = transforms.SaturnBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -20,7 +20,10 @@ local EnceladusTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Name = "Enceladus Trail", + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset b/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset index 8b862702c3..cfbdea7f7e 100644 --- a/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset +++ b/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset @@ -13,8 +13,8 @@ asset.request('./trail') -- }) local Hyperion = { - Name = "Hyperion", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "Hyperion", + Parent = transforms.SaturnBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -43,7 +43,9 @@ local Hyperion = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset b/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset index fc03a4a8d5..9b52198e2c 100644 --- a/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset @@ -5,8 +5,8 @@ local kernels375 = asset.require('../sat375').Kernels local HyperionTrail = { - Name = "HyperionTrail", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "HyperionTrail", + Parent = transforms.SaturnBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -20,7 +20,10 @@ local HyperionTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Name = "Hyperion Trail", + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset b/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset index ccfc237df0..be23afba40 100644 --- a/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset +++ b/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Iapetus = { - Name = "Iapetus", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "Iapetus", + Parent = transforms.SaturnBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -35,7 +35,7 @@ local Iapetus = { Layers = { ColorLayers = { { - Name = "Iapetus Texture", + Identifier = "Texture", FilePath = textures .. "/iapetus.jpg", Enabled = true } @@ -43,7 +43,9 @@ local Iapetus = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset b/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset index 08fa8dffeb..fdc7a468a4 100644 --- a/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset @@ -5,8 +5,8 @@ local kernels375 = asset.require('../sat375').Kernels local IapetusTrail = { - Name = "IapetusTrail", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "IapetusTrail", + Parent = transforms.SaturnBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -20,7 +20,10 @@ local IapetusTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Name = "Iapetus Trail", + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset b/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset index fa5919a38b..b15f141cd7 100644 --- a/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset +++ b/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Mimas = { - Name = "Mimas", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "Mimas", + Parent = transforms.SaturnBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -35,7 +35,7 @@ local Mimas = { Layers = { ColorLayers = { { - Name = "Mimas Texture", + Identifier = "Texture", FilePath = textures .. "/mimas.jpg", Enabled = true } @@ -43,7 +43,9 @@ local Mimas = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset b/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset index b3ab9f7d64..c1ad48a0e1 100644 --- a/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset @@ -5,8 +5,8 @@ local kernels375 = asset.require('../sat375').Kernels local MimasTrail = { - Name = "MimasTrail", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "MimasTrail", + Parent = transforms.SaturnBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -20,7 +20,10 @@ local MimasTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Name = "Mimas Trail", + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/minor/gallic_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/gallic_group.asset index e33a9c6fa5..129814643f 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/gallic_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/gallic_group.asset @@ -5,64 +5,72 @@ local kernels368 = asset.require('../sat368').Kernels -local parentName = transforms.SaturnBarycenter.Name +local parentIdentifier = transforms.SaturnBarycenter.Identifier local parentSpice = "SATURN BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_gallic" } local trailColor = { 0.5, 0.3, 0.3 } local gallicGroup = { { - Name = "Albiorix", + Identifier = "Albiorix", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ALBIORIX", Radii = { 32000, 32000, 32000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Gallic Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Gallic Group" + }, TrailColor = trailColor, OrbitPeriod = 774.58, Kernels = kernels368 }, { - Name = "Bebhionn", + Identifier = "Bebhionn", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "BEBHIONN", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Gallic Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Gallic Group" + }, TrailColor = trailColor, OrbitPeriod = 838.77, Kernels = kernels368 }, { - Name = "Erriapus", + Identifier = "Erriapus", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ERRIAPUS", Radii = { 10000, 10000, 10000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Gallic Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Gallic Group" + }, TrailColor = trailColor, OrbitPeriod = 844.89, Kernels = kernels368 }, { - Name = "Tarvos", + Identifier = "Tarvos", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "TARVOS", Radii = { 15000, 15000, 15000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Gallic Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Gallic Group" + }, TrailColor = trailColor, OrbitPeriod = 944.23, Kernels = kernels368 diff --git a/data/assets/scene/solarsystem/planets/saturn/minor/inuit_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/inuit_group.asset index e72ce0bcf2..e19528647f 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/inuit_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/inuit_group.asset @@ -5,78 +5,88 @@ local kernels368 = asset.require('../sat368').Kernels -local parentName = transforms.SaturnBarycenter.Name +local parentIdentifier = transforms.SaturnBarycenter.Identifier local parentSpice = "SATURN BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_inuit" } local trailColor = { 0.5, 0.3, 0.3 } local inuitGroup = { { - Name = "Kiviuq", + Identifier = "Kiviuq", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "KIVIUQ", Radii = { 16000, 16000, 16000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Inuit Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Inuit Group" + }, TrailColor = trailColor, OrbitPeriod = 448.16, Kernels = kernels368 }, { - Name = "Ijiraq", + Identifier = "Ijiraq", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "IJIRAQ", Radii = { 12000, 12000, 12000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Inuit Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Inuit Group" + }, TrailColor = trailColor, OrbitPeriod = 451.77, Kernels = kernels368 }, { - Name = "Paaliaq", + Identifier = "Paaliaq", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PAALIAQ", Radii = { 22000, 22000, 22000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Inuit Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Inuit Group" + }, TrailColor = trailColor, OrbitPeriod = 692.98, Kernels = kernels368 }, { - Name = "Siarnaq", + Identifier = "Siarnaq", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "SIARNAQ", Radii = { 40000, 40000, 40000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Inuit Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Inuit Group" + }, TrailColor = trailColor, OrbitPeriod = 884.88, Kernels = kernels368 }, { - Name = "Tarqeq", + Identifier = "Tarqeq", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "TARQEQ", Radii = { 7000, 7000, 7000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Inuit Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Inuit Group" + }, TrailColor = trailColor, OrbitPeriod = 894.86, Kernels = kernels368 diff --git a/data/assets/scene/solarsystem/planets/saturn/minor/norse_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/norse_group.asset index bdf82911f0..a81ff133c3 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/norse_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/norse_group.asset @@ -6,415 +6,481 @@ local kernels375 = asset.require('../sat375').Kernels -local parentName = transforms.SaturnBarycenter.Name +local parentIdentifier = transforms.SaturnBarycenter.Identifier local parentSpice = "SATURN BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_norse" } local trailColor = { 0.5, 0.3, 0.3 } local norseGroup = { { - Name = "Phoebe", + Identifier = "Phoebe", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PHOEBE", Radii = { 218800, 217000, 203600 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 545.09, Kernels = kernels375 }, { - Name = "Skathi", + Identifier = "Skathi", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "SKATHI", Radii = { 8000, 8000, 8000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 732.52, Kernels = kernels368 }, { - Name = "S/2007 S 2", + Identifier = "S2007S2", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "65055", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Name = "S/2007 S 2", + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 792.96, Kernels = kernels368 }, { - Name = "Skoll", + Identifier = "Skoll", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "SKOLL", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 862.37, Kernels = kernels368 }, { - Name = "S/2004 S 13", + Identifier = "S2004S13", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "65041", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Name = "S/2004 S 13", + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 905.85, Kernels = kernels368 }, { - Name = "Greip", + Identifier = "Greip", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "GREIP", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 906.56, Kernels = kernels368 }, { - Name = "Hyrrokkin", + Identifier = "Hyrrokkin", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "HYRROKKIN", Radii = { 8000, 8000, 8000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 914.29, Kernels = kernels368 }, { - Name = "Jarnsaxa", + Identifier = "Jarnsaxa", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "JARNSAXA", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 943.78, Kernels = kernels368 }, { - Name = "Mundilfari", + Identifier = "Mundilfari", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "MUNDILFARI", Radii = { 7000, 7000, 7000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 956.70, Kernels = kernels368 }, { - Name = "S/2006 S 1", + Identifier = "S2006S1", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "65048", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Name = "S/2006 S 1", + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 972.41, Kernels = kernels368 }, { - Name = "S/2004 S 17", + Identifier = "S2004S17", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "65045", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Name = "S/2004 S 17", + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 985.45, Kernels = kernels368 }, { - Name = "Bergelmir", + Identifier = "Bergelmir", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "BERGELMIR", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 985.83, Kernels = kernels368 }, { - Name = "Narvi", + Identifier = "Narvi", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "NARVI", Radii = { 7000, 7000, 7000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1008.45, Kernels = kernels368 }, { - Name = "Suttungr", + Identifier = "Suttungr", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "SUTTUNGR", Radii = { 7000, 7000, 7000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1022.82, Kernels = kernels368 }, { - Name = "Hati", + Identifier = "Hati", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "HATI", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1033.05, Kernels = kernels368 }, { - Name = "S/2004 S 12", + Identifier = "S2004S12", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "65040", Radii = { 5000, 5000, 5000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Name = "S/2004 S 12", + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1048.54, Kernels = kernels368 }, { - Name = "Farbauti", + Identifier = "Farbauti", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "FARBAUTI", Radii = { 5000, 5000, 5000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1054.78, Kernels = kernels368 }, { - Name = "Thrymr", + Identifier = "Thrymr", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "THRYMR", Radii = { 7000, 7000, 7000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1078.09, Kernels = kernels368 }, { - Name = "Aegir", + Identifier = "Aegir", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "AEGIR", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1094.46, Kernels = kernels368 }, { - Name = "S/2007 S 3", + Identifier = "S2007S3", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "65056", Radii = { 5000, 5000, 5000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Name = "S/2007 S 3", + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1100, Kernels = kernels368 }, { - Name = "Bestla", + Identifier = "Bestla", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "BESTLA", Radii = { 7000, 7000, 7000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1101.45, Kernels = kernels368 }, { - Name = "S/2004 S 7", + Identifier = "S2004S7", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "65035", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Name = "S/2004 S 7", + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1101.99, Kernels = kernels368 }, { - Name = "S/2006 S 3", + Identifier = "S2006S3", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "65050", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Name = "S/2006 S 3", + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1142.37, Kernels = kernels368 }, { - Name = "FENRIR", + Identifier = "FENRIR", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "FENRIR", Radii = { 4000, 4000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1212.53, Kernels = kernels368 }, -- Not yet in the Spice kernels -- { - -- Name = "Sutur", -- Rising + -- Identifier = "Sutur", -- Rising -- Parent = { - -- Name = parentName, + -- Identifier = parentIdentifier, -- Spice = parentSpice -- }, -- Spice = "SUTUR", -- Radii = { 6000, 6000, 6000 }, -- Tags = tags, - -- GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + -- GUI = { + -- Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + -- }, -- TrailColor = trailColor, -- OrbitPeriod = 1242.36, -- Kernels = kernels368 -- }, { - Name = "Kari", + Identifier = "Kari", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "KARI", Radii = { 7000, 7000, 7000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1245.06, Kernels = kernels368 }, { - Name = "Ymir", + Identifier = "Ymir", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "YMIR", Radii = { 18000, 18000, 18000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1254.15, Kernels = kernels368 }, { - Name = "Loge", + Identifier = "Loge", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "LOGE", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1300.95, Kernels = kernels368 }, { - Name = "Fornjot", + Identifier = "Fornjot", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "FORNJOT", Radii = { 6000, 6000, 6000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Norse Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Norse Group" + }, TrailColor = trailColor, OrbitPeriod = 1432.16, Kernels = kernels368 diff --git a/data/assets/scene/solarsystem/planets/saturn/minor/other_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/other_group.asset index 38b356cd5e..0203893816 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/other_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/other_group.asset @@ -6,190 +6,216 @@ local kernels375 = asset.require('../sat375').Kernels -local parentName = transforms.SaturnBarycenter.Name +local parentIdentifier = transforms.SaturnBarycenter.Identifier local parentSpice = "SATURN BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_other" } local trailColor = { 0.5, 0.3, 0.3 } local otherGroup = { { - Name = "Atlas", + Identifier = "Atlas", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ATLAS", Radii = { 41000, 35000, 19000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 0.60169, Kernels = kernels393 }, { - Name = "Prometheus", + Identifier = "Prometheus", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PROMETHEUS", Radii = { 136000, 79000, 59000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 0.61299, Kernels = kernels393 }, { - Name = "Pandora", + Identifier = "Pandora", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PANDORA", Radii = { 104000, 81000, 64000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 0.62850, Kernels = kernels393 }, { - Name = "Epimetheus", + Identifier = "Epimetheus", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "EPIMETHEUS", Radii = { 130000, 114000, 106000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 0.69433, Kernels = kernels393 }, { - Name = "Janus", + Identifier = "Janus", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "JANUS", Radii = { 203000, 185000, 153000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 0.69466, Kernels = kernels393 }, { - Name = "Aegaeon", + Identifier = "Aegaeon", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "AEGAEON", Radii = { 500, 500, 500 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 0.80812, Kernels = kernels393 }, { - Name = "Methone", + Identifier = "Methone", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "METHONE", Radii = { 3200, 3200, 3200 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 1.00957, Kernels = kernels393 }, { - Name = "Anthe", + Identifier = "Anthe", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ANTHE", Radii = { 1800, 1800, 1800 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 1.05089, Kernels = kernels393 }, { - Name = "Pallene", + Identifier = "Pallene", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PALLENE", Radii = { 6000, 6000, 4000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 1.370218, Kernels = kernels393 }, { - Name = "Telesto", + Identifier = "Telesto", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "TELESTO", Radii = { 33000, 24000, 20000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 1.887802, Kernels = kernels375 }, { - Name = "Calypso", + Identifier = "Calypso", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "CALYPSO", Radii = { 30000, 23000, 14000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 1.887802, Kernels = kernels375 }, { - Name = "Helene", + Identifier = "Helene", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "HELENE", Radii = { 43000, 38000, 26000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 2.736915, Kernels = kernels375 }, { - Name = "Polydeuces", + Identifier = "Polydeuces", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "POLYDEUCES", Radii = { 3000, 2000, 1000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Saturn/Moons/Other Group", + GUI = { + Path = "/Solar System/Planets/Saturn/Moons/Other Group" + }, TrailColor = trailColor, OrbitPeriod = 2.736915, Kernels = kernels393 diff --git a/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset b/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset index 6a0ff41807..ef17b8ae46 100644 --- a/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset +++ b/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Rhea = { - Name = "Rhea", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "Rhea", + Parent = transforms.SaturnBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -35,7 +35,7 @@ local Rhea = { Layers = { ColorLayers = { { - Name = "Rhea Texture", + Identifier = "Texture", FilePath = textures .. "/rhea.jpg", Enabled = true } @@ -43,7 +43,9 @@ local Rhea = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset b/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset index 36d1d469c3..d673879143 100644 --- a/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset @@ -5,8 +5,8 @@ local kernels375 = asset.require('../sat375').Kernels local RheaTrail = { - Name = "RheaTrail", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "RheaTrail", + Parent = transforms.SaturnBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -20,7 +20,10 @@ local RheaTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Name = "Rhea Trail", + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/saturn.asset b/data/assets/scene/solarsystem/planets/saturn/saturn.asset index 7ba41f082c..5eba3cd243 100644 --- a/data/assets/scene/solarsystem/planets/saturn/saturn.asset +++ b/data/assets/scene/solarsystem/planets/saturn/saturn.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Saturn = { - Name = "Saturn", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "Saturn", + Parent = transforms.SaturnBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -29,7 +29,7 @@ local Saturn = { Layers = { ColorLayers = { { - Name = "Saturn Texture", + Identifier = "Texture", FilePath = textures .. "/saturn.jpg", Enabled = true } @@ -37,19 +37,24 @@ local Saturn = { } }, Tag = { "planet_solarSystem", "planet_giants" }, - GuiPath = "/Solar System/Planets/Saturn" + GUI = { + Path = "/Solar System/Planets/Saturn" + } } local SaturnRings = { - Name = "SaturnRings", - Parent = Saturn.Name, + Identifier = "SaturnRings", + Parent = Saturn.Identifier, Renderable = { Type = "RenderableRings", Texture = textures .. "/saturn_rings.png", Size = 140220000, Offset = { 74500 / 140445.100671159, 1.0 } -- min / max extend }, - GuiPath = "/Solar System/Planets/Saturn" + GUI = { + Name = "Saturn Rings", + Path = "/Solar System/Planets/Saturn" + } }, diff --git a/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset b/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset index a56abc150e..dbcc1147ca 100644 --- a/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset +++ b/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Tethys = { - Name = "Tethys", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "Tethys", + Parent = transforms.SaturnBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -35,7 +35,7 @@ local Tethys = { Layers = { ColorLayers = { { - Name = "Tethys Texture", + Identifier = "Texture", FilePath = textures .. "/tethys.jpg", Enabled = true } @@ -43,7 +43,9 @@ local Tethys = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset b/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset index 359b8cde03..13a2cfce44 100644 --- a/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset @@ -5,8 +5,8 @@ local kernels375 = asset.require('../sat375').Kernels local TethysTrail = { - Name = "TethysTrail", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "TethysTrail", + Parent = transforms.SaturnBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -20,7 +20,10 @@ local TethysTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Name = "Tethys Trail", + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset b/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset index 6c739bdc27..0e90ce2f8c 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Titan = { - Name = "Titan", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "Titan", + Parent = transforms.SaturnBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -35,7 +35,7 @@ local Titan = { Layers = { ColorLayers = { { - Name = "Titan Texture", + Identifier = "Texture", FilePath = textures .. "/titan.jpg", Enabled = true } @@ -43,7 +43,9 @@ local Titan = { } }, Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset b/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset index 733b7c60d0..715c45ff74 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset @@ -5,8 +5,8 @@ local kernels375 = asset.require('../sat375').Kernels local TitanTrail = { - Name = "TitanTrail", - Parent = transforms.SaturnBarycenter.Name, + Identifier = "TitanTrail", + Parent = transforms.SaturnBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -20,7 +20,10 @@ local TitanTrail = { Resolution = 1000 }, Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn" }, - GuiPath = "/Solar System/Planets/Saturn/Moons" + GUI = { + Name = "Titan Trail", + Path = "/Solar System/Planets/Saturn/Moons" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/trail.asset b/data/assets/scene/solarsystem/planets/saturn/trail.asset index 31dd0bb5c0..590d9d3bda 100644 --- a/data/assets/scene/solarsystem/planets/saturn/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/trail.asset @@ -4,8 +4,8 @@ local transforms = asset.require('scene/solarsystem/sun/transforms') local SaturnTrail = { - Name = "SaturnTrail", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "SaturnTrail", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -18,7 +18,10 @@ local SaturnTrail = { Resolution = 1000 }, Tag = { "planetTrail_solarSystem", "planetTrail_giants" }, - GuiPath = "/Solar System/Planets/Saturn" + GUI = { + Name = "Saturn Trail", + Path = "/Solar System/Planets/Saturn" + } } diff --git a/data/assets/scene/solarsystem/planets/saturn/transforms.asset b/data/assets/scene/solarsystem/planets/saturn/transforms.asset index fb262abb40..910aae992f 100644 --- a/data/assets/scene/solarsystem/planets/saturn/transforms.asset +++ b/data/assets/scene/solarsystem/planets/saturn/transforms.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local SaturnBarycenter = { - Name = "SaturnBarycenter", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "SaturnBarycenter", + Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -14,7 +14,11 @@ local SaturnBarycenter = { Observer = "SUN" } }, - GuiPath = "/Solar System/Planets/Saturn" + GUI = { + Name = "Saturn Barycenter", + Path = "/Solar System/Planets/Saturn", + Hidden = true + } } diff --git a/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset b/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset index ae453c899a..6b27fe5cd3 100644 --- a/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset @@ -5,190 +5,216 @@ local kernels091 = asset.require('./ura091').Kernels -local parentName = transforms.UranusBarycenter.Name +local parentIdentifier = transforms.UranusBarycenter.Identifier local parentSpice = "URANUS BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_inner" } local trailColor = { 0.60, 0.65, 0.84 } local innerMoons = { { - Name = "Cordelia", + Identifier = "Cordelia", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "CORDELIA", Radii = { 40000, 40000, 40000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.335034, Kernels = kernels091 }, { - Name = "Ophelia", + Identifier = "Ophelia", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "OPHELIA", Radii = { 43000, 43000, 43000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.376400, Kernels = kernels091 }, { - Name = "Bianca", + Identifier = "Bianca", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "BIANCA", Radii = { 51000, 51000, 51000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.434579, Kernels = kernels091 }, { - Name = "Cressida", + Identifier = "Cressida", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "CRESSIDA", Radii = { 80000, 80000, 80000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.463570, Kernels = kernels091 }, { - Name = "Desdemona", + Identifier = "Desdemona", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "DESDEMONA", Radii = { 64000, 64000, 64000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.473650, Kernels = kernels091 }, { - Name = "Juliet", + Identifier = "Juliet", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "JULIET", Radii = { 94000, 94000, 94000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.493065, Kernels = kernels091 }, { - Name = "Portia", + Identifier = "Portia", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PORTIA", Radii = { 135000, 135000, 135000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.513196, Kernels = kernels091 }, { - Name = "Rosalind", + Identifier = "Rosalind", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ROSALIND", Radii = { 72000, 72000, 72000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.558460, Kernels = kernels091 }, { - Name = "Cupid", + Identifier = "Cupid", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "CUPID", Radii = { 18000, 18000, 18000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.618, Kernels = kernels091 }, { - Name = "Belinda", + Identifier = "Belinda", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "BELINDA", Radii = { 90000, 90000, 90000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.623527, Kernels = kernels091 }, { - Name = "Perdita", + Identifier = "Perdita", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PERDITA", Radii = { 30000, 30000, 30000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.638, Kernels = kernels091 }, { - Name = "Puck", + Identifier = "Puck", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PUCK", Radii = { 162000, 162000, 162000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.761833, Kernels = kernels091 }, { - Name = "Mab", + Identifier = "Mab", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "MAB", Radii = { 25000, 25000, 25000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Inner Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Inner Moons" + }, TrailColor = trailColor, OrbitPeriod = 0.923, Kernels = kernels091 diff --git a/data/assets/scene/solarsystem/planets/uranus/irregular_prograde_moons.asset b/data/assets/scene/solarsystem/planets/uranus/irregular_prograde_moons.asset index 34522a58ad..d866dfbd7f 100644 --- a/data/assets/scene/solarsystem/planets/uranus/irregular_prograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/irregular_prograde_moons.asset @@ -5,22 +5,24 @@ local kernels112 = asset.require('./ura112').Kernels -local parentName = transforms.UranusBarycenter.Name +local parentIdentifier = transforms.UranusBarycenter.Identifier local parentSpice = "URANUS BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_irregular_prograde" } local trailColor = { 0.60, 0.65, 0.84 } local irregularMoons = { { - Name = "Margaret", + Identifier = "Margaret", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "MARGARET", Radii = { 20000, 20000, 20000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Irregular Prograde Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Irregular Prograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 1694.8, Kernels = kernels112 diff --git a/data/assets/scene/solarsystem/planets/uranus/irregular_retrograde_moons.asset b/data/assets/scene/solarsystem/planets/uranus/irregular_retrograde_moons.asset index bf3817e663..9e1efdd062 100644 --- a/data/assets/scene/solarsystem/planets/uranus/irregular_retrograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/irregular_retrograde_moons.asset @@ -5,120 +5,136 @@ local kernels112 = asset.require('./ura112').Kernels -local parentName = transforms.UranusBarycenter.Name +local parentIdentifier = transforms.UranusBarycenter.Identifier local parentSpice = "URANUS BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_irregular_retrograde" } local trailColor = { 0.60, 0.65, 0.84 } local irregularMoons = { { - Name = "Francisco", + Identifier = "Francisco", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "FRANCISCO", Radii = { 22000, 22000, 22000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 266.56, Kernels = kernels112 }, { - Name = "Caliban", + Identifier = "Caliban", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "CALIBAN", Radii = { 72000, 72000, 72000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 579.50, Kernels = kernels112 }, { - Name = "Stephano", + Identifier = "Stephano", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "STEPHANO", Radii = { 32000, 32000, 32000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 676.50, Kernels = kernels112 }, { - Name = "Trinculo", + Identifier = "Trinculo", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "TRINCULO", Radii = { 18000, 18000, 18000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 758.10, Kernels = kernels112 }, { - Name = "Sycorax", + Identifier = "Sycorax", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "SYCORAX", Radii = { 165000, 165000, 165000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 1283.4, Kernels = kernels112 }, { - Name = "Prospero", + Identifier = "Prospero", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "PROSPERO", Radii = { 50000, 50000, 50000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 1992.8, Kernels = kernels112 }, { - Name = "Setebos", + Identifier = "Setebos", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "SETEBOS", Radii = { 48000, 48000, 48000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 2202.3, Kernels = kernels112 }, { - Name = "Ferdinand", + Identifier = "Ferdinand", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "FERDINAND", Radii = { 20000, 20000, 20000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Irregular Retrograde Moons" + }, TrailColor = trailColor, OrbitPeriod = 2823.4, Kernels = kernels112 diff --git a/data/assets/scene/solarsystem/planets/uranus/major_moons.asset b/data/assets/scene/solarsystem/planets/uranus/major_moons.asset index 45d6e0cce1..a8d44f1514 100644 --- a/data/assets/scene/solarsystem/planets/uranus/major_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/major_moons.asset @@ -5,78 +5,88 @@ local kernels111 = asset.require('./ura111').Kernels -local parentName = transforms.UranusBarycenter.Name +local parentIdentifier = transforms.UranusBarycenter.Identifier local parentSpice = "URANUS BARYCENTER" local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_major" } local trailColor = { 0.60, 0.65, 0.84 } local majorMoons = { { - Name = "Miranda", + Identifier = "Miranda", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "MIRANDA", Radii = { 471600, 468000, 466000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Major Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Major Moons" + }, TrailColor = trailColor, OrbitPeriod = 1.413479, Kernels = kernels111 }, { - Name = "Ariel", + Identifier = "Ariel", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "ARIEL", Radii = { 1162000, 1156000, 1155000 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Major Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Major Moons" + }, TrailColor = trailColor, OrbitPeriod = 2.520379, Kernels = kernels111 }, { - Name = "Umbriel", + Identifier = "Umbriel", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "UMBRIEL", Radii = { 1169400, 1169400, 1169400 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Major Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Major Moons" + }, TrailColor = trailColor, OrbitPeriod = 4.144177, Kernels = kernels111 }, { - Name = "Titania", + Identifier = "Titania", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "TITANIA", Radii = { 1576800, 1576800, 1576800 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Major Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Major Moons" + }, TrailColor = trailColor, OrbitPeriod = 8.705872, Kernels = kernels111 }, { - Name = "Oberon", + Identifier = "Oberon", Parent = { - Name = parentName, + Identifier = parentIdentifier, Spice = parentSpice }, Spice = "OBERON", Radii = { 1522800, 1522800, 1522800 }, Tags = tags, - GuiPath = "/Solar System/Planets/Uranus/Moons/Major Moons", + GUI = { + Path = "/Solar System/Planets/Uranus/Moons/Major Moons" + }, TrailColor = trailColor, OrbitPeriod = 13.463239, Kernels = kernels111 diff --git a/data/assets/scene/solarsystem/planets/uranus/trail.asset b/data/assets/scene/solarsystem/planets/uranus/trail.asset index a558871700..7acf031ffe 100644 --- a/data/assets/scene/solarsystem/planets/uranus/trail.asset +++ b/data/assets/scene/solarsystem/planets/uranus/trail.asset @@ -4,8 +4,8 @@ local transforms = asset.require('scene/solarsystem/sun/transforms') local UranusTrail = { - Name = "UranusTrail", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "UranusTrail", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -18,7 +18,10 @@ local UranusTrail = { Resolution = 1000 }, Tag = { "planetTrail_solarSystem", "planetTrail_giants" }, - GuiPath = "/Solar System/Planets/Uranus" + GUI = { + Name = "Uranus Trail", + Path = "/Solar System/Planets/Uranus" + } } diff --git a/data/assets/scene/solarsystem/planets/uranus/transforms.asset b/data/assets/scene/solarsystem/planets/uranus/transforms.asset index 0647e15403..2b801bebd1 100644 --- a/data/assets/scene/solarsystem/planets/uranus/transforms.asset +++ b/data/assets/scene/solarsystem/planets/uranus/transforms.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local UranusBarycenter = { - Name = "UranusBarycenter", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "UranusBarycenter", + Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -14,7 +14,11 @@ local UranusBarycenter = { Observer = "SUN" } }, - GuiPath = "/Solar System/Planets/Uranus" + GUI = { + Name = "Uranus Barycenter", + Path = "/Solar System/Planets/Uranus", + Hidden = true + } } diff --git a/data/assets/scene/solarsystem/planets/uranus/uranus.asset b/data/assets/scene/solarsystem/planets/uranus/uranus.asset index 8cb72d3c88..1bb29fa184 100644 --- a/data/assets/scene/solarsystem/planets/uranus/uranus.asset +++ b/data/assets/scene/solarsystem/planets/uranus/uranus.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Uranus = { - Name = "Uranus", - Parent = transforms.UranusBarycenter.Name, + Identifier = "Uranus", + Parent = transforms.UranusBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -29,7 +29,7 @@ local Uranus = { Layers = { ColorLayers = { { - Name = "Texture", + Identifier = "Texture", FilePath = textures .. "/uranus.jpg", Enabled = true } @@ -37,7 +37,9 @@ local Uranus = { } }, Tag = { "planet_solarSystem", "planet_giants" }, - GuiPath = "/Solar System/Planets/Uranus" + GUI = { + Path = "/Solar System/Planets/Uranus" + } } diff --git a/data/assets/scene/solarsystem/planets/venus/trail.asset b/data/assets/scene/solarsystem/planets/venus/trail.asset index 0d4e4853e7..b9c3d86743 100644 --- a/data/assets/scene/solarsystem/planets/venus/trail.asset +++ b/data/assets/scene/solarsystem/planets/venus/trail.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local VenusTrail = { - Name = "VenusTrail", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "VenusTrail", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailOrbit", Translation = { @@ -19,7 +19,11 @@ local VenusTrail = { Resolution = 1000 }, Tag = { "planetTrail_solarSystem", "planetTrail_terrestrial" }, - GuiPath = "/Solar System/Planets/Venus" + GUI = { + Name = "Venus Trail", + Path = "/Solar System/Planets/Venus", + Hidden = true + } } diff --git a/data/assets/scene/solarsystem/planets/venus/transforms.asset b/data/assets/scene/solarsystem/planets/venus/transforms.asset index 71ff2ddd57..f8b0bf0307 100644 --- a/data/assets/scene/solarsystem/planets/venus/transforms.asset +++ b/data/assets/scene/solarsystem/planets/venus/transforms.asset @@ -5,8 +5,8 @@ asset.require("spice/base") local VenusBarycenter = { - Name = "VenusBarycenter", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "VenusBarycenter", + Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -14,7 +14,10 @@ local VenusBarycenter = { Observer = "SUN" } }, - GuiPath = "/Solar System/Planets/Venus" + GUI = { + Name = "Venus Barycenter", + Path = "/Solar System/Planets/Venus" + } } diff --git a/data/assets/scene/solarsystem/planets/venus/venus.asset b/data/assets/scene/solarsystem/planets/venus/venus.asset index 7596c7d076..6cb6586798 100644 --- a/data/assets/scene/solarsystem/planets/venus/venus.asset +++ b/data/assets/scene/solarsystem/planets/venus/venus.asset @@ -13,8 +13,8 @@ local textures = asset.syncedResource({ }) local Venus = { - Name = "Venus", - Parent = transforms.VenusBarycenter.Name, + Identifier = "Venus", + Parent = transforms.VenusBarycenter.Identifier, Transform = { Rotation = { Type = "SpiceRotation", @@ -34,7 +34,7 @@ local Venus = { Layers = { ColorLayers = { { - Name = "Venus Texture", + Identifier = "Texture", FilePath = textures .. "/venus.jpg", Enabled = true } @@ -42,7 +42,9 @@ local Venus = { } }, Tag = { "planet_solarSystem", "planet_terrestrial" }, - GuiPath = "/Solar System/Planets/Venus" + GUI = { + Path = "/Solar System/Planets/Venus" + } } diff --git a/data/assets/scene/solarsystem/sun/glare.asset b/data/assets/scene/solarsystem/sun/glare.asset index fd35d5cc16..14e3af3264 100644 --- a/data/assets/scene/solarsystem/sun/glare.asset +++ b/data/assets/scene/solarsystem/sun/glare.asset @@ -6,8 +6,8 @@ asset.require("spice/base") local SunGlare = { - Name = "SunGlare", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "SunGlare", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderablePlaneImageLocal", Size = 1.3*10^10.5, @@ -23,7 +23,10 @@ local SunGlare = { Observer = "SSB" } }, - GuiPath = "/Solar System/Sun" + GUI = { + Name = "Sun Glare", + Path = "/Solar System/Sun" + } } diff --git a/data/assets/scene/solarsystem/sun/marker.asset b/data/assets/scene/solarsystem/sun/marker.asset index 604ad37456..7bfdaf911e 100644 --- a/data/assets/scene/solarsystem/sun/marker.asset +++ b/data/assets/scene/solarsystem/sun/marker.asset @@ -6,8 +6,8 @@ asset.require("spice/base") local SunMarker = { - Name = "SunMarker", - Parent = transforms.SolarSystemBarycenter.Name, + Identifier = "SunMarker", + Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Enabled = false, Type = "RenderablePlaneImageLocal", @@ -17,7 +17,10 @@ local SunMarker = { Texture = textures .. "/marker.png", BlendMode = "Additive" }, - GuiPath = "/Solar System/Sun" + GUI = { + Name = "Sun Marker", + Path = "/Solar System/Sun" + } } diff --git a/data/assets/scene/solarsystem/sun/sun.asset b/data/assets/scene/solarsystem/sun/sun.asset index 9df364e153..b9a51bf6bc 100644 --- a/data/assets/scene/solarsystem/sun/sun.asset +++ b/data/assets/scene/solarsystem/sun/sun.asset @@ -6,8 +6,8 @@ asset.require("spice/base") local Sun = { - Name = "Sun", - Parent = transforms.SunIAU.Name, + Identifier = "Sun", + Parent = transforms.SunIAU.Identifier, Renderable = { Type = "RenderablePlanet", Frame = "IAU_SUN", @@ -20,7 +20,9 @@ local Sun = { ColorTexture = textures .. "/sun.jpg", PerformShading = false }, - GuiPath = "/Solar System/Sun" + GUI = { + Path = "/Solar System/Sun" + } } diff --git a/data/assets/scene/solarsystem/sun/transforms.asset b/data/assets/scene/solarsystem/sun/transforms.asset index f5345a0adc..d30fef8ae6 100644 --- a/data/assets/scene/solarsystem/sun/transforms.asset +++ b/data/assets/scene/solarsystem/sun/transforms.asset @@ -5,14 +5,19 @@ asset.require("spice/base") -- Barycenter of the solar system, expressed in the Galactic frame local SolarSystemBarycenter = { - Name = "SolarSystemBarycenter" + Identifier = "SolarSystemBarycenter", + GUI = { + Name = "Solar System Barycenter", + Path = "/Solar System", + Hidden = true + } -- No parent; this node is attached to the scene graph root } -- Spice frame for the Sun local SunIAU = { - Name = "SunIAU", - Parent = SolarSystemBarycenter.Name, + Identifier = "SunIAU", + Parent = SolarSystemBarycenter.Identifier, Transform = { Translation = { Type = "SpiceTranslation", @@ -25,7 +30,11 @@ local SunIAU = { DestinationFrame = "GALACTIC" } }, - GuiPath = "/Solar System/Sun" + GUI = { + Name = "SUN IAU", + Path = "/Solar System/Sun", + Hidden = true + } } diff --git a/data/assets/util/asset_helper.asset b/data/assets/util/asset_helper.asset index bc738cf2e9..956b3a5758 100644 --- a/data/assets/util/asset_helper.asset +++ b/data/assets/util/asset_helper.asset @@ -37,7 +37,7 @@ local registerSceneGraphNodes = function (sceneAsset, nodes, override) sceneAsset.onDeinitialize(function () for i = #nodes, 1, -1 do node = nodes[i] - openspace.removeSceneGraphNode(node.Name) + openspace.removeSceneGraphNode(node.Identifier) end end) end @@ -50,7 +50,12 @@ local registerSceneGraphNodesAndExport = function (sceneAsset, nodes, override) return end end - + + for i, node in ipairs(nodes) do + if not node.Identifier then + openspace.printError("Could not load asset as Identifier was missing") + end + end sceneAsset.onInitialize(function () for i, node in ipairs(nodes) do @@ -60,27 +65,27 @@ local registerSceneGraphNodesAndExport = function (sceneAsset, nodes, override) sceneAsset.onDeinitialize(function () for i = #nodes, 1, -1 do node = nodes[i] - openspace.removeSceneGraphNode(node.Name) + openspace.removeSceneGraphNode(node.Identifier) end end) for i, node in ipairs(nodes) do - asset.export(node.Name, node) + sceneAsset.export(node.Identifier, node) end end -local requireAll = function (asset, directory) +local requireAll = function (sceneAsset, directory) function string.ends(String,End) return End=='' or string.sub(String,-string.len(End))==End end local result = {} - local files = openspace.walkDirectoryFiles(asset.localResource('') .. directory, true) + local files = openspace.walkDirectoryFiles(sceneAsset.localResource('') .. directory, true) for _, file in pairs(files) do if file:ends('.asset') then openspace.printDebug("Requiring: " .. file:sub(file:find(directory), -7)) - local exports = asset.require(file:sub(1, -7)) + local exports = sceneAsset.require(file:sub(1, -7)) table.insert(result, exports) end end @@ -88,16 +93,16 @@ local requireAll = function (asset, directory) return result end -local requestAll = function (asset, directory) +local requestAll = function (sceneAsset, directory) function string.ends(String,End) return End=='' or string.sub(String,-string.len(End))==End end - local files = openspace.walkDirectoryFiles(asset.localResource('') .. directory, true) + local files = openspace.walkDirectoryFiles(sceneAsset.localResource('') .. directory, true) for _, file in pairs(files) do if file:ends('.asset') then openspace.printDebug("Requesting: " .. file:sub(file:find(directory), -7)) - asset.request(file:sub(file:find(directory), -7)) + sceneAsset.request(file:sub(file:find(directory), -7)) end end end diff --git a/data/assets/util/default_keybindings.asset b/data/assets/util/default_keybindings.asset index 5a8e0b800b..3d31d9bdcc 100644 --- a/data/assets/util/default_keybindings.asset +++ b/data/assets/util/default_keybindings.asset @@ -5,7 +5,7 @@ local Keybindings = { { Key = "F2", Command = -[[local b = openspace.getPropertyValue('Modules.ImGUI.Main.Scene Properties.Enabled'); +[[local b = openspace.getPropertyValue('Modules.ImGUI.Main.SceneProperties.Enabled'); local c = openspace.getPropertyValue('Modules.ImGUI.Main.IsHidden'); openspace.setPropertyValue('Modules.ImGUI.*.Enabled', false); if b and c then @@ -13,11 +13,11 @@ if b and c then -- and then closed again. So the main properties window is enabled, but also all -- windows are hidden openspace.setPropertyValueSingle('Modules.ImGUI.Main.IsHidden', false); - openspace.setPropertyValueSingle('Modules.ImGUI.Main.Scene Properties.Enabled', true); - openspace.setPropertyValueSingle('Modules.ImGUI.Main.Space/Time.Enabled', true); + openspace.setPropertyValueSingle('Modules.ImGUI.Main.SceneProperties.Enabled', true); + openspace.setPropertyValueSingle('Modules.ImGUI.Main.SpaceTime.Enabled', true); else - openspace.setPropertyValueSingle('Modules.ImGUI.Main.Scene Properties.Enabled', not b); - openspace.setPropertyValueSingle('Modules.ImGUI.Main.Space/Time.Enabled', not b); + openspace.setPropertyValueSingle('Modules.ImGUI.Main.SceneProperties.Enabled', not b); + openspace.setPropertyValueSingle('Modules.ImGUI.Main.SpaceTime.Enabled', not b); openspace.setPropertyValueSingle('Modules.ImGUI.Main.IsHidden', b); end]], Documentation = "Shows or hides the properties window", diff --git a/data/assets/util/procedural_globe.asset b/data/assets/util/procedural_globe.asset index c055d43420..6a7650fe94 100644 --- a/data/assets/util/procedural_globe.asset +++ b/data/assets/util/procedural_globe.asset @@ -1,8 +1,8 @@ asset.require('spice/base') -local createGlobe = function(name, parent, parentSpiceName, spiceName, radii, tags, guiPath, trailColor, orbitPeriod, kernels) +local createGlobeWithoutName = function(identifier, parent, parentSpiceName, spiceName, radii, tags, guiPath, trailColor, orbitPeriod, kernels) return { - Name = name, + Identifier = identifier, Parent = parent, Transform = { Translation = { @@ -19,10 +19,12 @@ local createGlobe = function(name, parent, parentSpiceName, spiceName, radii, ta Layers = {}, Tag = tags }, - GuiPath = guiPath + GUI = { + Path = guiPath + } }, { - Name = name .. "Trail", + Identifier = identifier .. "Trail", Parent = parent, Renderable = { Type = "RenderableTrailOrbit", @@ -35,13 +37,25 @@ local createGlobe = function(name, parent, parentSpiceName, spiceName, radii, ta Period = orbitPeriod, Resolution = 1000 }, - GuiPath = guiPath + GUI = { + Path = guiPath + } } end -asset.export("createGlobe", createGlobe) + +local createGlobeWithName = function(identifier, name, parent, parentSpiceName, spiceName, radii, tags, guiPath, trailColor, orbitPeriod, kernels) + g, t = createGlobeWithoutName(identifier, parent, parentSpiceName, spiceName, radii, tags, guiPath, trailColor, orbitPeriod, kernels) + + g.GUI.Name = name + t.GUI.Name = name .. " Trail" + + return g, t +end +asset.export("createGlobeWithoutName", createGlobeWithoutName) +asset.export("createGlobeWithName", createGlobeWithName) + local createGlobes = function(t) - for _,v in pairs(t) do if type(v) ~= "table" then openspace.printWarning("The table passed to 'createGlobes' was not a table of tables") @@ -53,18 +67,36 @@ local createGlobes = function(t) result = {} for i, v in ipairs(t) do - globe, trail = createGlobe( - v.Name, - v.Parent.Name, - v.Parent.Spice, - v.Spice, - v.Radii, - v.Tags, - v.GuiPath, - v.TrailColor, - v.OrbitPeriod, - v.Kernels - ) + local globe = nil + local trail = nil + if v.Name then + globe, trail = createGlobeWithName( + v.Identifier, + v.GUI.Name, + v.Parent.Identifier, + v.Parent.Spice, + v.Spice, + v.Radii, + v.Tags, + v.GUI.Path, + v.TrailColor, + v.OrbitPeriod, + v.Kernels + ) + else + globe, trail = createGlobeWithoutName( + v.Identifier, + v.Parent.Identifier, + v.Parent.Spice, + v.Spice, + v.Radii, + v.Tags, + v.GUI.Path, + v.TrailColor, + v.OrbitPeriod, + v.Kernels + ) + end table.insert(result, globe) table.insert(result, trail) diff --git a/data/assets/util/property_helper.asset b/data/assets/util/property_helper.asset index 8d3576d130..dab5038a2c 100644 --- a/data/assets/util/property_helper.asset +++ b/data/assets/util/property_helper.asset @@ -16,6 +16,35 @@ local decrement = function(prop, value) return increment(prop, -value) end +local fade = function(prop, value, duration) + assert(type(prop) == "string", "prop must be a number") + assert(type(duration) == "number", "duration must be a number") + + local escaped_property = "'" .. prop .. "'" + return "openspace.setPropertyValue(" .. escaped_property ..", " .. tostring(value) .. ", " .. tostring(duration) .. ")" +end + +local fadeOut = function(prop, duration) + return fade(prop, 0.0, duration) +end + +local fadeIn = function(prop, duration) + return fade(prop, 1.0, duration) +end + +local fadeInOut = function(prop, duration) + assert(type(prop) == "string", "prop must be a number") + assert(type(duration) == "number", "duration must be a number") + + local escaped_property = "'" .. prop .. "'" + -- If the value is > 0.5 fade out, otherwise fade in + return "local v = openspace.getPropertyValue(" .. escaped_property .. "); if v <= 0.5 then " .. fadeIn(prop, duration) .. " else " .. fadeOut(prop, duration) .. " end" +end + asset.export('invert', invert) asset.export('increment', increment) asset.export('decrement', decrement) +asset.export('fade', fade) +asset.export('fadeIn', fadeIn) +asset.export('fadeOut', fadeOut) +asset.export('fadeInOut', fadeInOut) diff --git a/data/assets/voyager.scene b/data/assets/voyager.scene index 9bce0d584e..a5d24cd235 100644 --- a/data/assets/voyager.scene +++ b/data/assets/voyager.scene @@ -47,7 +47,7 @@ asset.onInitialize(function () ) openspace.navigation.setCameraState({ - Focus = VoyagerAsset["Voyager 1"].Name, + Focus = VoyagerAsset.Voyager_1.Identifier, Position = { 526781518487.171326, 257168309890.072144, -1381125204152.817383 }, Rotation = { -0.106166, 0.981574, -0.084545, 0.134513 }, }) diff --git a/data/tasks/default.task b/data/tasks/default.task index 1170166620..a564707544 100644 --- a/data/tasks/default.task +++ b/data/tasks/default.task @@ -1,3 +1 @@ -return { - "kameleonmetadatatojson" -} +return {} diff --git a/data/web/log/script.js b/data/web/log/script.js index fefe69a3c0..9d82ac59ac 100644 --- a/data/web/log/script.js +++ b/data/web/log/script.js @@ -1,6 +1,19 @@ +var sessionData = {}; +try { + sessionData = JSON.parse(decodeURIComponent(window.location.hash.slice(1))); +} catch (e) {} + var levels = ['trace', 'debug', 'info', 'warning', 'error', 'fatal']; var filterLevel = 0; +function insert(newNode, parentNode) { + parentNode.insertBefore(newNode, null); +} + +function insertBefore(newNode, referenceNode) { + referenceNode.parentNode.insertBefore(newNode, referenceNode); +} + function insertAfter(newNode, referenceNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); } @@ -12,7 +25,9 @@ function remove(node) { function scrollToPosition(selector) { var element = document.querySelector(selector); if (element && element.scrollIntoView) { - element.scrollIntoView(); + var rect = element.getBoundingClientRect(); + // Header is 80 px, 40 px margin + window.scrollTo(window.scrollX, + window.scrollY + rect.top - 80 - 40); } } @@ -80,49 +95,132 @@ function updateFilter() { } }); if (nShown === 0) { - var select = document.getElementsByTagName('select')[0]; + var header = document.getElementsByTagName('header')[0]; var p = document.createElement("p"); p.id = "no-messages"; p.innerHTML = "There are no log messages with the level '" + levels[filterLevel] + "' or higher."; - insertAfter(p, select); + insertAfter(p, header); table.classList.add('hidden'); } } +var reloadHandle = 0; + +function scheduleReload() { + updateSessionData({ + reload: true + }); + reloadHandle = window.setTimeout(function () { + window.location.reload(); + }, 5000); +} + +function unscheduleReload() { + updateSessionData({ + reload: false + }); + window.clearTimeout(reloadHandle); +} + +function updateSessionData(obj) { + var changed = false; + Object.keys(obj).forEach(function (k) { + if (sessionData != obj[k]) { + sessionData[k] = obj[k]; + changed = true; + } + if (!sessionData[k]) { + delete sessionData[k]; + } + }); + if (changed) { + window.location.hash = '#' + JSON.stringify(sessionData); + } +} + window.onload = function () { - var header = document.getElementsByTagName('h1')[0]; - header.innerHTML = "OpenSpace Log"; + var header = document.createElement('header'); + + var headerTitle = document.createElement('h1'); + headerTitle.innerHTML = "OpenSpace Log"; var summary = document.createElement('p'); + summary.id = 'summary'; summary.innerHTML = getSummary(); - var select = document.createElement('select'); - select.id = 'filter-level-selector'; + var selectFilter = document.createElement('select'); + selectFilter.id = 'filter-level-selector'; - var selectLabel = document.createElement('label'); - selectLabel.for = 'filter-level-selector'; - selectLabel.innerHTML = "Lowest log level to show: "; + var selectFilterGroup = document.createElement('div'); + var selectFilterLabel = document.createElement('label'); + selectFilterLabel.innerHTML = "Filter level"; levels.forEach(function (level) { var option = document.createElement('option'); option.value = level; option.innerHTML = level; - select.appendChild(option); + selectFilter.appendChild(option); }); - insertAfter(summary, header); - insertAfter(selectLabel, summary); - insertAfter(select, selectLabel); - var preselectedIndex = levels.indexOf(window.location.hash.slice(1)); + var autoReloadToggle = document.createElement('input'); + autoReloadToggle.type = 'checkbox'; + + if (sessionData.reload) { + scheduleReload(); + autoReloadToggle.checked = true; + if (sessionData.trackBottom) { + window.setTimeout(function () { + window.scrollTo(window.scrollX, document.body.scrollHeight); + }, 1); + } + } + + autoReloadToggle.onchange = function () { + if (autoReloadToggle.checked) { + scheduleReload(); + } else { + unscheduleReload(); + } + }; + + var autoReloadLabel = document.createElement('label'); + autoReloadLabel.innerHTML = "Auto-reload"; + + var autoReloadGroup = document.createElement('div'); + + insertBefore(header, document.getElementsByTagName('table')[0]); + insert(headerTitle, header); + insert(summary, header); + + insert(selectFilterLabel, selectFilterGroup) + insert(selectFilter, selectFilterGroup); + insert(selectFilterGroup, header); + + insert(autoReloadLabel, autoReloadGroup); + insert(autoReloadToggle, autoReloadGroup); + insert(autoReloadGroup, header) + + + var preselectedIndex = levels.indexOf(sessionData.filter || 'trace'); if (preselectedIndex >= 0) { - filterLevel = select.selectedIndex = preselectedIndex; + filterLevel = selectFilter.selectedIndex = preselectedIndex; updateFilter(); } - select.onchange = function (evt) { - filterLevel = select.selectedIndex; + selectFilter.onchange = function (evt) { + filterLevel = selectFilter.selectedIndex; updateFilter(); - window.location.hash = '#' + select.options[select.selectedIndex].value; + updateSessionData({ + filter: selectFilter.options[selectFilter.selectedIndex].value + }); }; + + window.onscroll = function () { + var scroll = document.documentElement.scrollTop || document.body.scrollTop; + scroll += window.innerHeight; + updateSessionData({ + trackBottom: scroll > document.body.scrollHeight - 10 + }); + } } \ No newline at end of file diff --git a/data/web/log/style.css b/data/web/log/style.css index 5b14dc72ad..6f3854d6b1 100644 --- a/data/web/log/style.css +++ b/data/web/log/style.css @@ -1,5 +1,33 @@ -table { +html, body { + background-color: #222; +} + +header { + position: fixed; width: 100%; + height: 80px; + z-index: 1; + background-color: #000; + min-width: 800px; +} + +header div { + float: left; + color: #ddd; + margin-top: 30px; + margin-right: 20px; + float: right; +} + +label { + margin-right: 10px; +} + +table { + position: relative; + top: 80px; + width: 100%; + background-color: #222; } td, th { @@ -7,51 +35,56 @@ td, th { } .log-date { - width: 8em; + white-space: nowrap; } h1 { + color: #fff; padding-left: 15px; + float: left; + margin-right: 15px; +} + +#summary { + float: left; + margin-left: 20px; + margin-top: 30px; +} + +#filter-level-selector { + background-color: #333; + color: #eee; } .hidden { display: none; } -p, label { - margin-left: 15px; - margin-bottom: 15px; -} - -label { - margin-right: 0.5em; -} - .log-level-trace { - color: #eeeeee; - background-color: #aaaaaa; - border-bottom: 1px solid #eaeaea; + color: #eee; + background-color: #333; + border-bottom: 1px solid #111; } .log-level-trace td:first-child { - border-left: 10px solid #eaeaea; + border-left: 10px solid #111; } .log-level-debug { - background-color: #bbdda9; - border-bottom: 1px solid #7bc142; - color: #265127; + background-color: #3A4556; + border-bottom: 1px solid #172228; + color: #ccd1d6; } .log-level-debug td:first-child { - border-left: 10px solid #7bc142; + border-left: 10px solid #172228; } thead, .log-level-info { - color: #333333; - background-color: #ffffff; - border-bottom: 1px solid #eaeaea; + color: #eee; + background-color: #333; + border-bottom: 1px solid #111; } .log-level-info td:first-child { - border-left: 10px solid #eaeaea; + border-left: 10px solid #111; } thead th:first-child { @@ -68,12 +101,12 @@ thead th:first-child { } .log-level-error { - color: #4c1315; - background-color: #fcdcdc; - border-bottom: 1px solid #d66767; + color: #fcdcdc; + background-color: #d66767; + border-bottom: 1px solid #721c1c; } .log-level-error td:first-child { - border-left: 10px solid #d66767; + border-left: 10px solid #721c1c; } .log-level-fatal { @@ -93,11 +126,27 @@ thead th:first-child { background-color: #fef8c3; } .summary-error { - background-color: #fcdcdc; + background-color: #d66767; + color: #fcdcdc; } +.summary-error a { + color: #fff; +} + .summary-fatal { background-color: #ff7dc1; } +.summary-fatal a { + color: #fff; +} + .summary-ok { background-color: #bbdda9; +} + +#no-messages { + position: relative; + top: 120px; + margin-left: 20px; + color: #ddd; } \ No newline at end of file diff --git a/ext/sgct b/ext/sgct index 462cca02c6..0f689a49a8 160000 --- a/ext/sgct +++ b/ext/sgct @@ -1 +1 @@ -Subproject commit 462cca02c68e6fe74ccc3aa18580aae673ecc5aa +Subproject commit 0f689a49a8d0e47cdba9d57b9b9cf5e98fb7847a diff --git a/include/openspace/engine/configurationmanager.h b/include/openspace/engine/configurationmanager.h index cd6735ab3d..ac7c325e27 100644 --- a/include/openspace/engine/configurationmanager.h +++ b/include/openspace/engine/configurationmanager.h @@ -86,6 +86,9 @@ public: /// The key that stores the factory documentation values static constexpr const char* KeyFactoryDocumentation = "FactoryDocumentation"; + /// The key that decides whether or not we should require incoming web socket connections + /// to authorize or not + static constexpr const char* KeyRequireSocketAuthentication = "RequireSocketAuthentication"; /// The key that stores the location of the asset file that is initially loaded static constexpr const char* KeyConfigAsset = "Asset"; @@ -200,7 +203,13 @@ public: /// The part of the key storing whether the OpenGL state should be checked each call static constexpr const char* KeyCheckOpenGLState = "CheckOpenGLState"; - /// The part of the key storing whether each OpenGL call should be logged + /// The part of the key storing whether the OpenGL state should be checked each call + static constexpr const char* KeyServerPasskey = "ServerPasskey"; + + /// Whitelist of client addresses that won't need autorization + static constexpr const char* KeyServerClientAddressWhitelist = + "ClientAddressWhitelist"; + static constexpr const char* KeyLogEachOpenGLCall = "LogEachOpenGLCall"; /// This key determines whether the scene graph nodes should initialized multithreaded @@ -233,6 +242,8 @@ public: /// The key used to specify whether screenshots should contain the current date static constexpr const char* KeyScreenshotUseDate = "ScreenshotUseDate"; + static constexpr const char* KeyWebHelperLocation = "WebHelperLocation"; + static constexpr const char* KeyCefWebGuiUrl = "CefWebGuiUrl"; /** * Iteratively walks the directory structure starting with \p filename to find the diff --git a/include/openspace/engine/moduleengine.h b/include/openspace/engine/moduleengine.h index 547f6e5c2c..1ad4f7af11 100644 --- a/include/openspace/engine/moduleengine.h +++ b/include/openspace/engine/moduleengine.h @@ -95,7 +95,7 @@ public: ModuleSubClass* module() const { auto it = std::find_if(_modules.begin(), _modules.end(), [](const std::unique_ptr& m) { - return m->name() == ModuleSubClass::Name; + return m->identifier() == ModuleSubClass::Name; }); if (it != _modules.end()) { return dynamic_cast(it->get()); diff --git a/include/openspace/engine/openspaceengine.h b/include/openspace/engine/openspaceengine.h index 29d46fcadf..8b2e3e49aa 100644 --- a/include/openspace/engine/openspaceengine.h +++ b/include/openspace/engine/openspaceengine.h @@ -51,7 +51,7 @@ class LoadingScreen; class LuaConsole; class ModuleEngine; class NetworkEngine; -class ParallelConnection; +class ParallelPeer; class RenderEngine; class Scene; class SyncEngine; @@ -128,7 +128,7 @@ public: ModuleEngine& moduleEngine(); LoadingScreen& loadingScreen(); NetworkEngine& networkEngine(); - ParallelConnection& parallelConnection(); + ParallelPeer& parallelPeer(); RenderEngine& renderEngine(); TimeManager& timeManager(); WindowWrapper& windowWrapper(); @@ -212,7 +212,7 @@ private: std::unique_ptr _console; std::unique_ptr _moduleEngine; std::unique_ptr _networkEngine; - std::unique_ptr _parallelConnection; + std::unique_ptr _parallelPeer; std::unique_ptr _renderEngine; std::unique_ptr _syncEngine; std::unique_ptr _timeManager; diff --git a/include/openspace/interaction/keyframenavigator.h b/include/openspace/interaction/keyframenavigator.h index 152af94341..1d7f5164b5 100644 --- a/include/openspace/interaction/keyframenavigator.h +++ b/include/openspace/interaction/keyframenavigator.h @@ -26,7 +26,7 @@ #define __OPENSPACE_CORE___KEYFRAMENAVIGATOR___H__ #include -#include +#include #include #include diff --git a/include/openspace/interaction/luaconsole.h b/include/openspace/interaction/luaconsole.h index 4cc1241e30..fe7ffc037b 100644 --- a/include/openspace/interaction/luaconsole.h +++ b/include/openspace/interaction/luaconsole.h @@ -25,6 +25,7 @@ #ifndef __OPENSPACE_CORE___LUACONSOLE___H__ #define __OPENSPACE_CORE___LUACONSOLE___H__ +#include #include #include #include diff --git a/include/openspace/network/parallelconnection.h b/include/openspace/network/parallelconnection.h index 4205ee8899..9cd33e8bea 100644 --- a/include/openspace/network/parallelconnection.h +++ b/include/openspace/network/parallelconnection.h @@ -26,39 +26,18 @@ #define __OPENSPACE_CORE___PARALLELCONNECTION___H__ #include -#include -#include -#include -#include -#include +#include -#include - -#include #include -#include -#include -#include -#include -#include -#include - -#if defined(WIN32) || defined(__MING32__) || defined(__MING64__) -typedef size_t _SOCKET; -#else -typedef int _SOCKET; -#include -#endif - -struct addrinfo; namespace openspace { -class ParallelConnection : public properties::PropertyOwner { - public: +class ParallelConnection { +public: enum class Status : uint32_t { Disconnected = 0, + Connecting, ClientWithoutHost, ClientWithHost, Host @@ -70,7 +49,8 @@ class ParallelConnection : public properties::PropertyOwner { ConnectionStatus, HostshipRequest, HostshipResignation, - NConnections + NConnections, + Disconnection }; struct Message { @@ -94,115 +74,23 @@ class ParallelConnection : public properties::PropertyOwner { std::vector content; }; - ParallelConnection(); - ~ParallelConnection(); - void clientConnect(); - void setPort(std::string port); - void setAddress(std::string address); - void setName(std::string name); - bool isHost(); - const std::string& hostName(); - void requestHostship(); - void resignHostship(); - void setPassword(std::string password); - void setHostPassword(std::string hostPassword); - void signalDisconnect(); - void preSynchronization(); - void sendScript(std::string script); - void resetTimeOffset(); - double latencyStandardDeviation() const; - double timeTolerance() const; + class ConnectionLostError : public ghoul::RuntimeError { + public: + explicit ConnectionLostError(); + }; - /** - * Returns the Lua library that contains all Lua functions available to affect the - * remote OS parallel connection. The functions contained are - * - - * \return The Lua library that contains all Lua functions available to affect the - * interaction - */ - static scripting::LuaLibrary luaLibrary(); - Status status(); - int nConnections(); - std::shared_ptr> connectionEvent(); + ParallelConnection(std::unique_ptr socket); + bool isConnectedOrConnecting(); + void sendDataMessage(const ParallelConnection::DataMessage& dataMessage); + bool sendMessage(const ParallelConnection::Message& message); + void disconnect(); + ghoul::io::TcpSocket* socket(); + + ParallelConnection::Message receiveMessage(); private: - //@TODO change this into the ghoul hasher for client AND server - uint32_t hash(const std::string &val); - void queueOutMessage(const Message& message); - void queueOutDataMessage(const DataMessage& dataMessage); - void queueInMessage(const Message& message); - - void disconnect(); - void closeSocket(); - bool initNetworkAPI(); - void establishConnection(addrinfo *info); - void sendAuthentication(); - void listenCommunication(); - int receiveData(_SOCKET & socket, std::vector &buffer, int length, int flags); - - void handleMessage(const Message&); - void dataMessageReceived(const std::vector& messageContent); - void connectionStatusMessageReceived(const std::vector& messageContent); - void nConnectionsMessageReceived(const std::vector& messageContent); - - void sendCameraKeyframe(); - void sendTimeKeyframe(); - - void sendFunc(); - void threadManagement(); - - void setStatus(Status status); - void setHostName(const std::string& hostName); - void setNConnections(size_t nConnections); - - double calculateBufferedKeyframeTime(double originalTime); - - properties::StringProperty _password; - properties::StringProperty _hostPassword; - properties::StringProperty _port; - properties::StringProperty _address; - properties::StringProperty _name; - properties::FloatProperty _bufferTime; - properties::FloatProperty _timeKeyframeInterval; - properties::FloatProperty _cameraKeyframeInterval; - properties::FloatProperty _timeTolerance; - - double _lastTimeKeyframeTimestamp; - double _lastCameraKeyframeTimestamp; - - _SOCKET _clientSocket; - - std::atomic _isConnected; - std::atomic _isRunning; - std::atomic _tryConnect; - std::atomic _disconnect; - std::atomic _initializationTimejumpRequired; - - std::atomic _nConnections; - std::atomic _status; - std::string _hostName; - - std::condition_variable _disconnectCondition; - std::mutex _disconnectMutex; - - std::condition_variable _sendCondition; - std::deque _sendBuffer; - std::mutex _sendBufferMutex; - - std::deque _receiveBuffer; - std::mutex _receiveBufferMutex; - - std::atomic _timeJumped; - std::mutex _latencyMutex; - std::deque _latencyDiffs; - double _initialTimeDiff; - - std::unique_ptr _connectionThread; - std::unique_ptr _sendThread; - std::unique_ptr _listenThread; - std::unique_ptr _handlerThread; - std::shared_ptr> _connectionEvent; + std::unique_ptr _socket; }; } // namespace openspace diff --git a/include/openspace/network/parallelpeer.h b/include/openspace/network/parallelpeer.h new file mode 100644 index 0000000000..6b44b1fc68 --- /dev/null +++ b/include/openspace/network/parallelpeer.h @@ -0,0 +1,136 @@ +/***************************************************************************************** + * * + * 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_CORE___PARALLELPEER___H__ +#define __OPENSPACE_CORE___PARALLELPEER___H__ + +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace openspace { + +class ParallelPeer : public properties::PropertyOwner { +public: + ParallelPeer(); + ~ParallelPeer(); + void connect(); + void setPort(std::string port); + void setAddress(std::string address); + void setName(std::string name); + bool isHost(); + const std::string& hostName(); + void requestHostship(); + void resignHostship(); + void setPassword(std::string password); + void setHostPassword(std::string hostPassword); + void disconnect(); + void preSynchronization(); + void sendScript(std::string script); + void resetTimeOffset(); + double latencyStandardDeviation() const; + double timeTolerance() const; + + /** + * Returns the Lua library that contains all Lua functions available to affect the + * remote OS parallel connection. + */ + static scripting::LuaLibrary luaLibrary(); + ParallelConnection::Status status(); + int nConnections(); + std::shared_ptr> connectionEvent(); + +private: + void queueInMessage(const ParallelConnection::Message& message); + + void sendAuthentication(); + void handleCommunication(); + + void handleMessage(const ParallelConnection::Message&); + void dataMessageReceived(const std::vector& messageContent); + void connectionStatusMessageReceived(const std::vector& messageContent); + void nConnectionsMessageReceived(const std::vector& messageContent); + + void sendCameraKeyframe(); + void sendTimeKeyframe(); + + void setStatus(ParallelConnection::Status status); + void setHostName(const std::string& hostName); + void setNConnections(size_t nConnections); + + double calculateBufferedKeyframeTime(double originalTime); + + properties::StringProperty _password; + properties::StringProperty _hostPassword; + properties::StringProperty _port; + properties::StringProperty _address; + properties::StringProperty _name; + properties::FloatProperty _bufferTime; + properties::FloatProperty _timeKeyframeInterval; + properties::FloatProperty _cameraKeyframeInterval; + properties::FloatProperty _timeTolerance; + + double _lastTimeKeyframeTimestamp; + double _lastCameraKeyframeTimestamp; + + std::atomic _shouldDisconnect; + + std::atomic _nConnections; + std::atomic _status; + std::string _hostName; + + std::deque _receiveBuffer; + std::mutex _receiveBufferMutex; + + std::atomic _timeJumped; + std::mutex _latencyMutex; + std::deque _latencyDiffs; + double _initialTimeDiff; + + std::unique_ptr _receiveThread; + std::shared_ptr> _connectionEvent; + + ParallelConnection _connection; +}; + +} // namespace openspace + +#endif // __OPENSPACE_CORE___PARALLELPEER___H__ diff --git a/include/openspace/network/parallelserver.h b/include/openspace/network/parallelserver.h new file mode 100644 index 0000000000..79133e9fed --- /dev/null +++ b/include/openspace/network/parallelserver.h @@ -0,0 +1,123 @@ +/***************************************************************************************** + * * + * 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_CORE___PARALLELSERVER___H__ +#define __OPENSPACE_CORE___PARALLELSERVER___H__ + +#include + +#include + +#include +#include + +#include +#include +#include + +namespace openspace { + +class ParallelServer { +public: + void start(int port, + const std::string& password, + const std::string& changeHostPassword); + + void setDefaultHostAddress(std::string); + + std::string defaultHostAddress() const; + + void stop(); + + size_t nConnections() const; + +private: + struct Peer { + size_t id; + std::string name; + ParallelConnection parallelConnection; + ParallelConnection::Status status; + std::thread thread; + }; + + struct PeerMessage { + size_t peerId; + ParallelConnection::Message message; + }; + + bool isConnected(std::shared_ptr peer) const; + + void sendMessage(std::shared_ptr peer, + ParallelConnection::MessageType messageType, + const std::vector& message); + + void sendMessageToAll(ParallelConnection::MessageType messageType, + const std::vector& message); + + void sendMessageToClients(ParallelConnection::MessageType messageType, + const std::vector& message); + + void disconnect(std::shared_ptr peer); + void setName(std::shared_ptr peer, std::string name); + void assignHost(std::shared_ptr peer); + void setToClient(std::shared_ptr peer); + void setNConnections(size_t nConnections); + void sendConnectionStatus(std::shared_ptr peer); + + void handleAuthentication(std::shared_ptr peer, std::vector data); + void handleData(std::shared_ptr peer, std::vector data); + void handleHostshipRequest(std::shared_ptr peer, std::vector data); + void handleHostshipResignation(std::shared_ptr peer, std::vector data); + void handleDisconnection(std::shared_ptr peer); + + void handleNewPeers(); + void eventLoop(); + std::shared_ptr peer(size_t i); + void handlePeer(size_t id); + void handlePeerMessage(PeerMessage peerMessage); + + std::unordered_map> _peers; + mutable std::mutex _peerListMutex; + + std::thread _serverThread; + std::thread _eventLoopThread; + ghoul::io::TcpSocketServer _socketServer; + size_t _passwordHash; + size_t _changeHostPasswordHash; + size_t _nextConnectionId = 1; + std::atomic_bool _shouldStop = false; + + std::atomic_size_t _nConnections = 0; + std::atomic_size_t _hostPeerId = 0; + + mutable std::mutex _hostInfoMutex; + std::string _hostName; + std::string _defaultHostAddress; + + ConcurrentQueue _incomingMessages; +}; + +} // namespace openspace + +#endif // __OPENSPACE_CORE___PARALLELSERVER___H__ diff --git a/include/openspace/properties/binaryproperty.h b/include/openspace/properties/binaryproperty.h new file mode 100644 index 0000000000..d810a8b8b7 --- /dev/null +++ b/include/openspace/properties/binaryproperty.h @@ -0,0 +1,37 @@ +/***************************************************************************************** +* * +* OpenSpace * +* * +* Copyright (c) 2014-2017 * +* * +* 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_CORE___BINARYPROPERTY___H__ +#define __OPENSPACE_CORE___BINARYPROPERTY___H__ + +#include +#include + +namespace openspace::properties { + +REGISTER_TEMPLATEPROPERTY_HEADER(BinaryProperty, std::vector) + +} // namespace openspace::properties + +#endif // __OPENSPACE_CORE___BINARYPROPERTY___H__ diff --git a/include/openspace/properties/numericalproperty.h b/include/openspace/properties/numericalproperty.h index 12cec0e4e3..1be4a3a5d9 100644 --- a/include/openspace/properties/numericalproperty.h +++ b/include/openspace/properties/numericalproperty.h @@ -62,20 +62,41 @@ public: virtual std::string className() const override; + std::string jsonValue() const override; + using TemplateProperty::operator=; + + void setInterpolationTarget(ghoul::any value) override; + void setLuaInterpolationTarget(lua_State* state) override; + void setStringInterpolationTarget(std::string value) override; + + void interpolateValue(float t, + ghoul::EasingFunc easingFunc = nullptr) override; + + protected: static const std::string MinimumValueKey; static const std::string MaximumValueKey; static const std::string SteppingValueKey; static const std::string ExponentValueKey; - std::string generateAdditionalDescription() const override; + std::string generateAdditionalJsonDescription() const override; + + /** + * convert a lua formatted value to a JSON formatted value + * @param luaValue + * @return a json formatted string representation of the given lua value + */ + std::string luaToJson(std::string luaValue) const; T _minimumValue; T _maximumValue; T _stepping; float _exponent; + + T _interpolationStart; + T _interpolationEnd; }; } // namespace openspace::properties diff --git a/include/openspace/properties/numericalproperty.inl b/include/openspace/properties/numericalproperty.inl index edfbcddbbd..91fe0ddee6 100644 --- a/include/openspace/properties/numericalproperty.inl +++ b/include/openspace/properties/numericalproperty.inl @@ -386,13 +386,90 @@ void NumericalProperty::setExponent(float exponent) { } template -std::string NumericalProperty::generateAdditionalDescription() const { - std::string result; - result += MinimumValueKey + " = " + std::to_string(_minimumValue) + ","; - result += MaximumValueKey + " = " + std::to_string(_maximumValue) + ","; - result += SteppingValueKey + " = " + std::to_string(_stepping) + ","; - result += ExponentValueKey + " = " + std::to_string(_exponent); +std::string NumericalProperty::generateAdditionalJsonDescription() const { + std::string result = "{ "; + result += "\"" + MinimumValueKey + "\": " + luaToJson(std::to_string(_minimumValue)) + ","; + result += "\"" + MaximumValueKey + "\": " + luaToJson(std::to_string(_maximumValue)) + ","; + result += "\"" + SteppingValueKey + "\": " + luaToJson(std::to_string(_stepping)) + ","; + result += "\"" + ExponentValueKey + "\": " + luaToJson(std::to_string(_exponent)); + result += " }"; return result; } +template +std::string NumericalProperty::luaToJson(std::string luaValue) const { + if(luaValue[0] == '{') { + luaValue.replace(0, 1, "["); + } + if (luaValue[luaValue.size() - 1] == '}') { + luaValue.replace(luaValue.size() - 1, 1, "]"); + } + return luaValue; +} + +template +std::string NumericalProperty::jsonValue() const { + std::string value; + getStringValue(value); + return luaToJson(value); +} + +template +void NumericalProperty::setInterpolationTarget(ghoul::any value) { + try { + T v = ghoul::any_cast(std::move(value)); + + _interpolationStart = TemplateProperty::_value; + _interpolationEnd = std::move(v); + } + catch (ghoul::bad_any_cast&) { + LERRORC( + "TemplateProperty", + fmt::format( + "Illegal cast from '{}' to '{}'", + value.type().name(), + typeid(T).name() + ) + ); + } +} + +template +void NumericalProperty::setLuaInterpolationTarget(lua_State* state) { + bool success = false; + T thisValue = PropertyDelegate>::template fromLuaValue( + state, + success + ); + if (success) { + _interpolationStart = TemplateProperty::_value; + _interpolationEnd = std::move(thisValue); + } +} + +template +void NumericalProperty::setStringInterpolationTarget(std::string value) { + bool success = false; + T thisValue = PropertyDelegate>::template fromString( + value, + success + ); + if (success) { + _interpolationStart = TemplateProperty::_value; + _interpolationEnd = std::move(thisValue); + } +} + +template +void NumericalProperty::interpolateValue(float t, + ghoul::EasingFunc easingFunction) +{ + if (easingFunction) { + t = easingFunction(t); + } + TemplateProperty::setValue(static_cast( + glm::mix(_interpolationStart, _interpolationEnd, t) + )); +} + } // namespace openspace::properties diff --git a/include/openspace/properties/optionproperty.h b/include/openspace/properties/optionproperty.h index f2945d6b83..ac4d099869 100644 --- a/include/openspace/properties/optionproperty.h +++ b/include/openspace/properties/optionproperty.h @@ -143,7 +143,7 @@ public: private: static const std::string OptionsKey; - std::string generateAdditionalDescription() const override; + std::string generateAdditionalJsonDescription() const override; /// The list of options which have been registered with this OptionProperty std::vector