Merge remote-tracking branch 'origin/master' into feature/video-on-globe

This commit is contained in:
Ylva Selling
2023-02-13 10:59:01 -05:00
87 changed files with 1952 additions and 879 deletions

View File

@@ -0,0 +1,70 @@
local minormoons_on = {
Identifier = "os_default.minormoons_on",
Name = "Turn ON minor moons and trails",
Command = [[
local trails = openspace.getProperty('{moonTrail_minor}.Renderable.Enabled');
local trails_fade = openspace.getProperty('{moonTrail_minor}.Renderable.Fade');
local moons = openspace.getProperty('{moon_minor}.Renderable.Enabled');
local moons_fade = openspace.getProperty('{moon_minor}.Renderable.Fade');
for i, v in pairs(trails_fade) do
openspace.setPropertyValueSingle(trails[i], true)
openspace.setPropertyValueSingle(v, 1, 2, 'Linear')
end
for i, v in pairs(moons_fade) do
openspace.setPropertyValueSingle(moons[i], true)
openspace.setPropertyValueSingle(v, 1, 2, 'Linear')
end
]],
Documentation = "Turn ON minor moons and their trails for all planets in the solar system",
GuiPath = "/Solar System/Minor Moons",
IsLocal = true
}
local minormoons_off = {
Identifier = "os_default.minormoons_off",
Name = "Turn OFF minor moons and trails",
Command = [[
local trails = openspace.getProperty('{moonTrail_minor}.Renderable.Enabled');
local trails_fade = openspace.getProperty('{moonTrail_minor}.Renderable.Fade');
local moons = openspace.getProperty('{moon_minor}.Renderable.Enabled');
local moons_fade = openspace.getProperty('{moon_minor}.Renderable.Fade');
for i, v in pairs(trails_fade) do
openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. trails[i] .. "', false)" )
end
for i, v in pairs(moons_fade) do
openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. moons[i] .. "', false)" )
end
]],
Documentation = "Turn OFF minor moons and their trails for all planets in the solar system",
GuiPath = "/Solar System/Minor Moons",
IsLocal = true
}
asset.export("minormoons_on", minormoons_on.Identifier)
asset.export("minormoons_off", minormoons_off.Identifier)
asset.onInitialize(function()
openspace.action.registerAction(minormoons_on)
openspace.action.registerAction(minormoons_off)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(minormoons_off)
openspace.action.removeAction(minormoons_on)
end)
asset.meta = {
Name = "Actions - Turn ON/OFF all Minor Moons",
Version = "1.0",
Description = "Asset providing actions to turn ON/OFF all minor moons and their trails",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -0,0 +1,32 @@
local toggle_minormoon_trails = {
Identifier = "os_default.toggle_minormoon_trails",
Name = "Toggle Minor Moon Trails",
Command = [[
local list = openspace.getProperty('{moonTrail_minor}.Renderable.Enabled');
for _,v in pairs(list) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v))
end
]],
Documentation = "Toggle on/off minor moon trails for all planets in the solar system",
GuiPath = "/Trails",
IsLocal = true
}
asset.export("toggle_minormoon_trails", toggle_minormoon_trails.Identifier)
asset.onInitialize(function()
openspace.action.registerAction(toggle_minormoon_trails)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(toggle_minormoon_trails)
end)
asset.meta = {
Name = "Actions - Toggle Minor Moon Trails",
Version = "1.0",
Description = "Asset providing actions to toggle all minor moon trails on and off",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -0,0 +1,97 @@
local bastilleday_setup_startofcme = {
Identifier = "os.events.bastilleday.setup.startofcme",
Name = "Reset to start of CME, no loop",
Command = [[
openspace.time.setTime('2000-JUL-14 10:03:00.00');
openspace.scriptScheduler.clear();
]],
Documentation = "Button to reset to the the start of the CME",
GuiPath = "/Bastille-Day 2000",
IsLocal = false
}
local bastilleday_setup_shortloop = {
Identifier = "os.events.bastilleday.setup.shortloop",
Name = "Loop 10:03 - 10:16, at 2 min/second",
Command = [[
local EndtimeShortLoop = "2000 JUL 14 10:16:00";
local starttimescriptslowloop = "openspace.time.setTime('2000 JUL 14 10:03:00')";
openspace.scriptScheduler.clear();
openspace.time.setDeltaTime(120);
openspace.time.setTime('2000-JUL-14 10:03:00.00');
openspace.scriptScheduler.loadScheduledScript(EndtimeShortLoop, starttimescriptslowloop);
]],
Documentation = "New loop: Restarts time at 10:03 and stops at 10:16, sets delta time to 2 min/second (120 seconds/second)",
GuiPath = "/Bastille-Day 2000",
IsLocal = false
}
local bastilleday_setup_standardloop = {
Identifier = "os.events.bastilleday.setup.standardloop",
Name = "Loop 10:03 - 11:00, at 4 min/second",
Command = [[
local starttimescriptslowloop = "openspace.time.setTime('2000 JUL 14 10:03:00')";
openspace.scriptScheduler.clear();
openspace.time.setDeltaTime(240);
openspace.time.setTime('2000-JUL-14 10:03:00.00');
openspace.scriptScheduler.loadScheduledScript('2000 JUL 14 11:00:00', starttimescriptslowloop);
]],
Documentation = "New loop: Restarts time at 10:03 and stops at 11:00, delta time to 4 min/second (240 seconds/second)",
GuiPath = "/Bastille-Day 2000",
IsLocal = false
}
local bastilleday_setup_fastloop = {
Identifier = "os.events.bastilleday.setup.fastloop",
Name = "Loop 10:03 - 11.48, at 15 min/second",
Command = [[
local starttimescriptfastloop = "openspace.time.setTime('2000 JUL 14 10:03:00')";
openspace.scriptScheduler.clear();
openspace.time.setDeltaTime(900);
openspace.time.setTime('2000-JUL-14 10:03:00.00');
openspace.scriptScheduler.loadScheduledScript('2000 JUL 14 11:48:00', starttimescriptfastloop);
]],
Documentation = "Fast loop: Starts from 10:03 and sets delta time to 15 min/second (900 seconds/second)",
GuiPath = "/Bastille-Day 2000",
IsLocal = false
}
local bastilleday_setup_longloop = {
Identifier = "os.events.bastilleday.setup.longloop",
Name = "Loop 09:30 - 13:00, at 4 min/second",
Command = [[
local starttimescriptlongloop = "openspace.time.setTime('2000 JUL 14 09:30:00')";
openspace.scriptScheduler.clear();
openspace.time.setDeltaTime(240);
openspace.time.setTime('2000-JUL-14 09:30:00.00');
openspace.scriptScheduler.loadScheduledScript('2000 JUL 14 13:00:00', starttimescriptlongloop);
]],
Documentation = "Long loop: Restarts time at 09:30 and stops at 11:50, delta time to 4 min/second (240 seconds/second)",
GuiPath = "/Bastille-Day 2000",
IsLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(bastilleday_setup_startofcme)
openspace.action.registerAction(bastilleday_setup_shortloop)
openspace.action.registerAction(bastilleday_setup_standardloop)
openspace.action.registerAction(bastilleday_setup_fastloop)
openspace.action.registerAction(bastilleday_setup_longloop)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(bastilleday_setup_longloop)
openspace.action.removeAction(bastilleday_setup_fastloop)
openspace.action.removeAction(bastilleday_setup_standardloop)
openspace.action.removeAction(bastilleday_setup_shortloop)
openspace.action.removeAction(bastilleday_setup_startofcme)
end)
asset.meta = {
Name = "Bastille day actions",
Version = "1.0",
Description = "Asset with actions related to Bastille day",
Author = "CCMC, OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -49,7 +49,7 @@ local densityVolume = {
}
local toggle_volume = {
Identifier = "density_volume.toggle_volume",
Identifier = "os.events.bastilleday.densityvolume.togglevolume",
Name = "Toggle volume",
Command = propertyHelper.invert("Scene.MAS-MHD-Density-bastille-day-2000.Renderable.Enabled"),
Documentation = "Toggle volume rendering of CME",
@@ -72,7 +72,7 @@ asset.export(densityVolume)
asset.meta = {
Name = "Predictive Science Inc. Volume Rendering Bastille Day",
Version = "1.0",
Version = "1.1",
Description = "Volumetric rendering for the bastille day CME event",
Author = "CCMC, OpenSpace team",
URL = "https://dx.doi.org/10.3847/1538-4357/aab36d",

View File

@@ -48,7 +48,7 @@ local fieldlines = {
}
local toggle_fieldlines = {
Identifier = "fieldlines.toggle_fieldlines",
Identifier = "os.events.bastilleday.fieldlines.togglefieldlines",
Name = "Toggle Fieldlines",
Command = propertyHelper.invert("Scene.MAS-MHD-Fieldlines-bastille-day-2000.Renderable.Enabled"),
Documentation = "Toggle fieldline rendering of CME",
@@ -70,7 +70,7 @@ asset.export(fieldlines)
asset.meta = {
Name = "Predictive Science Inc. Fieldlines Bastille Day",
Version = "1.0",
Version = "1.1",
Description = "Magnetic fieldlines for the bastille day CME event",
Author = "CCMC, Jonathan Grangien, Matthias Berg",
URL = "https://dx.doi.org/10.3847/1538-4357/aab36d",

View File

@@ -33,7 +33,7 @@ local fluxNodes = {
}
local toggle_fluxnodes = {
Identifier = "fluxnodes.toggle_fluxnodes",
Identifier = "os.events.bastilleday.fluxnodes.togglefluxnodes",
Name = "Toggle flux nodes",
Command = propertyHelper.invert("Scene.MAS-MHD-FluxNodes-bastille-day-2000.Renderable.Enabled"),
Documentation = "Toggle flux node rendering of CME",
@@ -56,7 +56,7 @@ asset.export(fluxNodes)
asset.meta = {
Name = "Predictive Science Inc. Flux nodes Bastille Day",
Version = "1.0",
Version = "1.1",
Description = "Flux nodes for the bastille day CME event",
Author = "CCMC, Christian Adamsson, Emilie Ho",
URL = "https://dx.doi.org/10.3847/1538-4357/aab36d",

View File

@@ -70,7 +70,7 @@ local MeridialCutplane = {
}
local toggle_equatorial = {
Identifier = "fluxnodescutplane.toggle_equatorial",
Identifier = "os.events.bastilleday.fluxnodescutplane.toggleequatorial",
Name = "Toggle equatorial cutplane",
Command = propertyHelper.invert("Scene.EquatorialCutplane-bastille-day-2000.Renderable.Enabled"),
Documentation = "Toggle equatorial cutplane of CME",
@@ -78,7 +78,7 @@ local toggle_equatorial = {
IsLocal = false
}
local toggle_meridial = {
Identifier = "fluxnodescutplane.toggle_meridial",
Identifier = "os.events.bastilleday.fluxnodescutplane.togglemeridial",
Name = "Toggle meridial cutplane",
Command = propertyHelper.invert("Scene.MeridialCutplane-bastille-day-2000.Renderable.Enabled"),
Documentation = "Toggle meridial cutplane of CME",
@@ -106,7 +106,7 @@ asset.export(MeridialCutplane)
asset.meta = {
Name = "Predictive Science Inc. Cutplanes Bastille Days",
Version = "1.0",
Version = "1.1",
Description = "Cutplanes for the bastille day CME event",
Author = "CCMC, Christian Adamsson, Emilie Ho",
URL = "https://dx.doi.org/10.3847/1538-4357/aab36d",

View File

@@ -16,7 +16,7 @@ local legend = {
}
local show_legend = {
Identifier = "fluxnodelegend.show_legend",
Identifier = "os.events.bastilleday.fluxnodelegend.showlegend",
Name = "Show the legend image",
Command = [[
openspace.setPropertyValueSingle("ScreenSpace.LegendFluxNodes-bastille-day-2000.Opacity", 0.0);
@@ -27,8 +27,9 @@ local show_legend = {
GuiPath = "/Bastille-Day 2000",
IsLocal = false
}
local hide_legend = {
Identifier = "fluxnodelegend.hide_legend",
Identifier = "os.events.bastilleday.fluxnodelegend.hidelegend",
Name = "Hides the legend image",
Command = [[openspace.setPropertyValueSingle("ScreenSpace.LegendFluxNodes-bastille-day-2000.Opacity", 0.0, 2)]],
Documentation = "Hides the legend image",
@@ -52,7 +53,7 @@ end)
asset.meta = {
Name = "Predictive Science Inc. Flux nodes legend for Bastille Days",
Version = "1.0",
Version = "1.1",
Description = [[Screen space renderable image legend of flux nodes for the bastille day
CME event]],
Author = "Christian Adamsson, Emilie Ho",

View File

@@ -5,7 +5,7 @@ local magnetogramDirectory = asset.require("./magnetogram").TexturesPath;
local magnetograms;
local switch_color_layer = {
Identifier = "magnetogram_texture.switch_color_layer",
Identifier = "os.events.bastilleday.magnetogramtexture.switchcolorlayer",
Name = "Next sun texture",
Command = [[
local textureList = openspace.globebrowsing.getLayers("Sun", "ColorLayers");
@@ -59,7 +59,7 @@ end)
asset.meta = {
Name = "Bastille Day magnetogram textures",
Version = "1.0",
Version = "1.1",
Description = [[This asset adds multiple magnetogram textures to the Sun. In addition
it provides an action to cycle through the textures. See magnetogram.asset for details
of the textures]],

View File

@@ -0,0 +1,36 @@
asset.require("../apollo_globebrowsing")
local apollo11_setup_landingsite = {
Identifier = "os.missions.apollo11.setup.landingsite",
Name = "Setup Apollo 11 landing site",
Command = [[
openspace.time.setTime('1969 JUL 20 20:17:40');
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_11.Enabled', true);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A11_M177481212_p_longlat.Enabled', true);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.TargetLodScaleFactor', 20.11);
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Apollo11LemPosition');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
openspace.setPropertyValueSingle('Scene.Apollo11MoonTrail.Renderable.Enabled', true);
openspace.setPropertyValueSingle('Scene.Apollo11LemTrail.Renderable.Enabled', true);
]],
Documentation = "Setup for Apollo 11 landing site",
GuiPath = "/Missions/Apollo/11",
IsLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(apollo11_setup_landingsite)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(apollo11_setup_landingsite)
end)
asset.meta = {
Name = "Apollo 11 Actions",
Version = "1.0",
Description = "Asset with actions related to the Apollo 11 mission",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -1,3 +1,7 @@
asset.require("spice/base")
asset.require("../actions")
asset.require("./actions")
local sun = asset.require("scene/solarsystem/sun/sun")
local moon_transforms = asset.require("scene/solarsystem/planets/earth/moon/moon")
@@ -5,7 +9,6 @@ local descentKeyframes = asset.require("./lem_descent.asset")
local descentRotationKeyframes = asset.require("./lem_descent_rotation.asset")
local kernels = asset.require("./kernels").kernels
asset.require("spice/base")
local models = asset.syncedResource({
Name = "Apollo Models",

View File

@@ -1,6 +1,7 @@
local moon_transforms = asset.require("scene/solarsystem/planets/earth/moon/moon")
local sun = asset.require("scene/solarsystem/sun/sun")
asset.require("spice/base")
asset.require("../actions")
local models = asset.syncedResource({
Name = "Apollo Models",

View File

@@ -0,0 +1,40 @@
asset.require("../apollo_globebrowsing")
local apollo17_setup_landingsite = {
Identifier = "os.missions.apollo17.setup.landingsite",
Name = "Setup for Apollo 17 landing site",
Command = [[
openspace.time.setTime('1972 DEC 12 19:47:11');
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_travmap.BlendMode', 0.000000);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_travmap.Enabled', true);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_17.Enabled', true);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_LEM.Enabled', true);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_LEM.BlendMode', 0.000000);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_NAC_Alt_p.Enabled', true);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_NAC_Alt_p.BlendMode', 0.000000);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.TargetLodScaleFactor', 20.17);
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Apollo17LemModel');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_station7.BlendMode', 0.000000);
]],
Documentation = "Setup for Apollo 17 landing site",
GuiPath = "/Missions/Apollo/17",
IsLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(apollo17_setup_landingsite)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(apollo17_setup_landingsite)
end)
asset.meta = {
Name = "Apollo 17 Actions",
Version = "1.0",
Description = "Asset with actions related to the Apollo 11 mission",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -0,0 +1,3 @@
asset.require("./lem")
asset.require("./actions")
asset.require("../actions")

View File

@@ -0,0 +1,47 @@
local apollo8_setup_earthrise = {
Identifier = "os.missions.apollo8.setup.earthrise",
Name = "Set Earthrise time",
Command = [[
openspace.time.setPause(true);
openspace.time.setDeltaTime(1);
openspace.time.setTime('1968 DEC 24 16:37:31');
openspace.navigation.setNavigationState({Anchor = 'Apollo8', Position = { 1.494592E1, 3.236777E1, -4.171296E1 }, ReferenceFrame = 'Root', Up = { 0.960608E0, -0.212013E0, 0.179675E0 }});
openspace.setPropertyValue('*Trail.Renderable.Enabled', false);
]],
Documentation = "Jump to right before the earthrise photo",
GuiPath = "/Missions/Apollo/8",
IsLocal = false
}
local apollo8_setup_launch = {
Identifier = "os.missions.apollo8.setup.launch",
Name = "Set Apollo 8 launch time",
Command = [[
openspace.time.setTime('1968-12-21T12:51:37.00');
openspace.setPropertyValueSingle('Scene.Apollo8LaunchTrail.Renderable.Enabled', true);
]],
Documentation = "Jump to time right before Apollo 8 liftoff, with its trail enabled",
GuiPath = "/Missions/Apollo/8",
IsLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(apollo8_setup_earthrise)
openspace.action.registerAction(apollo8_setup_launch)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(apollo8_setup_launch)
openspace.action.removeAction(apollo8_setup_earthrise)
end)
asset.meta = {
Name = "Apollo 8 Actions",
Version = "1.0",
Description = "Asset with actions related to the Apollo 8 mission",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -1,3 +1,5 @@
asset.require("./model")
asset.require("./launch_model")
asset.require("./trails")
asset.require("./actions")
asset.require("../actions")

View File

@@ -0,0 +1,57 @@
local toggle_moon_shading = {
Identifier = "os.missions.apollo.moon.toggleshading",
Name = "Toggle Moon shading",
Command = [[
openspace.setPropertyValueSingle('Scene.Moon.Renderable.PerformShading', not openspace.getPropertyValue('Scene.Moon.Renderable.PerformShading'));
]],
Documentation = "Toggles the shading of the Moon",
GuiPath = "/Missions/Apollo",
isLocal = false
}
local focus_moon = {
Identifier = "os.missions.apollo.moon.focus",
Name = "Focus on Moon",
Command = [[
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Moon');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Set camera focus on the Moon",
GuiPath = "/Missions/Apollo",
isLocal = false
}
local focus_earth = {
Identifier = "os.missions.apollo.earth.focus",
Name = "Focus on Earth",
Command = [[
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Earth');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Set camera focus on the Earth",
GuiPath = "/Missions/Apollo",
isLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(toggle_moon_shading)
openspace.action.registerAction(focus_moon)
openspace.action.registerAction(focus_earth)
end)
asset.onDeinitialize(function()
openspace.action.registerAction(focus_earth)
openspace.action.registerAction(focus_moon)
openspace.action.removeAction(toggle_moon_shading)
end)
asset.meta = {
Name = "Actions - Apollo missions",
Version = "1.0",
Description = "Actions related to the Apollo missions",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -28,9 +28,45 @@ local stations = asset.syncedResource({
Version = 1
})
local apollo_moon_togglekaguyalayer = {
Identifier = "os.missions.apollo.moon.togglekaguyalayer",
Name = "Toggle Kaguya layer",
Command = [[
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.Kaguya_Utah.Enabled', not openspace.getPropertyValue('Scene.Moon.Renderable.Layers.ColorLayers.Kaguya_Utah.Enabled'));
]],
Documentation = "Toggles Moon Kaguya color layer",
GuiPath = "/Missions/Apollo",
IsLocal = false
}
local apollo_moon_disableapollosites= {
Identifier = "os.missions.apollo.moon.disableapollosites",
Name = "Disable Apollo sites",
Command = [[
openspace.setPropertyValue('Scene.Moon.Renderable.Layers.ColorLayers.A17_*.Enabled', false);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_11.Enabled', false);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A11_M177481212_p_longlat.Enabled', false);
openspace.setPropertyValueSingle('Scene.Apollo11MoonTrail.Renderable.Enabled', false);
openspace.setPropertyValueSingle('Scene.Apollo11LemTrail.Renderable.Enabled', false);
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_17.Enabled', false);
]],
Documentation = "Disable apollo site on moon when leaving",
GuiPath = "/Missions/Apollo",
IsLocal = false
}
asset.onInitialize(function ()
openspace.globebrowsing.addBlendingLayersFromDirectory(heightmaps, moon_transforms.Moon.Identifier)
openspace.globebrowsing.addBlendingLayersFromDirectory(basemaps, moon_transforms.Moon.Identifier)
openspace.globebrowsing.addBlendingLayersFromDirectory(naclighting, moon_transforms.Moon.Identifier)
openspace.globebrowsing.addBlendingLayersFromDirectory(stations, moon_transforms.Moon.Identifier)
openspace.action.registerAction(apollo_moon_togglekaguyalayer)
openspace.action.registerAction(apollo_moon_disableapollosites)
end)
asset.onDeinitialize(function ()
openspace.action.removeAction(apollo_moon_disableapollosites)
openspace.action.removeAction(apollo_moon_togglekaguyalayer)
end)

View File

@@ -0,0 +1,50 @@
local setup_insight = {
Identifier = "os.missions.insight.setup",
Name = "Setup scene for insight EDL",
Command = [[
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -469.300000);
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Settings.Offset', -470.850006);
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.MDEM200M.Settings.Offset', -470.000000);
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Enabled', true);
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.HiRISE-LS.Enabled', true);
openspace.time.setPause(true);
openspace.time.setTime('2018 NOV 26 19:39:01.68');
openspace.navigation.setNavigationState({Anchor = 'Insight',Pitch = 0.567457E-4,Position = { 1.240506E1,-1.369270E1,-2.423553E0 },ReferenceFrame = 'Root',Up = { 0.441211E0,0.247019E0,0.862737E0 },Yaw = -0.446853E-4});
]],
Documentation = "Set and goto Insight Landing",
GuiPath = "/Missions/Insight",
isLocal = false
}
local setup_disablelayers = {
Identifier = "os.missions.insight.setup.disablelayers",
Name = "Disable insight EDL layers",
Command = [[
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', 0);
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Settings.Offset', 0);
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Enabled', false);
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.HiRISE-LS.Enabled', false);
]],
Documentation = "Disable Mars layer settings used for insight EDL",
GuiPath = "/Missions/Insight",
isLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(setup_insight)
openspace.action.registerAction(setup_disablelayers)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(setup_disablelayers)
openspace.action.removeAction(setup_insight)
end)
asset.meta = {
Name = "Insight Actions",
Version = "1.0",
Description = "Actions related to the Insight mission",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -1,6 +1,8 @@
asset.require("spice/base")
asset.require("./actions")
local sun = asset.require("scene/solarsystem/sun/sun")
local mars = asset.require("scene/solarsystem/planets/mars/mars")
asset.require("scene/solarsystem/planets/mars/default_layers")
local models = asset.syncedResource({
Name = "Insight Models Chutes",

View File

@@ -0,0 +1,157 @@
local toggle_lagrangian_points = {
Identifier = "os.missions.jwst.togglelagrangianpoints",
Name = "Toggle Lagrangian points",
Command = [[
local list = openspace.getProperty('{lagrange_points_earth}.Renderable.Enabled');
for _,v in pairs(list) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v))
end
]],
Documentation = "Toggle points and labels for the Lagrangian points for Earth Sun system",
GuiPath = "/JWST",
isLocal = false
}
local toggle_hudf = {
Identifier = "os.missions.jwst.togglehudf",
Name = "Toggle Hubble Ultra Deep Field",
Command = [[
local list = openspace.getProperty('{mission_jwst_hudf}.*.Enabled');
for _,v in pairs(list) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v))
end
]],
Documentation = "Toggle Hubble Ultra Deep Field image and line towards its coordinate",
GuiPath = "/JWST",
isLocal = false
}
local toggle_l2 = {
Identifier = "os.missions.jwst.togglel2",
Name = "Toggle L2 line and small L2 label",
Command = [[
local list = openspace.getProperty('{lagrange_points_earth_l2_small}.*.Enabled');
for _,v in pairs(list) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v))
end
]],
Documentation = "Toggle L2 label, point and line",
GuiPath = "/JWST",
isLocal = false
}
local toggle_fov = {
Identifier = "os.missions.jwst.togglefov",
Name = "Toggle JWST field of view and view band",
Command = [[
local list = openspace.getProperty('{mission_jwst_fov}.*.Enabled');
for _,v in pairs(list) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v))
end
]],
Documentation = "Toggle James Webb Space Telecope field of view and view band",
GuiPath = "/JWST",
isLocal = false
}
local setup_launch = {
Identifier = "os.missoins.jwst.setup.launch",
Name = "Set to JWST launch time",
Command = [[
openspace.time.setDeltaTime(1);
openspace.time.setTime('2021-12-25T12:20:01');
]],
Documentation = "Set the time to the launch time of JWST",
GuiPath = "/JWST",
isLocal = false
}
local setup_detach = {
Identifier = "os.missions.jwst.setup.detach",
Name = "Set to JWST detach time",
Command = [[
openspace.time.setDeltaTime(1);
openspace.time.setTime('2021-12-25T12:50:00');
]],
Documentation = "Set the time to the detach time of JWST",
GuiPath = "/JWST",
isLocal = false
}
local toggle_sun_trail = {
Identifier = "os.missions.jwst.togglesuntrail",
Name = "Toggle JWST Sun trail",
Command = [[
local value = openspace.getPropertyValue('Scene.JWSTSunTrail.Renderable.Enabled');
openspace.setPropertyValueSingle('Scene.JWSTSunTrail.Renderable.Enabled', not value);
]],
Documentation = "Toggle JWST trail relative to the Sun",
GuiPath = "/JWST",
isLocal = false
}
local toggle_trails_except_moon = {
Identifier = "os.missions.jwst.toggletrialsexceptmoon",
Name = "Toggle trails (except Moon)",
Command = [[
local list = openspace.getProperty('{planetTrail_solarSystem}.Renderable.Enabled');
for _,v in pairs(list) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v))
end
local moonlist = openspace.getProperty('{moonTrail_solarSystem}.Renderable.Enabled')
for _,v in pairs(moonlist) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v))
end
openspace.setPropertyValueSingle('Scene.MoonTrail.Renderable.Enabled', true)
]],
Documentation = "Toggle all planet and moon trails, except the Moon",
GuiPath = "/JWST",
isLocal = false
}
local toggle_jwst_trail = {
Identifier = "os.missions.jwst.togglejwsttrails",
Name = "Toggle JWST trail",
Command = [[
local list = {'Scene.JWSTTrailLaunch.Renderable.Enabled', 'Scene.JWSTTrailCruise.Renderable.Enabled', 'Scene.JWSTTrailCoRevOrbit.Renderable.Enabled'};
for _,v in pairs(list) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v));
end
]],
Documentation = "Toggle JWST launch, cruise and L2 co-revolving orbit trails, not the Sun trail",
GuiPath = "/JWST",
isLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(toggle_lagrangian_points)
openspace.action.registerAction(toggle_hudf)
openspace.action.registerAction(toggle_l2)
openspace.action.registerAction(toggle_fov)
openspace.action.registerAction(setup_launch)
openspace.action.registerAction(setup_detach)
openspace.action.registerAction(toggle_sun_trail)
openspace.action.registerAction(toggle_trails_except_moon)
openspace.action.registerAction(toggle_jwst_trail)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(toggle_jwst_trail)
openspace.action.removeAction(toggle_trails_except_moon)
openspace.action.removeAction(toggle_sun_trail)
openspace.action.removeAction(setup_detach)
openspace.action.removeAction(setup_launch)
openspace.action.removeAction(toggle_fov)
openspace.action.removeAction(toggle_l2)
openspace.action.removeAction(toggle_hudf)
openspace.action.removeAction(toggle_lagrangian_points)
end)
asset.meta = {
Name = "Actions - JWST",
Version = "1.0",
Description = "Actions related to the JWST mission",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -1,9 +1,11 @@
asset.require("spice/base")
asset.require("./actions")
asset.require("scene/solarsystem/planets/earth/layers/colorlayers/terra_modis_temporal")
asset.require("scene/solarsystem/planets/earth/layers/colorlayers/esri_viirs_combo")
local sun = asset.require("scene/solarsystem/sun/sun")
local sunTransforms = asset.require("scene/solarsystem/sun/transforms")
local transforms = asset.require("./transforms")
asset.require("spice/base")
asset.require("scene/solarsystem/planets/earth/layers/colorlayers/terra_modis_temporal")
asset.require("scene/solarsystem/planets/earth/layers/colorlayers/esri_viirs_combo")
local models = asset.syncedResource({
Name = "JWST Model",
@@ -218,7 +220,7 @@ asset.export(JWSTLabel)
asset.meta = {
Name = "James Webb Space Telescope",
Version = "1.0",
Version = "1.1",
Description = [[
James Webb Space Telescope animated model, safe viewing band, field of view and label.
]],

View File

@@ -504,7 +504,7 @@ end
local function createActions()
local playForwards = {
Identifier = "jwst.play.forwards",
Identifier = "os.missions.jwst.play.forwards",
Name = "Play JWST from start",
Command = [[
openspace.scriptScheduler.clear(0)
@@ -520,7 +520,7 @@ local function createActions()
}
local playFromDetach = {
Identifier = "jwst.play.detach",
Identifier = "os.missions.jwst.play.detach",
Name = "Play JWST from detach",
Command = [[
openspace.scriptScheduler.clear(0)
@@ -538,7 +538,7 @@ local function createActions()
}
local playBackwards = {
Identifier = "jwst.play.backwards",
Identifier = "os.missions.jwst.play.backwards",
Name = "Play JWST from end",
Command = [[
openspace.scriptScheduler.clear(0)
@@ -554,7 +554,7 @@ local function createActions()
}
local clearPlay = {
Identifier = "jwst.play.clear",
Identifier = "os.missions.jwst.play.clear",
Name = "Clear JWST timelapse",
Command = [[
openspace.scriptScheduler.clear(0)
@@ -562,7 +562,7 @@ local function createActions()
openspace.setPropertyValueSingle("Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Settings.Gamma", 1.0)
openspace.setPropertyValueSingle("Scene.EarthAtmosphere.Renderable.Enabled", true)
local deltaTime = openspace.time.deltaTime()
if deltaTime > 0 then
if deltaTime >= 0 then
openspace.time.setDeltaTime(1)
else
openspace.time.setDeltaTime(-1)
@@ -574,7 +574,7 @@ local function createActions()
}
local togglePlayDirection = {
Identifier = "jwst.toggle.direction",
Identifier = "os.missions.jwst.toggledirection",
Name = "Toggle forwards / backwards",
Command = [[
-- Flip deltatime
@@ -611,7 +611,7 @@ local function createActions()
IsLocal = false
}
return {playForwards, playFromDetach, playBackwards, clearPlay, togglePlayDirection}
return { playForwards, playFromDetach, playBackwards, clearPlay, togglePlayDirection }
end
local text = {
@@ -623,7 +623,7 @@ local text = {
asset.onInitialize(function()
actionsList = createActions()
for i, action in ipairs(actionsList) do
for _, action in ipairs(actionsList) do
openspace.action.registerAction(action)
end
@@ -642,7 +642,7 @@ end)
asset.meta = {
Name = "James Webb Space Telescope Timelapse",
Version = "1.0",
Version = "1.1",
Description = [[
Scripts that are scheduled to alter the speed of the simulation time so the deployment
of the James Webb Space Telescope looks smoother.

View File

@@ -0,0 +1,244 @@
local focus_newhorizons = {
Identifier = "os.missions.newhorizons.focus",
Name = "Focus on New Horizons",
Command = [[
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'NewHorizons');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Sets the focus of the camera on 'NewHorizons'",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local anchor_nh_aim_pluto = {
Identifier = "os.missions.newhorizons.aimpluto",
Name = "Anchor NH, Aim Pluto",
Command = [[
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'NewHorizons');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', 'Pluto');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil)
]],
Documentation = "Anchor at New Horizons, Aim at Pluto",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local focus_pluto = {
Identifier = "os.missions.newhorizons.pluto.focus",
Name = "Focus on Pluto",
Command = [[
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'PlutoProjection');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Sets the focus of the camera on 'Pluto'",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local focus_charon = {
Identifier = "os.missions.newhorizons.charon.focus",
Name = "Focus on Charon",
Command = [[
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Charon');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Sets the focus of the camera on 'Charon'",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local toggle_nh_imageprojection = {
Identifier = "os.missions.newhorizons.toggleimageprojection",
Name = "Toggle NH Image Projection",
Command = [[
local enabled = openspace.getPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.PerformProjection');
openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.PerformProjection', not enabled);
openspace.setPropertyValue('Scene.CharonProjection.Renderable.ProjectionComponent.PerformProjection', not enabled);
]],
Documentation = "Toggles New Horizons image projection",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local clear_image_projections = {
Identifier = "os.missions.newhorizons.clearimageprojections",
Name = "Clear image projections",
Command = [[
openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.ClearAllProjections', true);
openspace.setPropertyValue('Scene.CharonProjection.Renderable.ProjectionComponent.ClearAllProjections', true);
]],
Documentation = "Removes all image projections from Pluto and Charon",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local approach_time_and_projections = {
Identifier = "os.missions.newhorizons.approach",
Name = "Reset time and projections",
Command = [[
openspace.time.setTime('2015-07-14T09:00:00.00');
openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.ClearAllProjections', true);
openspace.setPropertyValue('Scene.CharonProjection.Renderable.ProjectionComponent.ClearAllProjections', true);
]],
Documentation = "Jumps to the 14th of July 2015 at 0900 UTC and clears all projections",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local increase_hightmap_pluto = {
Identifier = "os.missions.newhorizons.pluto.increasehightmap",
Name = "Pluto HeightExaggeration +",
Command = [[
openspace.setPropertyValueSingle("Scene.PlutoProjection.Renderable.HeightExaggeration", openspace.getPropertyValue("Scene.PlutoProjection.Renderable.HeightExaggeration") + 5000);
]],
Documentation = "Increases the height map exaggeration on Pluto",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local decrease_hightmap_pluto = {
Identifier = "os.missions.newhorizons.pluto.decreasehightmap",
Name = "Pluto HeightExaggeration -",
Command = [[
openspace.setPropertyValueSingle("Scene.PlutoProjection.Renderable.HeightExaggeration", openspace.getPropertyValue("Scene.PlutoProjection.Renderable.HeightExaggeration") - 5000);
]],
Documentation = "Decreases the height map exaggeration on Pluto",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local increase_hightmap_charon = {
Identifier = "os.missions.newhorizons.charon.increasehightmap",
Name = "Charon HeightExaggeration +",
Command = [[
openspace.setPropertyValueSingle("Scene.CharonProjection.Renderable.HeightExaggeration", openspace.getPropertyValue("Scene.CharonProjection.Renderable.HeightExaggeration") + 5000);
]],
Documentation = "Increases the height map exaggeration on Charon",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local decrease_hightmap_charon = {
Identifier = "os.missions.newhorizons.charon.decreasehightmap",
Name = "Charon HeightExaggeration -",
Command = [[
openspace.setPropertyValueSingle("Scene.CharonProjection.Renderable.HeightExaggeration", openspace.getPropertyValue("Scene.CharonProjection.Renderable.HeightExaggeration") - 5000);
]],
Documentation = "Decreases the height map exaggeration on Charon",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local toggle_pluto_trail = {
Identifier = "os.missions.newhorizons.pluto.toggletrail",
Name = "Toggle Pluto Trail",
Command = [[
openspace.setPropertyValueSingle('Scene.PlutoBarycentricTrail.Renderable.Enabled', not openspace.getPropertyValue('Scene.PlutoBarycentricTrail.Renderable.Enabled'));
]],
Documentation = "Toggles the visibility of the trail behind Pluto",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local toggle_pluto_labels = {
Identifier = "os.missions.newhorizons.pluto.togglelabels",
Name = "Toggle Pluto Labels",
Command = [[
local list = {"Scene.PlutoText.Renderable.Enabled", "Scene.CharonText.Renderable.Enabled", "Scene.HydraText.Renderable.Enabled", "Scene.NixText.Renderable.Enabled", "Scene.KerberosText.Renderable.Enabled", "Scene.StyxText.Renderable.Enabled"};
for _,v in pairs(list) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v))
end
]],
Documentation = "Toggles the visibility of the text labels of Pluto, Charon, Hydra, Nix, Kerberos, and Styx",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local toggle_nh_labels = {
Identifier = "os.missions.newhorizons.togglelabels",
Name = "Toggle New Horizons Labels",
Command = [[
local v = openspace.getPropertyValue("Scene.Labels.Renderable.Opacity");
if v <= 0.5 then
openspace.setPropertyValueSingle("Scene.Labels.Renderable.Opacity",1.0,2.0)
else
openspace.setPropertyValueSingle("Scene.Labels.Renderable.Opacity",0.0,2.0)
end
]],
Documentation = "Toggles the visibility of the labels for the New Horizons instruments",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local toggle_shadows = {
Identifier = "os.missions.newhorizons.toggleshadows",
Name = "Toggle Shadows",
Command = [[
openspace.setPropertyValueSingle('Scene.PlutoShadow.Renderable.Enabled', not openspace.getPropertyValue('Scene.PlutoShadow.Renderable.Enabled'));
openspace.setPropertyValueSingle('Scene.CharonShadow.Renderable.Enabled', not openspace.getPropertyValue('Scene.CharonShadow.Renderable.Enabled'));
]],
Documentation = "Toggles the visibility of the shadow visualization of Pluto and Charon",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
local toggle_nh_trail = {
Identifier = "os.missions.newhorizons.toggletrail",
Name = "Toggle NH Trail",
Command = [[
openspace.setPropertyValueSingle('Scene.NewHorizonsTrailPluto.Renderable.Enabled', not openspace.getPropertyValue('Scene.NewHorizonsTrailPluto.Renderable.Enabled'));
]],
Documentation = "Toggles the trail of New Horizons",
GuiPath = "/Missions/New Horizons",
isLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(focus_newhorizons)
openspace.action.registerAction(anchor_nh_aim_pluto)
openspace.action.registerAction(focus_pluto)
openspace.action.registerAction(focus_charon)
openspace.action.registerAction(toggle_nh_imageprojection)
openspace.action.registerAction(clear_image_projections)
openspace.action.registerAction(approach_time_and_projections)
openspace.action.registerAction(decrease_hightmap_pluto)
openspace.action.registerAction(increase_hightmap_charon)
openspace.action.registerAction(decrease_hightmap_charon)
openspace.action.registerAction(toggle_pluto_trail)
openspace.action.registerAction(toggle_pluto_labels)
openspace.action.registerAction(toggle_nh_labels)
openspace.action.registerAction(toggle_shadows)
openspace.action.registerAction(toggle_nh_trail)
openspace.action.registerAction(increase_hightmap_pluto)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(increase_hightmap_pluto)
openspace.action.removeAction(toggle_nh_trail)
openspace.action.removeAction(toggle_shadows)
openspace.action.removeAction(toggle_nh_labels)
openspace.action.removeAction(toggle_pluto_labels)
openspace.action.removeAction(toggle_pluto_trail)
openspace.action.removeAction(decrease_hightmap_charon)
openspace.action.removeAction(increase_hightmap_charon)
openspace.action.removeAction(decrease_hightmap_pluto)
openspace.action.removeAction(approach_time_and_projections)
openspace.action.removeAction(clear_image_projections)
openspace.action.removeAction(toggle_nh_imageprojection)
openspace.action.removeAction(focus_charon)
openspace.action.removeAction(focus_pluto)
openspace.action.removeAction(anchor_nh_aim_pluto)
openspace.action.removeAction(focus_newhorizons)
end)
asset.meta = {
Name = "New Horizons actions",
Version = "1.0",
Description = "Actions for the New Horizons mission",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -8,6 +8,8 @@ asset.require("./charon")
asset.require("./othermoons")
asset.require("./actions")
local mission = asset.localResource("newhorizons.mission")
local missionName

View File

@@ -0,0 +1,113 @@
local focus_osirisrex = {
Identifier = "os.missions.osirisrex.focus",
Name = "Focus on OsirisRex",
Command = [[
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'OsirisRex');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Sets the focus of the camera on 'OsirisRex'",
GuiPath = "/Missions/Osiris Rex",
isLocal = false
}
local focus_bennu = {
Identifier = "os.missions.osirisrex.bennu.focus",
Name = "Focus on Bennu",
Command = [[
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'BennuBarycenter');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Sets the focus of the camera on 'Bennu'",
GuiPath = "/Missions/Osiris Rex",
isLocal = false
}
local bennu_approach_time = {
Identifier = "os.missions.osirisrex.setup.bennuapproach",
Name = "Set Bennu approach time",
Command = [[
openspace.printInfo('Set time: Approach');
openspace.time.setTime('2018-SEP-11 21:31:01.183');
]],
Documentation = "Sets the time to the approach at Bennu",
GuiPath = "/Missions/Osiris Rex",
isLocal = false
}
local bennu_survey_time = {
Identifier = "os.missions.osirisrex.setup.bennusurvey",
Name = "Set Bennu survey time",
Command = [[
openspace.printInfo('Set time: Preliminary Survey');
openspace.time.setTime('2018-NOV-20 01:13:12.183');
]],
Documentation = "Sets the time to the preliminary survey of Bennu",
GuiPath = "/Missions/Osiris Rex",
isLocal = false
}
local bennu_event_b = {
Identifier = "os.missions.osirisrex.setup.bennueventb",
Name = "Set orbital B event time",
Command = [[
openspace.printInfo('Set time: Orbital B');
openspace.time.setTime('2019-APR-08 10:35:27.186');
]],
Documentation = "Sets the time to the orbital B event",
GuiPath = "/Missions/Osiris Rex",
isLocal = false
}
local bennu_recon_event = {
Identifier = "os.missions.osirisrex.setup.bennureconevent",
Name = "Set recon event time",
Command = [[
openspace.printInfo('Set time: Recon');
openspace.time.setTime('2019-MAY-25 03:50:31.195');
]],
Documentation = "Sets the time to the recon event",
GuiPath = "/Missions/Osiris Rex",
isLocal = false
}
local toggle_sun_marker = {
Identifier = "os.missions.osirisrex.togglesunmarker",
Name = "Toggle Sun marker",
Command = [[
openspace.setPropertyValueSingle('Scene.SunMarker.Renderable.Enabled', not openspace.getPropertyValue('Scene.SunMarker.Renderable.Enabled'));
]],
Documentation = "Toggles the visibility of the text marking the location of the Sun",
GuiPath = "/Missions/Osiris Rex",
isLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(focus_osirisrex)
openspace.action.registerAction(focus_bennu)
openspace.action.registerAction(bennu_approach_time)
openspace.action.registerAction(bennu_survey_time)
openspace.action.registerAction(bennu_event_b)
openspace.action.registerAction(bennu_recon_event)
openspace.action.registerAction(toggle_sun_marker)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(toggle_sun_marker)
openspace.action.removeAction(bennu_recon_event)
openspace.action.removeAction(bennu_event_b)
openspace.action.removeAction(bennu_survey_time)
openspace.action.removeAction(bennu_approach_time)
openspace.action.removeAction(focus_bennu)
openspace.action.removeAction(focus_osirisrex)
end)
asset.meta = {
Name = "OsirisRex Actions",
Version = "1.0",
Description = "Actions related to the OsirisRex mission",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -116,7 +116,7 @@ local Rexis = {
}
local PolyCamFov = {
Identifier = "POLYCAM FOV",
Identifier = "POLYCAM_FOV",
Parent = PolyCam.Identifier,
Renderable = {
Type = "RenderableFov",
@@ -171,7 +171,7 @@ local nodes = {
}
asset.onInitialize(function()
for i, node in ipairs(nodes) do
for _, node in ipairs(nodes) do
openspace.addSceneGraphNode(node)
end
end)

View File

@@ -5,6 +5,7 @@ asset.require("./trail")
asset.require("scene/solarsystem/sun/marker")
asset.require("./script_schedule")
asset.require("./actions")
local mission = asset.localResource("osirisrex.mission")
local missionName

View File

@@ -0,0 +1,34 @@
local setup_perseverance = {
Identifier = "os.missions.perseverance.setup",
Name = "Setup and Goto Perseverance",
Command = [[
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -1685.5);
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Settings.Offset', -1686.0);
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.MDEM200M.Settings.Offset', -1686);
openspace.time.setPause(true);
openspace.time.setTime('2021 FEB 18 20:32:16');
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Enabled', true);
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.HiRISE-LS.Enabled', true);
openspace.navigation.setNavigationState({Anchor = 'Perseverance',Pitch = 0.567457E-4,Position = { 1.240506E1,-1.369270E1,-2.423553E0 },ReferenceFrame = 'Root',Up = { 0.441211E0,0.247019E0,0.862737E0 },Yaw = -0.446853E-4});
]],
Documentation = "Sets time and layers for Perseverance landing",
GuiPath = "/Missions/Perseverance",
isLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(setup_perseverance)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(setup_perseverance)
end)
asset.meta = {
Name = "Perseverance Actions",
Version = "1.0",
Description = "Actions related to the Perseverance mission",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -1,2 +1,5 @@
asset.require("./model")
asset.require("./trail")
asset.require("./actions")
asset.require("scene/solarsystem/planets/mars/mars")
asset.require("scene/solarsystem/planets/mars/default_layers")

View File

@@ -131,13 +131,58 @@ local Trail67P = {
}
}
-- actions
local focus_67p = {
Identifier = "os.missions.rosetta.67p.focus",
Name = "Focus on 67P",
Command = [[
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', '67P');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Sets the focus of the camera on 67P",
GuiPath = "/Missions/Rosetta",
isLocal = false
}
local clear_image_projections_67p = {
Identifier = "os.missions.rosetta.67p.clearimageprojections",
Name = "Clear 67P projections",
Command = [[
openspace.setPropertyValue('Scene.67P.Renderable.ProjectionComponent.ClearAllProjections', true);
]],
Documentation = "Removes all image projections from 67P",
GuiPath = "/Missions/Rosetta",
isLocal = false
}
local toggle_67p_projection = {
Identifier = "os.missions.rosetta.toggle67pprojection",
Name = "Toggle 67P projection",
Command = [[
openspace.setPropertyValueSingle('Scene.67P.Renderable.ProjectionComponent.PerformProjection', not openspace.getPropertyValue('Scene.67P.Renderable.ProjectionComponent.PerformProjection'));
]],
Documentation = "Enables or disables the image projection on 67P",
GuiPath = "/Missions/Rosetta",
isLocal = false
}
asset.onInitialize(function()
openspace.addSceneGraphNode(Barycenter)
openspace.addSceneGraphNode(Comet67P)
openspace.addSceneGraphNode(Trail67P)
openspace.action.registerAction(focus_67p)
openspace.action.registerAction(clear_image_projections_67p)
openspace.action.registerAction(toggle_67p_projection)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(toggle_67p_projection)
openspace.action.removeAction(clear_image_projections_67p)
openspace.action.removeAction(focus_67p)
openspace.removeSceneGraphNode(Trail67P)
openspace.removeSceneGraphNode(Comet67P)
openspace.removeSceneGraphNode(Barycenter)

View File

@@ -0,0 +1,30 @@
local toggle_outer_planetary_trails = {
Identifier = "os.missions.rosetta.toggleouterplanetarytrails",
Name = "Toggle outer planetary trails",
Command = [[
local list = openspace.getProperty('{planetTrail_giants}.Renderable.Enabled');
for _,v in pairs(list) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v))
end
]],
Documentation = "Toggles the visibility of all trails further from the Sun than 67P",
GuiPath = "/Missions/Rosetta",
isLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(toggle_outer_planetary_trails)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(toggle_outer_planetary_trails)
end)
asset.meta = {
Name = "Rosetta actions",
Version = "1.0",
Description = "Actions related to the rosetta mission",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -2,7 +2,6 @@ local sun = asset.require("scene/solarsystem/sun/sun")
local sunTransforms = asset.require("scene/solarsystem/sun/transforms")
local transforms = asset.require("./67p")
local models = asset.syncedResource({
Name = "Rosetta Models",
Type = "HttpSynchronization",
@@ -556,13 +555,70 @@ local nodes = {
PhilaeTrail
}
-- actions
local focus_rosetta = {
Identifier = "os.missions.rosetta.focus",
Name = "Focus on Rosetta",
Command = [[
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Rosetta');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Sets the focus of the camera on Rosetta",
GuiPath = "/Missions/Rosetta",
isLocal = false
}
local setup_lander_release_time = {
Identifier = "os.missions.rosetta.setup.landerrelease",
Name = "Set lander release time",
Command = [[
openspace.time.setTime('2014-11-12T08:20:00.00');
]],
Documentation = "Jumps to the time when the Philae lander is released",
GuiPath = "/Missions/Rosetta",
isLocal = false
}
local toggle_image_plane = {
Identifier = "os.missions.rosetta.toggleimageplane",
Name = "Toggle image plane",
Command = [[
openspace.setPropertyValueSingle('Scene.ImagePlaneRosetta.Renderable.Enabled', not openspace.getPropertyValue('Scene.ImagePlaneRosetta.Renderable.Enabled'));
]],
Documentation = "Toggles the visibility of the free floating image plane",
GuiPath = "/Missions/Rosetta",
isLocal = false
}
local toggle_philae_trail = {
Identifier = "os.mission.rosetta.togglephilaetrail",
Name = "Toggle Philae trail",
Command = [[
openspace.setPropertyValueSingle('Scene.PhilaeTrail.Renderable.Enabled', not openspace.getPropertyValue('Scene.PhilaeTrail.Renderable.Enabled'));
]],
Documentation = "Toggles the visibility of Philae's trail",
GuiPath = "/Missions/Rosetta",
isLocal = false
}
asset.onInitialize(function ()
for i, node in ipairs(nodes) do
for _, node in ipairs(nodes) do
openspace.addSceneGraphNode(node)
end
openspace.action.registerAction(focus_rosetta)
openspace.action.registerAction(setup_lander_release_time)
openspace.action.registerAction(toggle_image_plane)
openspace.action.registerAction(toggle_philae_trail)
end)
asset.onDeinitialize(function ()
openspace.action.removeAction(toggle_philae_trail)
openspace.action.removeAction(toggle_image_plane)
openspace.action.removeAction(setup_lander_release_time)
openspace.action.removeAction(focus_rosetta)
for i = #nodes, 1, -1 do
openspace.removeSceneGraphNode(nodes[i])
end

View File

@@ -0,0 +1,86 @@
local jupiter_approach = {
Identifier = "os.missions.voyager.setup.jupiterapproach",
Name = "Set Jupiter Approach",
Command = [[
openspace.time.setTime('1979-01-20T01:32:07.914')
]],
Documentation = "Sets the time for Voyager's approach to Jupiter",
GuiPath = "/Missions/Voyager",
isLocal = false
}
local saturn_approach = {
Identifier = "os.missions.voyager.setup.saturnapproach",
Name = "Set Saturn Approach",
Command = [[
openspace.time.setTime('1980-10-20T07:43:42.645');
]],
Documentation = "Sets the time for Voyager's approach to Saturn",
GuiPath = "/Missions/Voyager",
isLocal = false
}
local focus_jupiter = {
Identifier = "os.missions.voyager.jupiter.focus",
Name = "Focus on Jupiter",
Command = [[
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Jupiter');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');
]],
Documentation = "Set the camera focus to Jupiter",
GuiPath = "/Missions/Voyager",
isLocal = false
}
local focus_saturn = {
Identifier = "os.missions.voyager.saturn.focus",
Name = "Focus on Saturn",
Command = [[
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Saturn');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');
]],
Documentation = "Sets the camera focus on Saturn",
GuiPath = "/Missions/Voyager",
isLocal = false
}
local toggle_minormoon_trails = {
Identifier = "os.missions.voyager.toggleminormoontrails",
Name = "Toggle minor trails",
Command = [[
local list = openspace.getProperty('{moonTrail_minor}.Renderable.Enabled');
for _,v in pairs(list) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v))
end
]],
Documentation = "Toggles the trails of the minor moons",
GuiPath = "/Trails",
isLocal = false
}
asset.onInitialize(function()
openspace.action.registerAction(jupiter_approach)
openspace.action.registerAction(saturn_approach)
openspace.action.registerAction(focus_jupiter)
openspace.action.registerAction(focus_saturn)
openspace.action.registerAction(toggle_minormoon_trails)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(toggle_minormoon_trails)
openspace.action.removeAction(focus_saturn)
openspace.action.removeAction(focus_jupiter)
openspace.action.removeAction(saturn_approach)
openspace.action.removeAction(jupiter_approach)
end)
asset.meta = {
Name = "Voyager Actions",
Version = "1.0",
Description = "Actions related to the Voyager 1 and 2 missions",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -231,13 +231,34 @@ local nodes = {
VoyagerTrailCruiseSaturnInf
}
-- Actions
local focus_voyager1 = {
Identifier = "os.missions.voyager.v1.focus",
Name = "Focus on Voyager 1",
Command = [[
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Voyager_1');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '')
]],
Documentation = "Set camera focus to Voyager 1",
GuiPath = "/Missions/Voyager",
isLocal = false
}
-- Initialize
asset.onInitialize(function()
for i, node in ipairs(nodes) do
openspace.addSceneGraphNode(node)
end
openspace.action.registerAction(focus_voyager1)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(focus_voyager1)
for i = #nodes, 1, -1 do
openspace.removeSceneGraphNode(nodes[i])
end

View File

@@ -331,16 +331,38 @@ local nodes = {
VoyagerTrailCruiseNeptuneInf
}
-- Actions
local focus_voyager2 = {
Identifier = "os.missions.voyager.v2.focus",
Name = "Focus on Voyager 2",
Command = [[
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Voyager_2');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '')
]],
Documentation = "Set camera focus to Voyager 2",
GuiPath = "/Missions/Voyager",
isLocal = false
}
-- Initialize
asset.onInitialize(function()
for i, node in ipairs(nodes) do
openspace.addSceneGraphNode(node)
end
openspace.action.registerAction(focus_voyager2)
end)
asset.onDeinitialize(function()
for i = #nodes, 1, -1 do
openspace.removeSceneGraphNode(nodes[i])
end
openspace.action.removeAction(focus_voyager2)
end)
for i, node in ipairs(nodes) do

View File

@@ -73,12 +73,45 @@ local EarthLabel = {
}
}
local focus_earth = {
Identifier = "os.solarsystem.earth.focus",
Name = "Focus on Earth",
Command = [[
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Earth');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Set camera focus on the Earth",
GuiPath = "/Solar System/Earth",
isLocal = false
}
local toggle_earth_satellitetrails = {
Identifier = "os.solarsystem.earth.togglesatellitetrails",
Name = "Toggle satellite trails",
Command = [[
local list = openspace.getProperty('{earth_satellites}.Renderable.Enabled');
for _,v in pairs(list) do
openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v))
end
]],
Documentation = "Toggle trails on or off for satellites around Earth",
GuiPath = "/Solar System/Earth",
isLocal = false
}
asset.onInitialize(function()
openspace.addSceneGraphNode(Earth)
openspace.addSceneGraphNode(EarthLabel)
openspace.action.registerAction(focus_earth)
openspace.action.registerAction(toggle_earth_satellitetrails)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(toggle_earth_satellitetrails)
openspace.action.removeAction(focus_earth)
openspace.removeSceneGraphNode(EarthLabel)
openspace.removeSceneGraphNode(Earth)
end)
@@ -90,7 +123,7 @@ asset.export(EarthLabel)
asset.meta = {
Name = "Earth",
Version = "1.0",
Version = "1.1",
Description = "Earth is a special planet with special needs",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",

View File

@@ -81,13 +81,42 @@ local MoonLabel = {
}
}
local focus_moon = {
Identifier = "os.solarsystem.earth.moon.focus",
Name = "Focus on Moon",
Command = [[
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Moon');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Set camera focus on the Moon",
GuiPath = "/Solar System/Earth/Moon",
isLocal = false
}
local toggle_moon_shading = {
Identifier = "os.solarsystem.earth.moon.toggleshading",
Name = "Toggle Moon shading",
Command = [[
openspace.setPropertyValueSingle('Scene.Moon.Renderable.PerformShading', not openspace.getPropertyValue('Scene.Moon.Renderable.PerformShading'));
]],
Documentation = "Toggles the shading of the Moon",
GuiPath = "/Solar System/Earth/Moon",
isLocal = false
}
asset.onInitialize(function()
openspace.addSceneGraphNode(Moon)
openspace.addSceneGraphNode(MoonLabel)
openspace.action.registerAction(focus_moon)
openspace.action.registerAction(toggle_moon_shading)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(toggle_moon_shading)
openspace.action.removeAction(focus_moon)
openspace.removeSceneGraphNode(MoonLabel)
openspace.removeSceneGraphNode(Moon)
end)
@@ -98,8 +127,8 @@ asset.export(Moon)
asset.meta = {
Name = "Moon",
Version = "1.1",
Description = "Moon globe with labels",
Version = "1.2",
Description = "Moon globe with labels and actions",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"

View File

@@ -116,6 +116,19 @@ local IssLabel = {
}
}
local focus_iss = {
Identifier = "os.solarsystem.earth.iss.focus",
Name = "Focus on ISS",
Command = [[
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'ISS');
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);
]],
Documentation = "Refocuses the camera on the ISS",
GuiPath = "/Solar System/Earth",
isLocal = false
}
asset.onInitialize(function ()
local i = openspace.space.readKeplerFile(omm .. "ISS.txt", "OMM")
issTrail.Renderable.Period = i[0].Period / (60 * 60 * 24)
@@ -125,9 +138,12 @@ asset.onInitialize(function ()
openspace.setPropertyValueSingle("Scene.ISSModel.Rotation.yAxisInvertObject", true)
openspace.addSceneGraphNode(issTrail)
openspace.action.registerAction(focus_iss)
end)
asset.onDeinitialize(function ()
openspace.action.removeAction(focus_iss)
openspace.removeSceneGraphNode(issTrail)
openspace.removeSceneGraphNode(parentNode)
openspace.removeSceneGraphNode(iss)
@@ -140,7 +156,7 @@ asset.export(iss)
asset.meta = {
Name = "ISS",
Version = "1.0",
Version = "1.1",
Description = [[Model and Trail for ISS. Model from NASA 3D models, trail from
Celestrak]],
Author = "OpenSpace Team",

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341
local parentIdentifier = transforms.JupiterBarycenter.Identifier
local parentSpice = "JUPITER BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_ananke", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_ananke", "moon_minor", "moon_minor_jupiter" }
local trailColor = { 0.4, 0.3, 0.01 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_jupiter",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_jupiter"
}
local anankeGroup = {

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341
local parentIdentifier = transforms.JupiterBarycenter.Identifier
local parentSpice = "JUPITER BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_carme", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_carme", "moon_minor", "moon_minor_jupiter" }
local trailColor = { 0.4, 0.3, 0.01 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_jupiter",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_jupiter"
}
local carmeGroup = {

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341
local parentIdentifier = transforms.JupiterBarycenter.Identifier
local parentSpice = "JUPITER BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_carpo", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_carpo", "moon_minor", "moon_minor_jupiter" }
local trailColor = { 0.4, 0.3, 0.01 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_jupiter",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_jupiter"
}
local carpoGroup = {

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341
local parentIdentifier = transforms.JupiterBarycenter.Identifier
local parentSpice = "JUPITER BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_himalia", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_himalia", "moon_minor", "moon_minor_jupiter" }
local trailColor = { 0.4, 0.3, 0.01 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_jupiter",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_jupiter"
}
local himaliaGroup = {

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341
local parentIdentifier = transforms.JupiterBarycenter.Identifier
local parentSpice = "JUPITER BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_inner", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_inner", "moon_minor", "moon_minor_jupiter" }
local trailColor = { 0.4, 0.3, 0.01 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_jupiter",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_jupiter"
}
local innerMoons = {

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341
local parentIdentifier = transforms.JupiterBarycenter.Identifier
local parentSpice = "JUPITER BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_other", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_other", "moon_minor", "moon_minor_jupiter" }
local trailColor = { 0.4, 0.3, 0.01 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_jupiter",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_jupiter"
}
local otherGroups = {

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341
local parentIdentifier = transforms.JupiterBarycenter.Identifier
local parentSpice = "JUPITER BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_pasiphae", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_pasiphae", "moon_minor", "moon_minor_jupiter" }
local trailColor = { 0.4, 0.3, 0.01 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_jupiter",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_jupiter"
}
local pasiphaeGroup = {
{

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341
local parentIdentifier = transforms.JupiterBarycenter.Identifier
local parentSpice = "JUPITER BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_themisto", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_themisto", "moon_minor", "moon_minor_jupiter" }
local trailColor = { 0.4, 0.3, 0.01 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_jupiter",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_jupiter"
}
local themistoGroup = {
{

View File

@@ -7,10 +7,68 @@ asset.require("./minor/other_groups")
asset.require("./minor/pasiphae_group")
asset.require("./minor/themisto_group")
local minormoons_on = {
Identifier = "os.solarsystem.jupiter.minormoonson",
Name = "Turn ON minor moons and trails",
Command = [[
local trails = openspace.getProperty('{moonTrail_minor_jupiter}.Renderable.Enabled');
local trails_fade = openspace.getProperty('{moonTrail_minor_jupiter}.Renderable.Fade');
local moons = openspace.getProperty('{moon_minor_jupiter}.Renderable.Enabled');
local moons_fade = openspace.getProperty('{moon_minor_jupiter}.Renderable.Fade');
for i, v in pairs(trails_fade) do
openspace.setPropertyValueSingle(trails[i], true)
openspace.setPropertyValueSingle(v, 1, 2, 'Linear')
end
for i, v in pairs(moons_fade) do
openspace.setPropertyValueSingle(moons[i], true)
openspace.setPropertyValueSingle(v, 1, 2, 'Linear')
end
]],
Documentation = "Turn ON Jupiter's minor moons and their trails",
GuiPath = "/Solar System/Jupiter",
IsLocal = true
}
local minormoons_off = {
Identifier = "os.solarsystem.jupiter.minormoonsoff",
Name = "Turn OFF minors moon and trails",
Command = [[
local trails = openspace.getProperty('{moonTrail_minor_jupiter}.Renderable.Enabled');
local trails_fade = openspace.getProperty('{moonTrail_minor_jupiter}.Renderable.Fade');
local moons = openspace.getProperty('{moon_minor_jupiter}.Renderable.Enabled');
local moons_fade = openspace.getProperty('{moon_minor_jupiter}.Renderable.Fade');
for i, v in pairs(trails_fade) do
openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. trails[i] .. "', false)" )
end
for i, v in pairs(moons_fade) do
openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. moons[i] .. "', false)" )
end
]],
Documentation = "Turn OFF Jupiter's minor moons and their trails",
GuiPath = "/Solar System/Jupiter",
IsLocal = true
}
asset.onInitialize(function()
openspace.action.registerAction(minormoons_on)
openspace.action.registerAction(minormoons_off)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(minormoons_off)
openspace.action.removeAction(minormoons_on)
end)
asset.meta = {
Name = "Jupiter Minor Moons",
Version = "1.0",
Version = "1.1",
Description = [[Meta asset containing eight moon groups: Ananke, Carme, Carpo, Himalia,
Pasiphae, Themisto, Inner, and Other]],
Author = "OpenSpace Team",

View File

@@ -9,13 +9,14 @@ local kernel088 = kernels.nep088
local parentIdentifier = transforms.NeptuneBarycenter.Identifier
local parentSpice = "NEPTUNE BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_inner", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_inner", "moon_minor", "moon_minor_neptune" }
local trailColor = { 0.2, 0.5, 0.75 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_neptune",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_neptune"
}
local innerMoons = {

View File

@@ -9,13 +9,14 @@ local kernel088 = kernels.nep088
local parentIdentifier = transforms.NeptuneBarycenter.Identifier
local parentSpice = "NEPTUNE BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_irregular_prograde", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_irregular_prograde", "moon_minor", "moon_minor_neptune" }
local trailColor = { 0.2, 0.5, 0.75 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_neptune",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_neptune"
}
local irregularProgradeMoons = {

View File

@@ -8,13 +8,14 @@ local kernel086 = kernels.nep086
local parentIdentifier = transforms.NeptuneBarycenter.Identifier
local parentSpice = "NEPTUNE BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_irregular_retrograde", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_irregular_retrograde", "moon_minor", "moon_minor_neptune" }
local trailColor = { 0.2, 0.5, 0.75 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_neptune",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_neptune"
}
local irregularRetrogradeMoons = {

View File

@@ -2,10 +2,67 @@ asset.require("./inner_moons")
asset.require("./irregular_prograde_moons")
asset.require("./irregular_retrograde_moons")
local minormoons_on = {
Identifier = "os.solarsystem.neptune.minormoonson",
Name = "Turn ON minor moons and trails",
Command = [[
local trails = openspace.getProperty('{moonTrail_minor_neptune}.Renderable.Enabled');
local trails_fade = openspace.getProperty('{moonTrail_minor_neptune}.Renderable.Fade');
local moons = openspace.getProperty('{moon_minor_neptune}.Renderable.Enabled');
local moons_fade = openspace.getProperty('{moon_minor_neptune}.Renderable.Fade');
for i, v in pairs(trails_fade) do
openspace.setPropertyValueSingle(trails[i], true)
openspace.setPropertyValueSingle(v, 1, 2, 'Linear')
end
for i, v in pairs(moons_fade) do
openspace.setPropertyValueSingle(moons[i], true)
openspace.setPropertyValueSingle(v, 1, 2, 'Linear')
end
]],
Documentation = "Turn ON Neptune's minor moons and their trails",
GuiPath = "/Solar System/Neptune",
IsLocal = true
}
local minormoons_off = {
Identifier = "os.solarsystem.neptune.minormoonsoff",
Name = "Turn OFF minors moon and trails",
Command = [[
local trails = openspace.getProperty('{moonTrail_minor_neptune}.Renderable.Enabled');
local trails_fade = openspace.getProperty('{moonTrail_minor_neptune}.Renderable.Fade');
local moons = openspace.getProperty('{moon_minor_neptune}.Renderable.Enabled');
local moons_fade = openspace.getProperty('{moon_minor_neptune}.Renderable.Fade');
for i, v in pairs(trails_fade) do
openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. trails[i] .. "', false)" )
end
for i, v in pairs(moons_fade) do
openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. moons[i] .. "', false)" )
end
]],
Documentation = "Turn OFF Neptune's minor moons and their trails",
GuiPath = "/Solar System/Neptune",
IsLocal = true
}
asset.onInitialize(function()
openspace.action.registerAction(minormoons_on)
openspace.action.registerAction(minormoons_off)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(minormoons_off)
openspace.action.removeAction(minormoons_on)
end)
asset.meta = {
Name = "Neptune Minor Moons",
Version = "1.0",
Version = "1.1",
Description = [[Meta asset containing 3 moon groups: inner_moons,
irregular_prograde_moons, and irregular_retrograde_moons]],
Author = "OpenSpace Team",

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").sat368
local parentIdentifier = transforms.SaturnBarycenter.Identifier
local parentSpice = "SATURN BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_gallic", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_gallic", "moon_minor", "moon_minor_saturn" }
local trailColor = { 0.5, 0.3, 0.3 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_saturn",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_saturn"
}
local gallicGroup = {

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").sat368
local parentIdentifier = transforms.SaturnBarycenter.Identifier
local parentSpice = "SATURN BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_inuit", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_inuit", "moon_minor", "moon_minor_saturn" }
local trailColor = { 0.5, 0.3, 0.3 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_saturn",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_saturn"
}
local inuitGroup = {

View File

@@ -8,13 +8,14 @@ local kernel375 = kernels.sat375
local parentIdentifier = transforms.SaturnBarycenter.Identifier
local parentSpice = "SATURN BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_norse", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_norse", "moon_minor", "moon_minor_saturn" }
local trailColor = { 0.5, 0.3, 0.3 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_saturn",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_saturn"
}
local norseGroup = {

View File

@@ -8,13 +8,14 @@ local kernel393 = kernels.sat393
local parentIdentifier = transforms.SaturnBarycenter.Identifier
local parentSpice = "SATURN BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_other", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_other", "moon_minor", "moon_minor_saturn" }
local trailColor = { 0.5, 0.3, 0.3 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_saturn",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_saturn"
}
local otherGroup = {

View File

@@ -16,13 +16,14 @@ local kernels = {
local parentIdentifier = transforms.SaturnBarycenter.Identifier
local parentSpice = "SATURN BARYCENTER"
local guiPath = "/Solar System/Planets/Saturn/Moons/Shepherd Moons"
local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_shepherd", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_shepherd", "moon_minor", "moon_minor_saturn" }
local trailColor = { 0.5, 0.3, 0.3 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_saturn",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_saturn"
}
local shepherdGroup = {

View File

@@ -4,10 +4,67 @@ asset.require("./minor/norse_group")
asset.require("./minor/other_group")
asset.require("./minor/shepherd_group")
local minormoons_on = {
Identifier = "os.solarsystem.saturn.minormoonson",
Name = "Turn ON minor moons and trails",
Command = [[
local trails = openspace.getProperty('{moonTrail_minor_saturn}.Renderable.Enabled');
local trails_fade = openspace.getProperty('{moonTrail_minor_saturn}.Renderable.Fade');
local moons = openspace.getProperty('{moon_minor_saturn}.Renderable.Enabled');
local moons_fade = openspace.getProperty('{moon_minor_saturn}.Renderable.Fade');
for i, v in pairs(trails_fade) do
openspace.setPropertyValueSingle(trails[i], true)
openspace.setPropertyValueSingle(v, 1, 2, 'Linear')
end
for i, v in pairs(moons_fade) do
openspace.setPropertyValueSingle(moons[i], true)
openspace.setPropertyValueSingle(v, 1, 2, 'Linear')
end
]],
Documentation = "Turn ON Saturn's minor moons and their trails",
GuiPath = "/Solar System/Saturn",
IsLocal = true
}
local minormoons_off = {
Identifier = "os.solarsystem.saturn.minormoonsoff",
Name = "Turn OFF minors moon and trails",
Command = [[
local trails = openspace.getProperty('{moonTrail_minor_saturn}.Renderable.Enabled');
local trails_fade = openspace.getProperty('{moonTrail_minor_saturn}.Renderable.Fade');
local moons = openspace.getProperty('{moon_minor_saturn}.Renderable.Enabled');
local moons_fade = openspace.getProperty('{moon_minor_saturn}.Renderable.Fade');
for i, v in pairs(trails_fade) do
openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. trails[i] .. "', false)" )
end
for i, v in pairs(moons_fade) do
openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. moons[i] .. "', false)" )
end
]],
Documentation = "Turn OFF Saturn's minor moons and their trails",
GuiPath = "/Solar System/Saturn",
IsLocal = true
}
asset.onInitialize(function()
openspace.action.registerAction(minormoons_on)
openspace.action.registerAction(minormoons_off)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(minormoons_off)
openspace.action.removeAction(minormoons_on)
end)
asset.meta = {
Name = "Saturn Minor Moons",
Version = "1.0",
Version = "1.1",
Description = [[Meta asset containing five moon groups: Gallic, Inuit, Norse, Shepherd
moons and Other]],
Author = "OpenSpace Team",

View File

@@ -6,14 +6,15 @@ local kernel = asset.require("./kernels").ura091
local parentIdentifier = transforms.UranusBarycenter.Identifier
local parentSpice = "URANUS BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_inner", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_inner", "moon_minor", "moon_minor_uranus" }
local trailColor = { 0.60, 0.65, 0.84 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_uranus",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_uranus"
}

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("./kernels").ura112
local parentIdentifier = transforms.UranusBarycenter.Identifier
local parentSpice = "URANUS BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_irregular_prograde", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_irregular_prograde", "moon_minor", "moon_minor_uranus" }
local trailColor = { 0.60, 0.65, 0.84 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_uranus",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_uranus"
}
local irregularMoons = {

View File

@@ -6,13 +6,14 @@ local kernel = asset.require("./kernels").ura112
local parentIdentifier = transforms.UranusBarycenter.Identifier
local parentSpice = "URANUS BARYCENTER"
local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_irregular_retrograde", "moon_minor" }
local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_irregular_retrograde", "moon_minor", "moon_minor_uranus" }
local trailColor = { 0.60, 0.65, 0.84 }
local trailTags = {
"moonTrail_solarSystem",
"moonTrail_giants",
"moonTrail_uranus",
"moonTrail_minor"
"moonTrail_minor",
"moonTrail_minor_uranus"
}
local irregularMoons = {

View File

@@ -2,10 +2,67 @@ asset.require("./inner_moons")
asset.require("./irregular_prograde_moons")
asset.require("./irregular_retrograde_moons")
local minormoons_on = {
Identifier = "os.solarsystem.uranus.minormoonson",
Name = "Turn ON minor moons and trails",
Command = [[
local trails = openspace.getProperty('{moonTrail_minor_uranus}.Renderable.Enabled');
local trails_fade = openspace.getProperty('{moonTrail_minor_uranus}.Renderable.Fade');
local moons = openspace.getProperty('{moon_minor_uranus}.Renderable.Enabled');
local moons_fade = openspace.getProperty('{moon_minor_uranus}.Renderable.Fade');
for i, v in pairs(trails_fade) do
openspace.setPropertyValueSingle(trails[i], true)
openspace.setPropertyValueSingle(v, 1, 2, 'Linear')
end
for i, v in pairs(moons_fade) do
openspace.setPropertyValueSingle(moons[i], true)
openspace.setPropertyValueSingle(v, 1, 2, 'Linear')
end
]],
Documentation = "Turn ON Uranus's minor moons and their trails",
GuiPath = "/Solar System/Uranus",
IsLocal = true
}
local minormoons_off = {
Identifier = "os.solarsystem.uranus.minormoonsoff",
Name = "Turn OFF minors moon and trails",
Command = [[
local trails = openspace.getProperty('{moonTrail_minor_uranus}.Renderable.Enabled');
local trails_fade = openspace.getProperty('{moonTrail_minor_uranus}.Renderable.Fade');
local moons = openspace.getProperty('{moon_minor_uranus}.Renderable.Enabled');
local moons_fade = openspace.getProperty('{moon_minor_uranus}.Renderable.Fade');
for i, v in pairs(trails_fade) do
openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. trails[i] .. "', false)" )
end
for i, v in pairs(moons_fade) do
openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. moons[i] .. "', false)" )
end
]],
Documentation = "Turn OFF Uranus's minor moons and their trails",
GuiPath = "/Solar System/Uranus",
IsLocal = true
}
asset.onInitialize(function()
openspace.action.registerAction(minormoons_on)
openspace.action.registerAction(minormoons_off)
end)
asset.onDeinitialize(function()
openspace.action.removeAction(minormoons_off)
openspace.action.removeAction(minormoons_on)
end)
asset.meta = {
Name = "Uranus Minor Moons",
Version = "1.0",
Version = "1.1",
Description = [[Meta asset containing three moon groups: Inner Moons, Irregular Prograde
Moons and Irregular Retrograde Moons]],
Author = "OpenSpace Team",

View File

@@ -31,7 +31,7 @@ local EUVLayer = {
}
local toggle_EUV_layer = {
Identifier = "euv_layer.toggle_EUV",
Identifier = "os.solarsystem.sun.toggleeuv",
Name = "Toggle EUV Layer",
Command = propertyHelper.invert("Scene.EUV-Layer-bastille-day-2000.Renderable.Enabled"),
Documentation = "Toggle EUV layer of sun",
@@ -54,7 +54,7 @@ asset.export(EUVLayer)
asset.meta = {
Name = "Predictive Science Inc. EUV texture sequence Bastille Days",
Version = "1.1",
Version = "1.2",
Description = [[Texture sequence of an extreme ultraviolet (EUV) simulation during,
the CME]],
Author = "CCMC, OpenSpace team",

View File

@@ -2,3 +2,5 @@ asset.require("actions/trails/toggle_all_trails");
asset.require("actions/trails/toggle_trails_planets_moons");
asset.require("actions/planets/planet_lighting");
asset.require("actions/system/undo_event_fades");
asset.require("actions/trails/toggle_all_minor_moon_trails");
asset.require("actions/trails/on_off_all_minor_moons");

View File

@@ -3,7 +3,7 @@ asset.require("./static_server")
local guiCustomization = asset.require("customization/gui")
-- Select which commit hashes to use for the frontend and backend
local frontendHash = "5011a84942cee1567565a4be250501f4453f26a2"
local frontendHash = "644f308be66309c2089bf6f94929205b24d56a8f"
local dataProvider = "data.openspaceproject.com/files/webgui"
local frontend = asset.syncedResource({

View File

@@ -1,85 +1,10 @@
{
"actions": [
{
"documentation": "Jump to right before the earthrise photo",
"gui_path": "/Missions/Apollo/8",
"identifier": "profile.setup.earthrise",
"is_local": false,
"name": "Set Earthrise time",
"script": "openspace.time.setPause(true); openspace.time.setDeltaTime(1); openspace.time.setTime('1968 DEC 24 16:37:31'); openspace.navigation.setNavigationState({Anchor = 'Apollo8', Position = { 1.494592E1, 3.236777E1, -4.171296E1 }, ReferenceFrame = 'Root', Up = { 0.960608E0, -0.212013E0, 0.179675E0 }}); openspace.setPropertyValue('*Trail.Renderable.Enabled', false);"
},
{
"documentation": "Jump to time right before Apollo 8 liftoff, with its trail enabled",
"gui_path": "/Missions/Apollo/8",
"identifier": "profile.setup.apollo8",
"is_local": false,
"name": "Set Apollo 8 launch time",
"script": "openspace.time.setTime('1968-12-21T12:51:37.00'); openspace.setPropertyValueSingle('Scene.Apollo8LaunchTrail.Renderable.Enabled', true);"
},
{
"documentation": "Toggles Moon Kaguya color layer",
"gui_path": "/Missions/Apollo",
"identifier": "profile.moon.kaguyalayer",
"is_local": false,
"name": "Toggle Kaguya layer",
"script": "openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.Kaguya_Utah.Enabled', not openspace.getPropertyValue('Scene.Moon.Renderable.Layers.ColorLayers.Kaguya_Utah.Enabled'));"
},
{
"documentation": "Toggles shading for the Moon",
"gui_path": "/Missions/Apollo",
"identifier": "profile.moon.shading",
"is_local": false,
"name": "Toggle Moon shading",
"script": "openspace.setPropertyValueSingle('Scene.Moon.Renderable.PerformShading', not openspace.getPropertyValue('Scene.Moon.Renderable.PerformShading'));"
},
{
"documentation": "Set camera focus to the Earth",
"gui_path": "/Missions/Apollo",
"identifier": "profile.focus.earth",
"is_local": false,
"name": "Focus on Earth",
"script": "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', ''); openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Earth'); openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Set camera focus to the Moon",
"gui_path": "/Missions/Apollo",
"identifier": "profile.focus.moon",
"is_local": false,
"name": "Focus on Moon",
"script": "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', ''); openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Moon'); openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Disable apollo site on moon when leaving",
"gui_path": "/Missions/Apollo",
"identifier": "profile.moon.disableapollosites",
"is_local": false,
"name": "Disable Apollo sites",
"script": "openspace.setPropertyValue('Scene.Moon.Renderable.Layers.ColorLayers.A17_*.Enabled', false); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_11.Enabled', false); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A11_M177481212_p_longlat.Enabled', false); openspace.setPropertyValueSingle('Scene.Apollo11MoonTrail.Renderable.Enabled', false); openspace.setPropertyValueSingle('Scene.Apollo11LemTrail.Renderable.Enabled', false); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_17.Enabled', false);"
},
{
"documentation": "Setup for Apollo 11 landing site",
"gui_path": "/Missions/Apollo/11",
"identifier": "profile.setup.apollo11",
"is_local": false,
"name": "Setup A11 site",
"script": "openspace.time.setTime('1969 JUL 20 20:17:40'); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_11.Enabled', true); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A11_M177481212_p_longlat.Enabled', true); openspace.setPropertyValueSingle('Scene.Moon.Renderable.TargetLodScaleFactor', 20.11); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Apollo11LemPosition'); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); openspace.setPropertyValueSingle('Scene.Apollo11MoonTrail.Renderable.Enabled', true); openspace.setPropertyValueSingle('Scene.Apollo11LemTrail.Renderable.Enabled', true);"
},
{
"documentation": "Setup for Apollo 17 landing site",
"gui_path": "/Missions/Apollo/17",
"identifier": "profile.setup.apollo17",
"is_local": false,
"name": "Setup A17 site",
"script": "openspace.time.setTime('1972 DEC 12 19:47:11'); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_travmap.BlendMode', 0.000000); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_travmap.Enabled', true); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_17.Enabled', true); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_LEM.Enabled', true); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_LEM.BlendMode', 0.000000); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_NAC_Alt_p.Enabled', true); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_NAC_Alt_p.BlendMode', 0.000000); openspace.setPropertyValueSingle('Scene.Moon.Renderable.TargetLodScaleFactor', 20.17); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Apollo17LemModel'); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_station7.BlendMode', 0.000000);"
}
],
"assets": [
"base",
"scene/solarsystem/missions/apollo/8/apollo8",
"scene/solarsystem/missions/apollo/11/apollo11",
"scene/solarsystem/missions/apollo/11/lem_flipbook",
"scene/solarsystem/missions/apollo/17/lem",
"scene/solarsystem/missions/apollo/8/apollo8",
"scene/solarsystem/missions/apollo/apollo_globebrowsing",
"scene/solarsystem/missions/apollo/17/apollo17",
"scene/solarsystem/missions/apollo/insignias_map"
],
"camera": {
@@ -113,40 +38,40 @@
],
"keybindings": [
{
"action": "profile.setup.earthrise",
"action": "os.missions.apollo8.setup.earthrise",
"key": "E"
},
{
"action": "profile.setup.apollo8",
"action": "os.missions.apollo8.setup.launch",
"key": "U"
},
{
"action": "profile.moon.kaguyalayer",
"action": "os.missions.apollo.moon.togglekaguyalayer",
"key": "K"
},
{
"action": "profile.moon.shading",
"action": "os.missions.apollo.moon.toggleshading",
"key": "S"
},
{
"action": "profile.focus.earth",
"action": "os.missions.apollo.earth.focus",
"key": "Home"
},
{
"action": "profile.focus.moon",
"action": "os.missions.apollo.moon.focus",
"key": "M"
},
{
"action": "profile.moon.disableapollosites",
"action": "os.missions.apollo17.setup.landingsite",
"key": "F7"
},
{
"action": "os.missions.apollo.moon.disableapollosites",
"key": "F9"
},
{
"action": "profile.setup.apollo11",
"action": "os.missions.apollo11.setup.landingsite",
"key": "F11"
},
{
"action": "profile.setup.apollo17",
"key": "F7"
}
],
"mark_nodes": [

View File

@@ -1,49 +1,8 @@
{
"actions": [
{
"documentation": "Reset button to start of CME",
"gui_path": "/Bastille-Day 2000",
"identifier": "bastille-day.reset_loops",
"is_local": false,
"name": "Reset button. Start of CME, no loop",
"script": "openspace.time.setTime('2000-JUL-14 10:03:00.00');openspace.scriptScheduler.clear();"
},
{
"documentation": "New loop: Restarts time at 10:03 and stops at 10:16, sets delta time to 2 min/ second (120 seconds/ second)",
"gui_path": "/Bastille-Day 2000",
"identifier": "bastille-day.short_loop",
"is_local": false,
"name": "Loop 10:03 - 10:16, at 2 min/ second",
"script": "openspace.scriptScheduler.clear();openspace.time.setDeltaTime(120);openspace.time.setTime('2000-JUL-14 10:03:00.00');EndtimeShortLoop = \"2000 JUL 14 10:16:00\";StarttimescriptSlowLoop = \"openspace.time.setTime('2000 JUL 14 10:03:00')\";openspace.scriptScheduler.loadScheduledScript(EndtimeShortLoop, StarttimescriptSlowLoop);"
},
{
"documentation": "New loop: Restarts time at 10:03 and stops at 11:00, delta time to 4 min/ second (240 seconds/ second)",
"gui_path": "/Bastille-Day 2000",
"identifier": "bastille-day.standard_loop",
"is_local": false,
"name": "Loop 10:03 - 11:00, at 4 min/ second",
"script": "StarttimescriptSlowLoop = \"openspace.time.setTime('2000 JUL 14 10:03:00')\";openspace.scriptScheduler.clear();openspace.time.setDeltaTime(240);openspace.time.setTime('2000-JUL-14 10:03:00.00');openspace.scriptScheduler.loadScheduledScript('2000 JUL 14 11:00:00', StarttimescriptSlowLoop);"
},
{
"documentation": "Fast loop: Starts from 10:03 and sets delta time to 15 min/ second (900 seconds/ second)",
"gui_path": "/Bastille-Day 2000",
"identifier": "bastille-day.fast_loop",
"is_local": false,
"name": "Loop 10:03 - 11.48, at 15 min/ second",
"script": "openspace.scriptScheduler.clear();openspace.time.setDeltaTime(900);openspace.time.setTime('2000-JUL-14 10:03:00.00');StarttimescriptFastLoop = \"openspace.time.setTime('2000 JUL 14 10:03:00')\";openspace.scriptScheduler.loadScheduledScript('2000 JUL 14 11:48:00', StarttimescriptFastLoop);"
},
{
"documentation": "Long loop: Restarts time at 09:30 and stops at 11:50, delta time to 4 min/ second (240 seconds/ second)",
"gui_path": "/Bastille-Day 2000",
"identifier": "bastille-day.long_loop",
"is_local": false,
"name": "Loop 09:30 - 13:00, at 4 min/ second",
"script": "openspace.scriptScheduler.clear();openspace.time.setDeltaTime(240);openspace.time.setTime('2000-JUL-14 09:30:00.00');StarttimescriptLongLoop = \"openspace.time.setTime('2000 JUL 14 09:30:00')\";openspace.scriptScheduler.loadScheduledScript('2000 JUL 14 13:00:00', StarttimescriptLongLoop);"
}
],
"assets": [
"base",
"dashboard/default_dashboard",
"scene/solarsystem/heliosphere/bastille_day/actions",
"scene/solarsystem/heliosphere/bastille_day/density_volume",
"scene/solarsystem/heliosphere/bastille_day/fieldlines",
"scene/solarsystem/heliosphere/bastille_day/fluxnodes",
@@ -88,59 +47,59 @@
],
"keybindings": [
{
"action": "bastille-day.reset_loops",
"action": "os.events.bastilleday.setup.startofcme",
"key": "R"
},
{
"action": "bastille-day.short_loop",
"action": "os.events.bastilleday.setup.shortloop",
"key": "CTRL+1"
},
{
"action": "bastille-day.standard_loop",
"action": "os.events.bastilleday.setup.standardloop",
"key": "CTRL+2"
},
{
"action": "bastille-day.fast_loop",
"action": "os.events.bastilleday.setup.fastloop",
"key": "CTRL+3"
},
{
"action": "bastille-day.long_loop",
"action": "os.events.bastilleday.setup.longloop",
"key": "CTRL+4"
},
{
"action": "density_volume.toggle_volume",
"action": "os.events.bastilleday.densityvolume.togglevolume",
"key": "D"
},
{
"action": "fluxnodelegend.show_legend",
"action": "os.events.bastilleday.fluxnodelegend.showlegend",
"key": "N"
},
{
"action": "fluxnodelegend.hide_legend",
"action": "os.events.bastilleday.fluxnodelegend.hidelegend",
"key": "M"
},
{
"action": "magnetogram_texture.switch_color_layer",
"action": "os.events.bastilleday.magnetogramtexture.switchcolorlayer",
"key": "I"
},
{
"action": "euv_layer.toggle_EUV",
"action": "os.solarsystem.sun.toggleeuv",
"key": "E"
},
{
"action": "fluxnodes.toggle_fluxnodes",
"action": "os.events.bastilleday.fluxnodes.togglefluxnodes",
"key": "O"
},
{
"action": "fieldlines.toggle_fieldlines",
"action": "os.events.bastilleday.fieldlines.togglefieldlines",
"key": "U"
},
{
"action": "fluxnodescutplane.toggle_equatorial",
"action": "os.events.bastilleday.fluxnodescutplane.toggleequatorial",
"key": "P"
},
{
"action": "fluxnodescutplane.toggle_meridial",
"action": "os.events.bastilleday.fluxnodescutplane.togglemeridial",
"key": "LEFTBRACKET"
}
],
@@ -158,7 +117,7 @@
"license": "MIT License",
"name": "Bastille day 2000",
"url": "https://www.openspaceproject.com",
"version": "1.0"
"version": "1.1"
},
"properties": [
{

View File

@@ -1,30 +1,4 @@
{
"actions": [
{
"documentation": "Toggle trails on or off for satellites around Earth",
"gui_path": "/Solar System/Earth",
"identifier": "profile.toggle.satellite",
"is_local": false,
"name": "Toggle satellite trails",
"script": "local list = openspace.getProperty('{earth_satellites}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end"
},
{
"documentation": "Refocuses the camera on the ISS",
"gui_path": "/Solar System/Earth",
"identifier": "profile.focus.iss",
"is_local": false,
"name": "Focus ISS",
"script": "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'ISS');openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Retargets the camera on Earth",
"gui_path": "/Solar System/Earth",
"identifier": "profile.focus.earth",
"is_local": false,
"name": "Focus on Earth",
"script": "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Earth')openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
}
],
"assets": [
"base",
"events/toggle_sun",
@@ -62,15 +36,15 @@
],
"keybindings": [
{
"action": "profile.toggle.satellite",
"action": "os.solarsystem.earth.togglesatellitetrails",
"key": "S"
},
{
"action": "profile.focus.iss",
"action": "os.solarsystem.earth.iss.focus",
"key": "I"
},
{
"action": "profile.focus.earth",
"action": "os.solarsystem.earth.focus",
"key": "HOME"
}
],

View File

@@ -1,38 +1,4 @@
{
"actions": [
{
"documentation": "Toggle trails on or off for satellites around Earth",
"gui_path": "/Solar System/Earth",
"identifier": "profile.toggle.satellite",
"is_local": false,
"name": "Toggle satellite trails",
"script": "local list = openspace.getProperty('{earth_satellites}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end"
},
{
"documentation": "Refocuses the camera on the ISS",
"gui_path": "/Solar System/Earth",
"identifier": "profile.focus.iss",
"is_local": false,
"name": "Focus ISS",
"script": "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'ISS');openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Retargets the camera on Earth",
"gui_path": "/Solar System/Earth",
"identifier": "profile.focus.earth",
"is_local": false,
"name": "Focus on Earth",
"script": "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Earth')openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Toggle on/off minor moon trails for all planets in the solar system",
"gui_path": "/Trails",
"identifier": "profile.toggle.minormoons",
"is_local": false,
"name": "Toggle Minor Moon Trails",
"script": "local list = openspace.getProperty('{moonTrail_minor}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end"
}
],
"assets": [
"base",
"events/toggle_sun",
@@ -79,19 +45,19 @@
],
"keybindings": [
{
"action": "profile.toggle.satellite",
"action": "os.solarsystem.earth.togglesatellitetrails",
"key": "S"
},
{
"action": "profile.focus.iss",
"action": "os.solarsystem.earth.iss.focus",
"key": "I"
},
{
"action": "profile.focus.earth",
"action": "os.solarsystem.earth.focus",
"key": "HOME"
},
{
"action": "profile.toggle.minormoons",
"action": "os_default.toggle_minormoon_trails",
"key": "SHIFT+H"
}
],

View File

@@ -1,86 +1,4 @@
{
"actions": [
{
"documentation": "Toggle trails on or off for satellites around Earth",
"gui_path": "/Solar System/Earth",
"identifier": "profile.toggle.satellitetrails",
"is_local": false,
"name": "Toggle satellite trails",
"script": "local list = openspace.getProperty('{earth_satellites}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end"
},
{
"documentation": "Toggle points and labels for the Lagrangian points for Earth Sun system",
"gui_path": "/JWST",
"identifier": "profile.toggle.lagrangianpoints",
"is_local": false,
"name": "Toggle Lagrangian points",
"script": "local list = openspace.getProperty('{lagrange_points_earth}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end"
},
{
"documentation": "Toggle Hubble Ultra Deep Field image and line towards its coordinate",
"gui_path": "/JWST",
"identifier": "profile.toggle.hudf",
"is_local": false,
"name": "Toggle Hubble Ultra Deep Field",
"script": "local list = openspace.getProperty('{mission_jwst_hudf}.*.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end"
},
{
"documentation": "Toggle L2 label, point and line",
"gui_path": "/JWST",
"identifier": "profile.toggle.l2",
"is_local": false,
"name": "Toggle L2 line and small L2 label",
"script": "local list = openspace.getProperty('{lagrange_points_earth_l2_small}.*.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end"
},
{
"documentation": "Toggle James Webb Space Telecope field of view and view band",
"gui_path": "/JWST",
"identifier": "profile.toggle.jwst_fov",
"is_local": false,
"name": "Toggle JWST field of view and view band",
"script": "local list = openspace.getProperty('{mission_jwst_fov}.*.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end"
},
{
"documentation": "Set the time to the launch time of JWST",
"gui_path": "/JWST",
"identifier": "profile.set.jwst_launch",
"is_local": false,
"name": "Set to JWST launch time",
"script": "openspace.time.setDeltaTime(1); openspace.time.setTime('2021-12-25T12:20:01');"
},
{
"documentation": "Set the time to the detach time of JWST",
"gui_path": "/JWST",
"identifier": "profile.set.jwst_detach",
"is_local": false,
"name": "Set to JWST detach time",
"script": "openspace.time.setDeltaTime(1); openspace.time.setTime('2021-12-25T12:50:00');"
},
{
"documentation": "Toggle JWST trail relative to the Sun",
"gui_path": "/JWST",
"identifier": "profile.toggle.sun_trail",
"is_local": false,
"name": "Toggle JWST Sun trail",
"script": "local value = openspace.getPropertyValue('Scene.JWSTSunTrail.Renderable.Enabled'); openspace.setPropertyValueSingle('Scene.JWSTSunTrail.Renderable.Enabled', not value);"
},
{
"documentation": "Toggle all planet and moon trails, except the Moon",
"gui_path": "/JWST",
"identifier": "profile.toggle.trails_not_moon",
"is_local": false,
"name": "Toggle trails (except Moon)",
"script": "local list = openspace.getProperty('{planetTrail_solarSystem}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end local moonlist = openspace.getProperty('{moonTrail_solarSystem}.Renderable.Enabled') for _,v in pairs(moonlist) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end openspace.setPropertyValueSingle('Scene.MoonTrail.Renderable.Enabled', true)"
},
{
"documentation": "Toggle JWST launch, cruise and L2 co-revolving orbit trails, not the Sun trail",
"gui_path": "/JWST",
"identifier": "profile.toggle.jwst_trails",
"is_local": false,
"name": "Toggle JWST trail",
"script": "local list = {'Scene.JWSTTrailLaunch.Renderable.Enabled', 'Scene.JWSTTrailCruise.Renderable.Enabled', 'Scene.JWSTTrailCoRevOrbit.Renderable.Enabled'}; for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)); end"
}
],
"additional_scripts": [
"openspace.setPropertyValue(\"Scene.MoonTrail.Renderable.Appearance.Color\", {0.7, 0.5, 0.5});"
],
@@ -140,55 +58,55 @@
],
"keybindings": [
{
"action": "profile.toggle.satellitetrails",
"action": "os.solarsystem.earth.togglesatellitetrails",
"key": "S"
},
{
"action": "profile.toggle.lagrangianpoints",
"action": "os.missions.jwst.togglelagrangianpoints",
"key": "P"
},
{
"action": "profile.toggle.hudf",
"action": "os.missions.jwst.togglehudf",
"key": "U"
},
{
"action": "profile.toggle.l2",
"action": "os.missions.jwst.togglel2",
"key": "O"
},
{
"action": "profile.toggle.jwst_fov",
"action": "os.missions.jwst.togglefov",
"key": "V"
},
{
"action": "profile.set.jwst_launch",
"action": "os.missoins.jwst.setup.launch",
"key": "J"
},
{
"action": "profile.toggle.sun_trail",
"action": "os.missions.jwst.togglesuntrail",
"key": "K"
},
{
"action": "jwst.play.forwards",
"action": "os.missions.jwst.play.forwards",
"key": "M"
},
{
"action": "jwst.play.backwards",
"action": "os.missions.jwst.play.backwards",
"key": "N"
},
{
"action": "jwst.play.clear",
"action": "os.missions.jwst.play.clear",
"key": "B"
},
{
"action": "profile.toggle.trails_not_moon",
"action": "os.missions.jwst.toggletrialsexceptmoon",
"key": "G"
},
{
"action": "jwst.toggle.direction",
"action": "os.missions.jwst.toggledirection",
"key": "Y"
},
{
"action": "profile.toggle.jwst_trails",
"action": "os.missions.jwst.togglejwsttrails",
"key": "T"
}
],

View File

@@ -1,30 +1,4 @@
{
"actions": [
{
"documentation": "Set and goto Insight Landing",
"gui_path": "/Missions/Insight",
"identifier": "profile.setup.insight",
"is_local": false,
"name": "Setup scene for insight EDL",
"script": "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -469.300000);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Settings.Offset', -470.850006);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.MDEM200M.Settings.Offset', -470.000000);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Enabled', true);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.HiRISE-LS.Enabled', true);openspace.time.setPause(true);openspace.time.setTime('2018 NOV 26 19:39:01.68');openspace.navigation.setNavigationState({Anchor = 'Insight',Pitch = 0.567457E-4,Position = { 1.240506E1,-1.369270E1,-2.423553E0 },ReferenceFrame = 'Root',Up = { 0.441211E0,0.247019E0,0.862737E0 },Yaw = -0.446853E-4});"
},
{
"documentation": "Disable Mars layer settings used for insight EDL",
"gui_path": "/Missions/Insight",
"identifier": "profile.unsetup.insight",
"is_local": false,
"name": "Unset Insight Landing",
"script": "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', 0);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Settings.Offset', 0);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Enabled', false);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.HiRISE-LS.Enabled', false);"
},
{
"documentation": "Sets time and layers for Perseverance landing",
"gui_path": "/Missions/Perseverance",
"identifier": "profile.setup.perseverance",
"is_local": false,
"name": "Setup and Goto Perseverance",
"script": "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -1685.5);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Settings.Offset', -1686.0);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.MDEM200M.Settings.Offset', -1686);openspace.time.setPause(true);openspace.time.setTime('2021 FEB 18 20:32:16');openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Enabled', true);openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.HiRISE-LS.Enabled', true);openspace.navigation.setNavigationState({Anchor = 'Perseverance',Pitch = 0.567457E-4,Position = { 1.240506E1,-1.369270E1,-2.423553E0 },ReferenceFrame = 'Root',Up = { 0.441211E0,0.247019E0,0.862737E0 },Yaw = -0.446853E-4});"
}
],
"assets": [
"base",
"scene/solarsystem/missions/insight/edl",
@@ -60,15 +34,15 @@
],
"keybindings": [
{
"action": "profile.setup.insight",
"action": "os.missions.insight.setup",
"key": "I"
},
{
"action": "profile.unsetup.insight",
"action": "os.missions.insight.setup.disablelayers",
"key": "SHIFT+I"
},
{
"action": "profile.setup.perseverance",
"action": "os.missions.perseverance.setup",
"key": "P"
}
],

View File

@@ -1,134 +1,4 @@
{
"actions": [
{
"documentation": "Sets the focus of the camera on 'NewHorizons'",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.focus.newhorizons",
"is_local": false,
"name": "Focus on New Horizons",
"script": "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'NewHorizons');openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Anchor at New Horizons, Aim at Pluto",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.focus.anchor_nh|aim_pluto",
"is_local": false,
"name": "Anchor NH, Aim Pluto",
"script": "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'NewHorizons');openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', 'Pluto');openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil)"
},
{
"documentation": "Sets the focus of the camera on 'Pluto'",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.focus.pluto",
"is_local": false,
"name": "Focus on Pluto",
"script": "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'PlutoProjection') ;openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Sets the focus of the camera on 'Charon'",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.focus.charon",
"is_local": false,
"name": "Focus on Charon",
"script": "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Charon');openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Toggles New Horizons image projection",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.toggle_nh_image_projections",
"is_local": false,
"name": "Toggle NH Image Projection",
"script": "local enabled = openspace.getPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.PerformProjection'); openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.PerformProjection', not enabled); openspace.setPropertyValue('Scene.CharonProjection.Renderable.ProjectionComponent.PerformProjection', not enabled);"
},
{
"documentation": "Removes all image projections from Pluto and Charon",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.clear_image_projections",
"is_local": false,
"name": "Clear image projections",
"script": "openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.ClearAllProjections', true); openspace.setPropertyValue('Scene.CharonProjection.Renderable.ProjectionComponent.ClearAllProjections', true);"
},
{
"documentation": "Jumps to the 14th of July 2015 at 0900 UTC and clears all projections",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.setup.approach",
"is_local": false,
"name": "Reset time and projections",
"script": "openspace.time.setTime('2015-07-14T09:00:00.00');openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.ClearAllProjections', true);openspace.setPropertyValue('Scene.CharonProjection.Renderable.ProjectionComponent.ClearAllProjections', true);"
},
{
"documentation": "Increases the height map exaggeration on Pluto",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.pluto.increase_height_exaggeration",
"is_local": false,
"name": "Pluto HeightExaggeration +",
"script": "openspace.setPropertyValueSingle(\"Scene.PlutoProjection.Renderable.HeightExaggeration\", openspace.getPropertyValue(\"Scene.PlutoProjection.Renderable.HeightExaggeration\") + 5000);"
},
{
"documentation": "Decreases the height map exaggeration on Pluto",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.pluto.decrease_height_exaggeration",
"is_local": false,
"name": "Pluto HeightExaggeration -",
"script": "openspace.setPropertyValueSingle(\"Scene.PlutoProjection.Renderable.HeightExaggeration\", openspace.getPropertyValue(\"Scene.PlutoProjection.Renderable.HeightExaggeration\") - 5000);"
},
{
"documentation": "Increases the height map exaggeration on Charon",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.charon.increase_height_exaggeration",
"is_local": false,
"name": "Charon HeightExaggeration +",
"script": "openspace.setPropertyValueSingle(\"Scene.CharonProjection.Renderable.HeightExaggeration\", openspace.getPropertyValue(\"Scene.CharonProjection.Renderable.HeightExaggeration\") + 5000);"
},
{
"documentation": "Decreases the height map exaggeration on Charon",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.charon.decrease_height_exaggeration",
"is_local": false,
"name": "Charon HeightExaggeration -",
"script": "openspace.setPropertyValueSingle(\"Scene.CharonProjection.Renderable.HeightExaggeration\", openspace.getPropertyValue(\"Scene.CharonProjection.Renderable.HeightExaggeration\") - 5000);"
},
{
"documentation": "Toggles the visibility of the trail behind Pluto",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.toggle.pluto_trail",
"is_local": false,
"name": "Toggle Pluto Trail",
"script": "openspace.setPropertyValueSingle('Scene.PlutoBarycentricTrail.Renderable.Enabled', not openspace.getPropertyValue('Scene.PlutoBarycentricTrail.Renderable.Enabled'));"
},
{
"documentation": "Toggles the visibility of the text labels of Pluto, Charon, Hydra, Nix, Kerberos, and Styx",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.toggle.pluto_labels",
"is_local": false,
"name": "Toggle Pluto Labels",
"script": "local list = {\"Scene.PlutoText.Renderable.Enabled\", \"Scene.CharonText.Renderable.Enabled\", \"Scene.HydraText.Renderable.Enabled\", \"Scene.NixText.Renderable.Enabled\", \"Scene.KerberosText.Renderable.Enabled\", \"Scene.StyxText.Renderable.Enabled\"}; for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end"
},
{
"documentation": "Toggles the visibility of the labels for the New Horizons instruments",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.toggle_nh_labels",
"is_local": false,
"name": "Toggle New Horizons Labels",
"script": "local v = openspace.getPropertyValue(\"Scene.Labels.Renderable.Opacity\"); if v <= 0.5 then openspace.setPropertyValueSingle(\"Scene.Labels.Renderable.Opacity\",1.0,2.0) else openspace.setPropertyValueSingle(\"Scene.Labels.Renderable.Opacity\",0.0,2.0) end"
},
{
"documentation": "Toggles the visibility of the shadow visualization of Pluto and Charon",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.toggle_shadows",
"is_local": false,
"name": "Toggle Shadows",
"script": "openspace.setPropertyValueSingle('Scene.PlutoShadow.Renderable.Enabled', not openspace.getPropertyValue('Scene.PlutoShadow.Renderable.Enabled'));openspace.setPropertyValueSingle('Scene.CharonShadow.Renderable.Enabled', not openspace.getPropertyValue('Scene.CharonShadow.Renderable.Enabled'));"
},
{
"documentation": "Toggles the trail of New Horizons",
"gui_path": "/Missions/New Horizons",
"identifier": "profile.toggle.nh_trail",
"is_local": false,
"name": "Toggle NH Trail",
"script": "openspace.setPropertyValueSingle('Scene.NewHorizonsTrailPluto.Renderable.Enabled', not openspace.getPropertyValue('Scene.NewHorizonsTrailPluto.Renderable.Enabled'));"
}
],
"assets": [
"base",
"scene/solarsystem/missions/newhorizons/dashboard",
@@ -167,83 +37,83 @@
],
"keybindings": [
{
"action": "profile.focus.newhorizons",
"action": "os.missions.newhorizons.focus",
"key": "A"
},
{
"action": "profile.focus.anchor_nh|aim_pluto",
"action": "os.missions.newhorizons.aimpluto",
"key": "SHIFT+A"
},
{
"action": "profile.focus.pluto",
"action": "os.missions.newhorizons.pluto.focus",
"key": "S"
},
{
"action": "profile.focus.charon",
"action": "os.missions.newhorizons.charon.focus",
"key": "D"
},
{
"action": "profile.toggle_nh_image_projections",
"action": "os.missions.newhorizons.toggleimageprojection",
"key": "F7"
},
{
"action": "profile.clear_image_projections",
"action": "os.missions.newhorizons.clearimageprojections",
"key": "F8"
},
{
"action": "profile.setup.approach",
"action": "os.missions.newhorizons.approach",
"key": "F9"
},
{
"action": "profile.pluto.increase_height_exaggeration",
"action": "os.missions.newhorizons.pluto.increasehightmap",
"key": "KP_8"
},
{
"action": "profile.pluto.increase_height_exaggeration",
"action": "os.missions.newhorizons.pluto.increasehightmap",
"key": "CTRL+I"
},
{
"action": "profile.pluto.decrease_height_exaggeration",
"action": "os.missions.newhorizons.pluto.decreasehightmap",
"key": "CTRL+K"
},
{
"action": "profile.pluto.decrease_height_exaggeration",
"action": "os.missions.newhorizons.pluto.decreasehightmap",
"key": "KP_2"
},
{
"action": "profile.charon.increase_height_exaggeration",
"action": "os.missions.newhorizons.charon.increasehightmap",
"key": "KP_9"
},
{
"action": "profile.charon.increase_height_exaggeration",
"action": "os.missions.newhorizons.charon.increasehightmap",
"key": "CTRL+O"
},
{
"action": "profile.charon.decrease_height_exaggeration",
"action": "os.missions.newhorizons.charon.decreasehightmap",
"key": "KP_3"
},
{
"action": "profile.charon.decrease_height_exaggeration",
"action": "os.missions.newhorizons.charon.decreasehightmap",
"key": "CTRL+L"
},
{
"action": "profile.toggle.pluto_trail",
"action": "os.missions.newhorizons.pluto.toggletrail",
"key": "O"
},
{
"action": "profile.toggle.pluto_labels",
"action": "os.missions.newhorizons.pluto.togglelabels",
"key": "J"
},
{
"action": "profile.toggle_nh_labels",
"action": "os.missions.newhorizons.togglelabels",
"key": "I"
},
{
"action": "profile.toggle_shadows",
"action": "os.missions.newhorizons.toggleshadows",
"key": "SHIFT+T"
},
{
"action": "profile.toggle.nh_trail",
"action": "os.missions.newhorizons.toggletrail",
"key": "T"
}
],

View File

@@ -1,62 +1,4 @@
{
"actions": [
{
"documentation": "Sets the focus of the camera on 'OsirisRex'",
"gui_path": "/Missions/Osiris Rex",
"identifier": "profile.focus.osirisrex",
"is_local": false,
"name": "Focus on OsirisRex",
"script": "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'OsirisRex'); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Sets the focus of the camera on 'Bennu'",
"gui_path": "/Missions/Osiris Rex",
"identifier": "profile.focus.bennu",
"is_local": false,
"name": "Focus on Bennu",
"script": "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'BennuBarycenter'); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Sets the time to the approach at Bennu",
"gui_path": "/Missions/Osiris Rex",
"identifier": "profile.setup.bennu_approach",
"is_local": false,
"name": "Set Bennu approach time",
"script": "openspace.printInfo('Set time: Approach');openspace.time.setTime('2018-SEP-11 21:31:01.183');"
},
{
"documentation": "Sets the time to the preliminary survey of Bennu",
"gui_path": "/Missions/Osiris Rex",
"identifier": "profile.setup.bennu_survey",
"is_local": false,
"name": "Set Bennu survey time",
"script": "openspace.printInfo('Set time: Preliminary Survey'); openspace.time.setTime('2018-NOV-20 01:13:12.183');"
},
{
"documentation": "Sets the time to the orbital B event",
"gui_path": "/Missions/Osiris Rex",
"identifier": "profile.setup.orbital_b_event",
"is_local": false,
"name": "Set orbital B event time",
"script": "openspace.printInfo('Set time: Orbital B'); openspace.time.setTime('2019-APR-08 10:35:27.186');"
},
{
"documentation": "Sets the time to the recon event",
"gui_path": "/Missions/Osiris Rex",
"identifier": "profile.setup.recon_event",
"is_local": false,
"name": "Set recon event time",
"script": "openspace.printInfo('Set time: Recon'); openspace.time.setTime('2019-MAY-25 03:50:31.195');"
},
{
"documentation": "Toggles the visibility of the text marking the location of the Sun",
"gui_path": "/Missions/Osiris Rex",
"identifier": "profile.toggle.sun_marker",
"is_local": false,
"name": "Toggle Sun marker",
"script": "openspace.setPropertyValueSingle('Scene.SunMarker.Renderable.Enabled', not openspace.getPropertyValue('Scene.SunMarker.Renderable.Enabled'));"
}
],
"assets": [
"base",
"scene/solarsystem/missions/osirisrex/dashboard",
@@ -99,31 +41,31 @@
],
"keybindings": [
{
"action": "profile.focus.osirisrex",
"action": "os.missions.osirisrex.focus",
"key": "A"
},
{
"action": "profile.focus.bennu",
"action": "os.missions.osirisrex.bennu.focus",
"key": "S"
},
{
"action": "profile.setup.bennu_approach",
"action": "os.missions.osirisrex.setup.bennuapproach",
"key": "F8"
},
{
"action": "profile.setup.bennu_survey",
"action": "os.missions.osirisrex.setup.bennusurvey",
"key": "F9"
},
{
"action": "profile.setup.orbital_b_event",
"action": "os.missions.osirisrex.setup.bennueventb",
"key": "F10"
},
{
"action": "profile.setup.recon_event",
"action": "os.missions.osirisrex.setup.bennureconevent",
"key": "F11"
},
{
"action": "profile.toggle.sun_marker",
"action": "os.missions.osirisrex.togglesunmarker",
"key": "Q"
}
],
@@ -138,7 +80,7 @@
"license": "MIT License",
"name": "Osiris-Rex",
"url": "https://www.openspaceproject.com",
"version": "1.0"
"version": "1.1"
},
"properties": [
{

View File

@@ -1,75 +1,10 @@
{
"actions": [
{
"documentation": "Sets the focus of the camera on 67P",
"gui_path": "/Missions/Rosetta",
"identifier": "profile.focus.67P",
"is_local": false,
"name": "Focus on 67P",
"script": "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', '67P'); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Sets the focus of the camera on Rosetta",
"gui_path": "/Missions/Rosetta",
"identifier": "profile.focus.rosetta",
"is_local": false,
"name": "Focus on Rosetta",
"script": "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Rosetta'); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);"
},
{
"documentation": "Jumps to the time when the Philae lander is released",
"gui_path": "/Missions/Rosetta",
"identifier": "profile.setup.lander_release",
"is_local": false,
"name": "Set lander release time",
"script": "openspace.time.setTime('2014-11-12T08:20:00.00');"
},
{
"documentation": "Removes all image projections from 67P",
"gui_path": "/Missions/Rosetta",
"identifier": "profile.67p.clear_projections",
"is_local": false,
"name": "Clear 67P projections",
"script": "openspace.setPropertyValue('Scene.67P.Renderable.ProjectionComponent.ClearAllProjections', true);"
},
{
"documentation": "Toggles the visibility of all trails further from the Sun than 67P",
"gui_path": "/Missions/Rosetta",
"identifier": "profile.toggle.outerplanet_trails",
"is_local": false,
"name": "Toggle outer planetary trails",
"script": "local list = openspace.getProperty('{planetTrail_giants}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end"
},
{
"documentation": "Toggles the visibility of the free floating image plane",
"gui_path": "/Missions/Rosetta",
"identifier": "profile.toggle.image_plane",
"is_local": false,
"name": "Toggle image plane",
"script": "openspace.setPropertyValueSingle('Scene.ImagePlaneRosetta.Renderable.Enabled', not openspace.getPropertyValue('Scene.ImagePlaneRosetta.Renderable.Enabled'));"
},
{
"documentation": "Toggles the visibility of Philae's trail",
"gui_path": "/Missions/Rosetta",
"identifier": "profile.toggle.philae_trail",
"is_local": false,
"name": "Toggle Philae trail",
"script": "openspace.setPropertyValueSingle('Scene.PhilaeTrail.Renderable.Enabled', not openspace.getPropertyValue('Scene.PhilaeTrail.Renderable.Enabled'));"
},
{
"documentation": "Enables or disables the image projection on 67P",
"gui_path": "/Missions/Rosetta",
"identifier": "profile.toggle.67p_projection",
"is_local": false,
"name": "Toggle 67P projection",
"script": "openspace.setPropertyValueSingle('Scene.67P.Renderable.ProjectionComponent.PerformProjection', not openspace.getPropertyValue('Scene.67P.Renderable.ProjectionComponent.PerformProjection'));"
}
],
"assets": [
"base",
"scene/solarsystem/missions/rosetta/67p",
"scene/solarsystem/missions/rosetta/dashboard",
"scene/solarsystem/missions/rosetta/rosetta"
"scene/solarsystem/missions/rosetta/rosetta",
"scene/solarsystem/missions/rosetta/actions"
],
"camera": {
"aim": "",
@@ -111,35 +46,35 @@
],
"keybindings": [
{
"action": "profile.focus.67P",
"action": "os.missions.rosetta.67p.focus",
"key": "A"
},
{
"action": "profile.focus.rosetta",
"action": "os.missions.rosetta.focus",
"key": "S"
},
{
"action": "profile.setup.lander_release",
"action": "os.missions.rosetta.setup.landerrelease",
"key": "F6"
},
{
"action": "profile.67p.clear_projections",
"action": "os.missions.rosetta.67p.clearimageprojections",
"key": "F8"
},
{
"action": "profile.toggle.outerplanet_trails",
"action": "os.missions.rosetta.toggleouterplanetarytrails",
"key": "E"
},
{
"action": "profile.toggle.image_plane",
"action": "os.missions.rosetta.toggleimageplane",
"key": "I"
},
{
"action": "profile.toggle.philae_trail",
"action": "os.mission.rosetta.togglephilaetrail",
"key": "O"
},
{
"action": "profile.toggle.67p_projection",
"action": "os.missions.rosetta.toggle67pprojection",
"key": "P"
}
],
@@ -154,7 +89,7 @@
"license": "MIT License",
"name": "Rosetta",
"url": "https://www.openspaceproject.com",
"version": "1.0"
"version": "1.1"
},
"properties": [
{

View File

@@ -1,67 +1,10 @@
{
"actions": [
{
"documentation": "Set camera focus to Voyager 1",
"gui_path": "/Missions/Voyager",
"identifier": "profile.focus.voyager1",
"is_local": false,
"name": "Focus on Voyager 1",
"script": "openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.RetargetAnchor\", nil);openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.Anchor\", 'Voyager_1');openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.Aim\", '')"
},
{
"documentation": "Sets the camera focus on Voyager 2",
"gui_path": "/Missions/Voyager",
"identifier": "profile.focus.voyager2",
"is_local": false,
"name": "Focus on Voyager 2",
"script": "openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.RetargetAnchor\", nil);openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.Anchor\", 'Voyager_2');openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.Aim\", '');"
},
{
"documentation": "Sets the time for Voyager's approach to Jupiter",
"gui_path": "/Missions/Voyager",
"identifier": "profile.setup.jupiter_approach",
"is_local": false,
"name": "Set Jupiter Approach",
"script": "openspace.time.setTime(\"1979-01-20T01:32:07.914\")"
},
{
"documentation": "Sets the time for Voyager's approach to Saturn",
"gui_path": "/Missions/Voyager",
"identifier": "profile.setup.saturn_approach",
"is_local": false,
"name": "Set Saturn Approach",
"script": "openspace.time.setTime(\"1980-10-20T07:43:42.645\");"
},
{
"documentation": "Set the camera focus to Jupiter",
"gui_path": "/Missions/Voyager",
"identifier": "profile.focus.jupiter",
"is_local": false,
"name": "Focus on Jupiter",
"script": "openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.RetargetAnchor\", nil);openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.Anchor\", 'Jupiter');openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.Aim\", '');"
},
{
"documentation": "Sets the camera focus on Saturn",
"gui_path": "/Missions/Voyager",
"identifier": "profile.focus.saturn",
"is_local": false,
"name": "Focus on Saturn",
"script": "openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.RetargetAnchor\", nil);openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.Anchor\", 'Saturn');openspace.setPropertyValueSingle(\"NavigationHandler.OrbitalNavigator.Aim\", '');"
},
{
"documentation": "Toggles the trails of the minor moons",
"gui_path": "/Trails",
"identifier": "profile.toggle.minor_trails",
"is_local": false,
"name": "Toggle minor trails",
"script": "local list = openspace.getProperty('{moonTrail_minor}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end"
}
],
"assets": [
"base",
"scene/solarsystem/missions/voyager/dashboard",
"scene/solarsystem/missions/voyager/voyager1",
"scene/solarsystem/missions/voyager/voyager2",
"scene/solarsystem/missions/voyager/actions",
"scene/solarsystem/planets/jupiter/minor_moons",
"scene/solarsystem/planets/neptune/minor_moons",
"scene/solarsystem/planets/saturn/minor_moons",
@@ -95,31 +38,31 @@
],
"keybindings": [
{
"action": "profile.focus.voyager1",
"action": "os.missions.voyager.v1.focus",
"key": "V"
},
{
"action": "profile.focus.voyager2",
"action": "os.missions.voyager.v2.focus",
"key": "SHIFT+V"
},
{
"action": "profile.setup.jupiter_approach",
"action": "os.missions.voyager.setup.jupiterapproach",
"key": "SHIFT+J"
},
{
"action": "profile.setup.saturn_approach",
"action": "os.missions.voyager.setup.saturnapproach",
"key": "SHIFT+S"
},
{
"action": "profile.focus.jupiter",
"action": "os.missions.voyager.jupiter.focus",
"key": "J"
},
{
"action": "profile.focus.saturn",
"action": "os.missions.voyager.saturn.focus",
"key": "S"
},
{
"action": "profile.toggle.minor_trails",
"action": "os.missions.voyager.toggleminormoontrails",
"key": "SHIFT+H"
}
],
@@ -138,7 +81,7 @@
"license": "MIT License",
"name": "Voyager",
"url": "https://www.openspaceproject.com",
"version": "1.0"
"version": "1.1"
},
"properties": [
{

View File

@@ -52,7 +52,7 @@ public:
virtual glm::vec2 size() const = 0;
protected:
properties::BoolProperty _isEnabled;
properties::BoolProperty _enabled;
};
} // openspace

View File

@@ -87,17 +87,17 @@ public:
std::string targetNodeId() const;
ScreenSpaceSkyBrowser* browser() const;
std::vector<int> selectedImages() const;
std::vector<std::string> selectedImages() const;
ghoul::Dictionary dataAsDictionary() const;
// WorldWide Telescope image handling
void setImageOrder(int i, int order);
void selectImage(const ImageData& image, int i);
void addImageLayerToWwt(const std::string& url, int i);
void removeSelectedImage(int i);
void setImageOrder(const std::string& imageUrl, int order);
void selectImage(const ImageData& image);
void addImageLayerToWwt(const std::string& imageUrl);
void removeSelectedImage(const std::string& imageUrl);
void loadImageCollection(const std::string& collection);
void setImageOpacity(int i, float opacity);
void setImageOpacity(const std::string& imageUrl, float opacity);
void hideChromeInterface();
private:

View File

@@ -31,6 +31,7 @@
#include <deque>
namespace openspace {
using SelectedImageDeque = std::deque<std::pair<std::string, double>>;
class WwtCommunicator : public Browser {
public:
@@ -40,12 +41,12 @@ public:
void update();
// WorldWide Telescope communication
void selectImage(const std::string& url, int i);
void addImageLayerToWwt(const std::string& url, int i);
void removeSelectedImage(int i);
void setImageOrder(int image, int order);
void selectImage(const std::string& imageUrl);
void addImageLayerToWwt(const std::string& imageUrl);
void removeSelectedImage(const std::string& imageUrl);
void setImageOrder(const std::string& imageUrl, int order);
void loadImageCollection(const std::string& collection);
void setImageOpacity(int i, float opacity);
void setImageOpacity(const std::string& imageUrl, float opacity);
void hideChromeInterface() const;
bool isImageCollectionLoaded() const;
@@ -54,7 +55,7 @@ public:
glm::ivec3 borderColor() const;
glm::dvec2 equatorialAim() const;
glm::dvec2 fieldsOfView() const;
std::vector<int> selectedImages() const;
std::vector<std::string> selectedImages() const;
std::vector<double> opacities() const;
double borderRadius() const;
@@ -70,7 +71,7 @@ public:
protected:
void setIdInBrowser(const std::string& id) const;
std::deque<std::pair<int, double>>::iterator findSelectedImage(int i);
SelectedImageDeque::iterator findSelectedImage(const std::string& id);
properties::DoubleProperty _verticalFov;
@@ -79,7 +80,7 @@ protected:
glm::dvec2 _equatorialAim = glm::dvec2(0.0);
double _targetRoll = 0.0;
bool _isImageCollectionLoaded = false;
std::deque<std::pair<int, double>> _selectedImages;
SelectedImageDeque _selectedImages;
private:
void sendMessageToWwt(const ghoul::Dictionary& msg) const;

View File

@@ -27,6 +27,7 @@
#include <filesystem>
#include <memory>
#include <optional>
namespace tinyxml2 { class XMLElement; }
@@ -45,19 +46,21 @@ struct ImageData {
float fov = 0.f;
glm::dvec2 equatorialSpherical = glm::dvec2(0.0);
glm::dvec3 equatorialCartesian = glm::dvec3(0.0);
std::string identifier;
};
class WwtDataHandler {
public:
void loadImages(const std::string& root, const std::filesystem::path& directory);
int nLoadedImages() const;
const ImageData& image(int i) const;
std::optional<const ImageData> image(const std::string& imageUrl) const;
const std::map<std::string, ImageData>& images() const;
private:
void saveImagesFromXml(const tinyxml2::XMLElement* root, std::string collection);
// Images
std::vector<ImageData> _images;
std::map<std::string, ImageData> _images;
};
} // namespace openspace

View File

@@ -318,9 +318,12 @@ void SkyBrowserModule::setHoverCircle(SceneGraphNode* circle) {
disableHoverCircle();
}
void SkyBrowserModule::moveHoverCircle(int i, bool useScript) {
const ImageData& image = _dataHandler.image(i);
void SkyBrowserModule::moveHoverCircle(const std::string& imageUrl, bool useScript) {
std::optional<const ImageData> found = _dataHandler.image(imageUrl);
if (!found.has_value()) {
return;
}
const ImageData image = *found;
// Only move and show circle if the image has coordinates
if (!(_hoverCircle && image.hasCelestialCoords && _isCameraInSolarSystem)) {
return;

View File

@@ -76,7 +76,7 @@ public:
void addTargetBrowserPair(const std::string& targetId, const std::string& browserId);
// Hover circle
void moveHoverCircle(int i, bool useScript = true);
void moveHoverCircle(const std::string& imageUrl, bool useScript = true);
void disableHoverCircle(bool useScript = true);
// Image collection handling

View File

@@ -74,7 +74,7 @@ namespace {
* Takes an index to an image and selects that image in the currently
* selected sky browser.
*/
[[codegen::luawrap]] void selectImage(int imageIndex) {
[[codegen::luawrap]] void selectImage(std::string imageUrl) {
using namespace openspace;
// Load image
@@ -83,8 +83,17 @@ namespace {
if (module->isCameraInSolarSystem()) {
TargetBrowserPair* selected = module->pair(module->selectedBrowserId());
if (selected) {
const ImageData& image = module->wwtDataHandler().image(imageIndex);
std::optional<const ImageData> found = module->wwtDataHandler().image(
imageUrl
);
if (!found.has_value()) {
LINFO(fmt::format(
"No image with identifier {} was found in the collection.", imageUrl
));
return;
}
// Load image into browser
const ImageData& image = found.value();
std::string str = image.name;
// Check if character is ASCII - if it isn't, remove
str.erase(
@@ -97,7 +106,7 @@ namespace {
str.end()
);
LINFO("Loading image " + str);
selected->selectImage(image, imageIndex);
selected->selectImage(image);
bool isInView = skybrowser::isCoordinateInView(image.equatorialCartesian);
// If the coordinate is not in view, rotate camera
@@ -130,10 +139,10 @@ namespace {
/**
* Moves the hover circle to the coordinate specified by the image index.
*/
[[codegen::luawrap]] void moveCircleToHoverImage(int imageIndex) {
[[codegen::luawrap]] void moveCircleToHoverImage(std::string imageUrl) {
using namespace openspace;
global::moduleEngine->module<SkyBrowserModule>()->moveHoverCircle(imageIndex, false);
global::moduleEngine->module<SkyBrowserModule>()->moveHoverCircle(imageUrl, false);
}
/**
@@ -150,7 +159,7 @@ namespace {
* which it should have in the selected image list. The image is then changed to have this
* order.
*/
[[codegen::luawrap]] void setImageLayerOrder(std::string identifier, int imageIndex,
[[codegen::luawrap]] void setImageLayerOrder(std::string identifier, std::string imageUrl,
int imageOrder)
{
using namespace openspace;
@@ -158,7 +167,7 @@ namespace {
SkyBrowserModule* module = global::moduleEngine->module<SkyBrowserModule>();
TargetBrowserPair* pair = module->pair(identifier);
if (pair) {
pair->setImageOrder(imageIndex, imageOrder);
pair->setImageOrder(imageUrl, imageOrder);
}
}
@@ -296,10 +305,7 @@ namespace {
// Create Lua table to send to the GUI
ghoul::Dictionary list;
for (int i = 0; i < module->nLoadedImages(); i++) {
const ImageData& img = module->wwtDataHandler().image(i);
for (auto const& [id, img] : module->wwtDataHandler().images()) {
// Push ("Key", value)
ghoul::Dictionary image;
image.setValue("name", img.name);
@@ -312,11 +318,9 @@ namespace {
image.setValue("hasCelestialCoords", img.hasCelestialCoords);
image.setValue("credits", img.credits);
image.setValue("creditsUrl", img.creditsUrl);
image.setValue("identifier", std::to_string(i));
image.setValue("identifier", img.identifier);
// Index for current ImageData
// Set table for the current ImageData
list.setValue(std::to_string(i + 1), image);
list.setValue(img.identifier, image);
}
return list;
@@ -409,15 +413,15 @@ namespace {
* Takes an identifier to a sky browser or sky target, an index to an image and a value
* for the opacity.
*/
[[codegen::luawrap]] void setOpacityOfImageLayer(std::string identifier, int imageIndex,
float opacity)
[[codegen::luawrap]] void setOpacityOfImageLayer(std::string identifier,
std::string imageUrl, float opacity)
{
using namespace openspace;
SkyBrowserModule* module = global::moduleEngine->module<SkyBrowserModule>();
TargetBrowserPair* pair = module->pair(identifier);
if (pair) {
pair->setImageOpacity(imageIndex, opacity);
pair->setImageOpacity(imageUrl, opacity);
}
}
@@ -593,14 +597,14 @@ namespace {
* image from that sky browser.
*/
[[codegen::luawrap]] void removeSelectedImageInBrowser(std::string identifier,
int imageIndex)
std::string imageUrl)
{
using namespace openspace;
SkyBrowserModule* module = global::moduleEngine->module<SkyBrowserModule>();
TargetBrowserPair* pair = module->pair(identifier);
if (pair) {
pair->browser()->removeSelectedImage(imageIndex);
pair->browser()->removeSelectedImage(imageUrl);
}
}
@@ -771,13 +775,13 @@ namespace {
LINFO("Image collection is loaded in Screen Space Sky Browser " + identifier);
pair->setImageCollectionIsLoaded(true);
// Add all selected images to WorldWide Telescope
const std::vector<int>& images = pair->selectedImages();
const std::vector<std::string>& images = pair->selectedImages();
std::for_each(
images.rbegin(), images.rend(),
[&](int index) {
const ImageData& image = module->wwtDataHandler().image(index);
[&](std::string imageUrl) {
const ImageData& image = module->wwtDataHandler().image(imageUrl).value();
// Index of image is used as layer ID as it's unique in the image data set
pair->browser()->addImageLayerToWwt(image.imageUrl, index);
pair->browser()->addImageLayerToWwt(image.imageUrl);
}
);
}

View File

@@ -69,8 +69,8 @@ TargetBrowserPair::TargetBrowserPair(SceneGraphNode* targetNode,
_targetRenderable = dynamic_cast<RenderableSkyTarget*>(_targetNode->renderable());
}
void TargetBrowserPair::setImageOrder(int i, int order) {
_browser->setImageOrder(i, order);
void TargetBrowserPair::setImageOrder(const std::string& imageUrl, int order) {
_browser->setImageOrder(imageUrl, order);
}
void TargetBrowserPair::startFinetuningTarget() {
@@ -151,13 +151,23 @@ double TargetBrowserPair::verticalFov() const {
return _browser->verticalFov();
}
std::vector<int> TargetBrowserPair::selectedImages() const {
std::vector<std::string> TargetBrowserPair::selectedImages() const {
return _browser->selectedImages();
}
ghoul::Dictionary TargetBrowserPair::dataAsDictionary() const {
glm::dvec2 spherical = targetDirectionEquatorial();
glm::dvec3 cartesian = skybrowser::sphericalToCartesian(spherical);
SkyBrowserModule* module = global::moduleEngine->module<SkyBrowserModule>();
std::vector<std::string> selectedImagesIndices;
for (const std::string& imageUrl : selectedImages()) {
bool imageExists = module->wwtDataHandler().image(imageUrl).has_value();
ghoul_assert(imageExists, "Image doesn't exist in the wwt catalog!");
selectedImagesIndices.push_back(
module->wwtDataHandler().image(imageUrl)->identifier
);
}
ghoul::Dictionary res;
res.setValue("id", browserId());
@@ -172,7 +182,7 @@ ghoul::Dictionary TargetBrowserPair::dataAsDictionary() const {
res.setValue("ratio", static_cast<double>(_browser->browserRatio()));
res.setValue("isFacingCamera", isFacingCamera());
res.setValue("isUsingRae", isUsingRadiusAzimuthElevation());
res.setValue("selectedImages", selectedImages());
res.setValue("selectedImages", selectedImagesIndices);
res.setValue("scale", static_cast<double>(_browser->scale()));
res.setValue("opacities", _browser->opacities());
res.setValue("borderRadius", _browser->borderRadius());
@@ -193,9 +203,9 @@ ghoul::Dictionary TargetBrowserPair::dataAsDictionary() const {
return res;
}
void TargetBrowserPair::selectImage(const ImageData& image, int i) {
void TargetBrowserPair::selectImage(const ImageData& image) {
// Load image into browser
_browser->selectImage(image.imageUrl, i);
_browser->selectImage(image.imageUrl);
// If the image has coordinates, move the target
if (image.hasCelestialCoords) {
@@ -205,20 +215,20 @@ void TargetBrowserPair::selectImage(const ImageData& image, int i) {
}
}
void TargetBrowserPair::addImageLayerToWwt(const std::string& url, int i) {
_browser->addImageLayerToWwt(url, i);
void TargetBrowserPair::addImageLayerToWwt(const std::string& imageUrl) {
_browser->addImageLayerToWwt(imageUrl);
}
void TargetBrowserPair::removeSelectedImage(int i) {
_browser->removeSelectedImage(i);
void TargetBrowserPair::removeSelectedImage(const std::string& imageUrl) {
_browser->removeSelectedImage(imageUrl);
}
void TargetBrowserPair::loadImageCollection(const std::string& collection) {
_browser->loadImageCollection(collection);
}
void TargetBrowserPair::setImageOpacity(int i, float opacity) {
_browser->setImageOpacity(i, opacity);
void TargetBrowserPair::setImageOpacity(const std::string& imageUrl, float opacity) {
_browser->setImageOpacity(imageUrl, opacity);
}
void TargetBrowserPair::hideChromeInterface() {

View File

@@ -69,12 +69,12 @@ namespace {
return msg;
}
ghoul::Dictionary addImageMessage(const std::string& id, const std::string& url) {
ghoul::Dictionary addImageMessage(const std::string& url) {
using namespace std::string_literals;
ghoul::Dictionary msg;
msg.setValue("event", "image_layer_create"s);
msg.setValue("id", id);
msg.setValue("id", url);
msg.setValue("url", url);
msg.setValue("mode", "preloaded"s);
msg.setValue("goto", false);
@@ -101,7 +101,7 @@ namespace {
return msg;
}
ghoul::Dictionary setLayerOrderMessage(const std::string& id, int order) {
ghoul::Dictionary setLayerOrderMessage(const std::string& imageUrl, int order) {
static int MessageCounter = 0;
// The lower the layer order, the more towards the back the image is placed
@@ -110,7 +110,7 @@ namespace {
ghoul::Dictionary msg;
msg.setValue("event", "image_layer_order"s);
msg.setValue("id", id);
msg.setValue("id", imageUrl);
msg.setValue("order", order);
msg.setValue("version", MessageCounter);
@@ -165,33 +165,33 @@ void WwtCommunicator::update() {
Browser::update();
}
void WwtCommunicator::selectImage(const std::string& url, int i) {
void WwtCommunicator::selectImage(const std::string& url) {
// Ensure there are no duplicates
auto it = findSelectedImage(i);
auto it = findSelectedImage(url);
if (it == _selectedImages.end()) {
// Push newly selected image to front
_selectedImages.push_front(std::pair<int, double>(i, 1.0));
_selectedImages.push_front(std::pair<std::string, double>(url, 1.0));
// If wwt has not loaded the collection yet, wait with passing the message
if (_isImageCollectionLoaded) {
addImageLayerToWwt(url, i);
addImageLayerToWwt(url);
}
}
}
void WwtCommunicator::addImageLayerToWwt(const std::string& url, int i) {
void WwtCommunicator::addImageLayerToWwt(const std::string& imageUrl) {
// Index of image is used as layer ID as it is unique in the image data set
sendMessageToWwt(addImageMessage(std::to_string(i), url));
sendMessageToWwt(setImageOpacityMessage(std::to_string(i), 1.0));
sendMessageToWwt(addImageMessage(imageUrl));
sendMessageToWwt(setImageOpacityMessage(imageUrl, 1.0));
}
void WwtCommunicator::removeSelectedImage(int i) {
void WwtCommunicator::removeSelectedImage(const std::string& imageUrl) {
// Remove from selected list
auto it = findSelectedImage(i);
auto it = findSelectedImage(imageUrl);
if (it != _selectedImages.end()) {
_selectedImages.erase(it);
sendMessageToWwt(removeImageMessage(std::to_string(i)));
sendMessageToWwt(removeImageMessage(imageUrl));
}
}
@@ -200,14 +200,14 @@ void WwtCommunicator::sendMessageToWwt(const ghoul::Dictionary& msg) const {
executeJavascript(fmt::format("sendMessageToWWT({});", m));
}
std::vector<int> WwtCommunicator::selectedImages() const {
std::vector<int> selectedImagesVector;
std::vector<std::string> WwtCommunicator::selectedImages() const {
std::vector<std::string> selectedImagesVector;
selectedImagesVector.resize(_selectedImages.size());
std::transform(
_selectedImages.cbegin(),
_selectedImages.cend(),
selectedImagesVector.begin(),
[](const std::pair<int, double>& image) { return image.first; }
[](const std::pair<std::string, double>& image) { return image.first; }
);
return selectedImagesVector;
}
@@ -219,7 +219,7 @@ std::vector<double> WwtCommunicator::opacities() const {
_selectedImages.cbegin(),
_selectedImages.cend(),
opacities.begin(),
[](const std::pair<int, double>& image) { return image.second; }
[](const std::pair<std::string, double>& image) { return image.second; }
);
return opacities;
}
@@ -277,11 +277,15 @@ bool WwtCommunicator::isImageCollectionLoaded() const {
return _isImageCollectionLoaded;
}
std::deque<std::pair<int, double>>::iterator WwtCommunicator::findSelectedImage(int i) {
SelectedImageDeque::iterator WwtCommunicator::findSelectedImage(
const std::string& imageUrl)
{
auto it = std::find_if(
_selectedImages.begin(),
_selectedImages.end(),
[i](const std::pair<int, double>& pair) { return pair.first == i; }
[imageUrl](const std::pair<std::string, double>& pair) {
return pair.first == imageUrl;
}
);
return it;
}
@@ -290,12 +294,12 @@ glm::dvec2 WwtCommunicator::equatorialAim() const {
return _equatorialAim;
}
void WwtCommunicator::setImageOrder(int image, int order) {
void WwtCommunicator::setImageOrder(const std::string& imageUrl, int order) {
// Find in selected images list
auto current = findSelectedImage(image);
auto current = findSelectedImage(imageUrl);
int currentIndex = static_cast<int>(std::distance(_selectedImages.begin(), current));
std::deque<std::pair<int, double>> newDeque;
std::deque<std::pair<std::string, double>> newDeque;
for (int i = 0; i < static_cast<int>(_selectedImages.size()); i++) {
if (i == currentIndex) {
@@ -318,7 +322,7 @@ void WwtCommunicator::setImageOrder(int image, int order) {
_selectedImages = newDeque;
int reverseOrder = static_cast<int>(_selectedImages.size()) - order - 1;
ghoul::Dictionary message = setLayerOrderMessage(std::to_string(image), reverseOrder);
ghoul::Dictionary message = setLayerOrderMessage(imageUrl, reverseOrder);
sendMessageToWwt(message);
}
@@ -328,11 +332,11 @@ void WwtCommunicator::loadImageCollection(const std::string& collection) {
}
}
void WwtCommunicator::setImageOpacity(int i, float opacity) {
auto it = findSelectedImage(i);
void WwtCommunicator::setImageOpacity(const std::string& imageUrl, float opacity) {
auto it = findSelectedImage(imageUrl);
it->second = opacity;
ghoul::Dictionary msg = setImageOpacityMessage(std::to_string(i), opacity);
ghoul::Dictionary msg = setImageOpacityMessage(imageUrl, opacity);
sendMessageToWwt(msg);
}

View File

@@ -171,9 +171,8 @@ namespace {
return true;
}
std::optional<openspace::ImageData> loadImageFromNode(
const tinyxml2::XMLElement* node,
std::string collection)
std::optional<openspace::ImageData>
loadImageFromNode(const tinyxml2::XMLElement* node, const std::string& collection)
{
using namespace openspace;
@@ -243,7 +242,8 @@ namespace {
hasCelestialCoords,
fov,
equatorialSpherical,
equatorialCartesian
equatorialCartesian,
""
};
}
} //namespace
@@ -318,13 +318,21 @@ void WwtDataHandler::loadImages(const std::string& root,
saveImagesFromXml(rootNode, collectionName);
}
}
// Sort images in alphabetical order
std::sort(
_images.begin(),
_images.end(),
[](ImageData& a, ImageData& b) { return a.name < b.name; }
// Sort images. Copy images to vector
std::vector<ImageData> _imageVector;
for (const auto& [id, img] : _images) {
_imageVector.push_back(img);
}
// Sort
std::sort(_imageVector.begin(), _imageVector.end(),
[](const ImageData& lhs, const ImageData& rhs) {
return lhs.name < rhs.name;
}
);
// Set the identifiers to the correct order
for (int i = 0; i < _imageVector.size(); i++) {
_images[_imageVector[i].imageUrl].identifier = std::to_string(i);
}
LINFO(fmt::format("Loaded {} WorldWide Telescope images", _images.size()));
}
@@ -333,9 +341,16 @@ int WwtDataHandler::nLoadedImages() const {
return static_cast<int>(_images.size());
}
const ImageData& WwtDataHandler::image(int i) const {
ghoul_assert(i < static_cast<int>(_images.size()), "Index outside of vector size");
return _images[i];
std::optional<const ImageData> WwtDataHandler::image(const std::string& imageUrl) const {
auto it = _images.find(imageUrl);
if (it == _images.end()) {
return std::nullopt;
}
return it->second;
}
const std::map<std::string, ImageData>& WwtDataHandler::images() const {
return _images;
}
void WwtDataHandler::saveImagesFromXml(const tinyxml2::XMLElement* root,
@@ -350,9 +365,11 @@ void WwtDataHandler::saveImagesFromXml(const tinyxml2::XMLElement* root,
const std::string name = node->Name();
// If node is an image or place, load it
if (name == ImageSet || name == Place) {
std::optional<ImageData> image = loadImageFromNode(node, collection);
std::optional<ImageData> image = loadImageFromNode(
node, collection
);
if (image.has_value()) {
_images.push_back(std::move(*image));
_images.insert({ image.value().imageUrl, std::move(*image) });
}
}

View File

@@ -58,8 +58,9 @@ void KeybindingManager::keyboardCallback(Key key, KeyModifier modifier, KeyActio
if (!global::actionManager->hasAction(it->second)) {
// Silently ignoring the unknown action as the user might have intended to
// bind a key to multiple actions, only one of which could be defined
global::actionManager->triggerAction(it->second, ghoul::Dictionary());
continue;
}
global::actionManager->triggerAction(it->second, ghoul::Dictionary());
}
}
}

View File

@@ -46,6 +46,8 @@ namespace {
std::string identifier;
std::optional<std::string> guiName;
std::optional<bool> enabled;
};
#include "dashboarditem_codegen.cpp"
} // namespace
@@ -71,7 +73,7 @@ std::unique_ptr<DashboardItem> DashboardItem::createFromDictionary(
DashboardItem::DashboardItem(const ghoul::Dictionary& dictionary)
: properties::PropertyOwner({ "", "" })
, _isEnabled(EnabledInfo, true)
, _enabled(EnabledInfo, true)
{
const Parameters p = codegen::bake<Parameters>(dictionary);
@@ -80,11 +82,12 @@ DashboardItem::DashboardItem(const ghoul::Dictionary& dictionary)
setGuiName(*p.guiName);
}
addProperty(_isEnabled);
_enabled = p.enabled.value_or(_enabled);
addProperty(_enabled);
}
bool DashboardItem::isEnabled() const {
return _isEnabled;
return _enabled;
}
} // namespace openspace