From da955a6c29a8ffa3cc75e3b0cbc0d121282ea4e7 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Sat, 13 Jun 2020 13:08:47 +0200 Subject: [PATCH] General cleanup of Apollo scenes --- data/assets/apollo8.profile | 2 +- data/assets/apollo8.scene | 3 +- data/assets/apollo_sites.profile | 10 +- data/assets/apollo_sites.scene | 18 +- .../missions/apollo/{ => 11}/apollo11.asset | 83 ++-- .../missions/apollo/11/kernels.asset | 16 + .../apollo/{a11_lem.asset => 11/lem.asset} | 28 +- .../lem_descent.asset} | 21 +- .../lem_descent_rotation.asset} | 0 .../lem_flipbook.asset} | 4 +- .../missions/apollo/11/models.asset | 8 + .../missions/apollo/15/apollo15.asset | 115 +++++ .../missions/apollo/15/kernels.asset | 92 ++++ .../missions/apollo/17/boulder_models.asset | 8 + .../apollo/{ => 17}/bouldersstation2.asset | 51 +- .../apollo/{ => 17}/bouldersstation6.asset | 55 +-- .../apollo/{ => 17}/bouldersstation7.asset | 30 +- .../apollo/{a17_lem.asset => 17/lem.asset} | 24 +- .../missions/apollo/8/apollo8.asset | 3 + .../missions/apollo/8/kernels.asset | 17 + .../missions/apollo/8/launch_model.asset | 65 +++ .../solarsystem/missions/apollo/8/model.asset | 93 ++++ .../missions/apollo/8/trails.asset | 81 ++++ .../solarsystem/missions/apollo/a15.asset | 203 -------- .../missions/apollo/a15kernels.asset | 86 ---- .../solarsystem/missions/apollo/apollo8.asset | 235 --------- .../missions/apollo/apollo_csm.asset | 448 +++++++++--------- .../apollo/apollo_globebrowsing.asset | 10 +- .../missions/apollo/apollo_lem.asset | 14 +- .../missions/apollo/insignias_map.asset | 16 +- modules/base/rendering/renderablemodel.cpp | 14 +- 31 files changed, 865 insertions(+), 988 deletions(-) rename data/assets/scene/solarsystem/missions/apollo/{ => 11}/apollo11.asset (72%) create mode 100644 data/assets/scene/solarsystem/missions/apollo/11/kernels.asset rename data/assets/scene/solarsystem/missions/apollo/{a11_lem.asset => 11/lem.asset} (50%) rename data/assets/scene/solarsystem/missions/apollo/{apollo11_lem_descent.asset => 11/lem_descent.asset} (98%) rename data/assets/scene/solarsystem/missions/apollo/{apollo11_lem_descent_rotation.asset => 11/lem_descent_rotation.asset} (100%) rename data/assets/scene/solarsystem/missions/apollo/{apollo_11_lem_flipbook.asset => 11/lem_flipbook.asset} (89%) create mode 100644 data/assets/scene/solarsystem/missions/apollo/11/models.asset create mode 100644 data/assets/scene/solarsystem/missions/apollo/15/apollo15.asset create mode 100644 data/assets/scene/solarsystem/missions/apollo/15/kernels.asset create mode 100644 data/assets/scene/solarsystem/missions/apollo/17/boulder_models.asset rename data/assets/scene/solarsystem/missions/apollo/{ => 17}/bouldersstation2.asset (74%) rename data/assets/scene/solarsystem/missions/apollo/{ => 17}/bouldersstation6.asset (72%) rename data/assets/scene/solarsystem/missions/apollo/{ => 17}/bouldersstation7.asset (65%) rename data/assets/scene/solarsystem/missions/apollo/{a17_lem.asset => 17/lem.asset} (61%) create mode 100644 data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset create mode 100644 data/assets/scene/solarsystem/missions/apollo/8/kernels.asset create mode 100644 data/assets/scene/solarsystem/missions/apollo/8/launch_model.asset create mode 100644 data/assets/scene/solarsystem/missions/apollo/8/model.asset create mode 100644 data/assets/scene/solarsystem/missions/apollo/8/trails.asset delete mode 100644 data/assets/scene/solarsystem/missions/apollo/a15.asset delete mode 100644 data/assets/scene/solarsystem/missions/apollo/a15kernels.asset delete mode 100644 data/assets/scene/solarsystem/missions/apollo/apollo8.asset diff --git a/data/assets/apollo8.profile b/data/assets/apollo8.profile index f9a9c003fc..7c7b3f73bb 100644 --- a/data/assets/apollo8.profile +++ b/data/assets/apollo8.profile @@ -3,7 +3,7 @@ #Asset scene/solarsystem/planets/earth/moon/moon required -scene/solarsystem/missions/apollo/apollo8 required +scene/solarsystem/missions/apollo/8/apollo8 required scene/solarsystem/planets/earth/earth required #Property diff --git a/data/assets/apollo8.scene b/data/assets/apollo8.scene index 6ec4a8b9d5..fd8fcebb42 100644 --- a/data/assets/apollo8.scene +++ b/data/assets/apollo8.scene @@ -5,7 +5,7 @@ local sceneHelper = asset.require('util/scene_helper') asset.require('scene/solarsystem/planets/earth/moon/moon') -asset.require('scene/solarsystem/missions/apollo/apollo8.asset') +asset.require('scene/solarsystem/missions/apollo/8/apollo8.asset') -- Custom Keybindings local Keybindings = { @@ -118,7 +118,6 @@ asset.onInitialize(function () openspace.markInterestingNodes({ "Earth", "Moon", "Apollo8", "Apollo8Launch" }) openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.MinimumAllowedDistance', 0.000000); - openspace.setPropertyValueSingle('Scene.Moon.Renderable.LodScaleFactor', 24.0); openspace.globebrowsing.goToGeo(earthAsset.Earth.Identifier, 20, -60, 15000000) end) diff --git a/data/assets/apollo_sites.profile b/data/assets/apollo_sites.profile index f014e5b36d..9c42c9fa97 100644 --- a/data/assets/apollo_sites.profile +++ b/data/assets/apollo_sites.profile @@ -3,17 +3,15 @@ #Asset scene/solarsystem/planets/earth/moon/moon required -scene/solarsystem/missions/apollo/apollo8 required -scene/solarsystem/missions/apollo/apollo11 required -scene/solarsystem/missions/apollo/a17_lem required +scene/solarsystem/missions/apollo/8/apollo8 required +scene/solarsystem/missions/apollo/11/apollo11 required +scene/solarsystem/missions/apollo/17/lem required scene/solarsystem/missions/apollo/apollo_globebrowsing required -scene/solarsystem/missions/apollo/apollo_11_lem_flipbook required +scene/solarsystem/missions/apollo/11/lem_flipbook required scene/solarsystem/missions/apollo/insignias_map required #Property setPropertyValueSingle Scene.Moon.Renderable.Layers.ColorLayers.A17_travmap.BlendMode 0 -setPropertyValueSingle Scene.Apollo11LemDescentModel.Renderable.RotationVector { 273.750,28.0,309.85 } -setPropertyValueSingle Scene.Apollo11LemLandedModel.Renderable.RotationVector { 273.750,28.0,309.85 } setPropertyValueSingle Scene.Moon.Renderable.PerformShading false #Keybinding diff --git a/data/assets/apollo_sites.scene b/data/assets/apollo_sites.scene index e2ecc6ea29..aaf8a3c147 100644 --- a/data/assets/apollo_sites.scene +++ b/data/assets/apollo_sites.scene @@ -1,15 +1,14 @@ asset.require('./base') ---moonrocks.scene local sceneHelper = asset.require('util/scene_helper') --- local station2 = asset.require('scene/solarsystem/missions/apollo/bouldersstation2') --- local station6 = asset.require('scene/solarsystem/missions/apollo/bouldersstation6') --- local station7 = asset.require('scene/solarsystem/missions/apollo/bouldersstation7') -asset.require('scene/solarsystem/missions/apollo/apollo8') -asset.require('scene/solarsystem/missions/apollo/apollo11') -asset.require('scene/solarsystem/missions/apollo/a17_lem') +-- local station2 = asset.require('scene/solarsystem/missions/apollo/17/bouldersstation2') +-- local station6 = asset.require('scene/solarsystem/missions/apollo/17/bouldersstation6') +-- local station7 = asset.require('scene/solarsystem/missions/apollo/17/bouldersstation7') +asset.require('scene/solarsystem/missions/apollo/8/apollo8') +asset.require('scene/solarsystem/missions/apollo/11/apollo11') +asset.require('scene/solarsystem/missions/apollo/17/lem') asset.require('scene/solarsystem/missions/apollo/apollo_globebrowsing') -asset.require('scene/solarsystem/missions/apollo/apollo_11_lem_flipbook') +asset.require('scene/solarsystem/missions/apollo/11/lem_flipbook') asset.require('scene/solarsystem/missions/apollo/insignias_map') local Keybindings = { @@ -100,9 +99,6 @@ asset.onInitialize(function () -- 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.Apollo11LemDescentModel.Renderable.RotationVector', { 273.750,28.0,309.85 }); - openspace.setPropertyValueSingle('Scene.Apollo11LemLandedModel.Renderable.RotationVector', { 273.750,28.0,309.85 }); - openspace.globebrowsing.goToGeo(moonAsset.Moon.Identifier, 20, -60, 15000000) openspace.setPropertyValueSingle("Scene.Moon.Renderable.PerformShading", false) diff --git a/data/assets/scene/solarsystem/missions/apollo/apollo11.asset b/data/assets/scene/solarsystem/missions/apollo/11/apollo11.asset similarity index 72% rename from data/assets/scene/solarsystem/missions/apollo/apollo11.asset rename to data/assets/scene/solarsystem/missions/apollo/11/apollo11.asset index fb55dbe9ff..c65cd3c47a 100644 --- a/data/assets/scene/solarsystem/missions/apollo/apollo11.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/apollo11.asset @@ -1,39 +1,24 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local descentKeyframes = asset.require('./apollo11_lem_descent.asset') -local descentRotationKeyframes = asset.require('./apollo11_lem_descent_rotation.asset') -local model = asset.require('scene/solarsystem/missions/apollo/lem_model') +local asset_helper = asset.require('util/asset_helper') +local sun_transforms = asset.require('scene/solarsystem/sun/transforms') +local moon_transforms = asset.require('scene/solarsystem/planets/earth/moon/moon') + +local descentKeyframes = asset.require('./lem_descent.asset') +local descentRotationKeyframes = asset.require('./lem_descent_rotation.asset') + +local lem_model = asset.require('scene/solarsystem/missions/apollo/lem_model') +local kernels = asset.require('./kernels').kernels + +local models = asset.require('./models').models asset.require('spice/base') -local kernelsFolder = asset.syncedResource({ - Name = "Apollo Kernels", - Type = "HttpSynchronization", - Identifier = "apollo_11_spice", - Version = 1 -}) - -local modelFolder = asset.syncedResource({ - Name = "Apollo Models", - Type = "HttpSynchronization", - Identifier = "apollo_11_models", - Version = 1 -}) - -local kernels = { - kernelsFolder .. "/moon_080317.tf", - kernelsFolder .. "/apollo_naif_ids.tf", - kernelsFolder .. "/moon_pa_de421_1900-2050.bpc", - kernelsFolder .. '/apollo11_orbits_full9km.bsp', - kernelsFolder .. '/apollo11_orbits_lm9km.bsp', -} --landing - 1969-07-20T20:17:40 local apolloSpiceId = "-911" local apolloLemSpiceId = "-911500" local Apollo11Position = { Identifier = "Apollo11Position", - Parent = "Moon", + Parent = moon_transforms.Moon.Identifier, TimeFrame = { Type = "TimeFrameInterval", Start = "1969 JUL 19 19:38:29.183", @@ -58,28 +43,27 @@ local Apollo11Position = { local Apollo11Model = { Identifier = "Apollo11", Parent = Apollo11Position.Identifier, + TimeFrame = { + Type = "TimeFrameInterval", + Start = "1969 JUL 19 19:38:29.183", + End = "1969 JUL 22 04:55:35.183" + }, Transform = { Scale = { Type = "StaticScale", Scale = 20.0 } }, - TimeFrame = { - Type = "TimeFrameInterval", - Start = "1969 JUL 19 19:38:29.183", - End = "1969 JUL 22 04:55:35.183" - }, Renderable = { Type = "RenderableModel", Geometry = { Type = "MultiModelGeometry", - GeometryFile = modelFolder .. "/Apollo_CSM_shrunk_rotated_xy_double_size.obj" + GeometryFile = models .. "/Apollo_CSM_shrunk_rotated_xy_double_size.obj" }, - ColorTexture = modelFolder .. "/gray.png", - LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier) + ColorTexture = models .. "/gray.png", + LightSources = asset_helper.getDefaultLightSources(sun_transforms.SolarSystemBarycenter.Identifier) }, GUI = { - Hidden = false, Name = "Apollo 11 CSM", Path = "/Solar System/Missions/Apollo/11" } @@ -87,7 +71,7 @@ local Apollo11Model = { local Apollo11MoonTrail = { Identifier = "Apollo11MoonTrail", - Parent = "Moon", + Parent = moon_transforms.Moon.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = { @@ -102,7 +86,7 @@ local Apollo11MoonTrail = { EndTime = "1969 JUL 22 04:55:35.183", SampleInterval = 60, EnableFade = false, - Enabled = false, + Enabled = false }, GUI = { Name = "Apollo 11 Moon Orbits", @@ -140,7 +124,7 @@ local lemRotation = { local Apollo11LemTrail = { Identifier = "Apollo11LemTrail", - Parent = "Moon", + Parent = moon_transforms.Moon.Identifier, Renderable = { Type = "RenderableTrailTrajectory", Translation = lemTranslation, @@ -159,7 +143,7 @@ local Apollo11LemTrail = { local Apollo11LemPosition = { Identifier = "Apollo11LemPosition", - Parent = "Moon", + Parent = moon_transforms.Moon.Identifier, TimeFrame = { Type = "TimeFrameInterval", Start = "1969 JUL 20 19:10:25.183" @@ -169,7 +153,6 @@ local Apollo11LemPosition = { Rotation = lemRotation }, GUI = { - Hidden = false, Name = "Apollo 11 Lunar Lander Position", Path = "/Solar System/Missions/Apollo/11" } @@ -194,14 +177,14 @@ local Apollo11LemDescentModel = { Type = "RenderableModel", Geometry = { Type = "MultiModelGeometry", - GeometryFile = model.modelFolder .. "/lmremoved.obj" + GeometryFile = lem_model.modelFolder .. "/lmremoved.obj" }, SpecularIntensity = 0.0, - ColorTexture = model.modelFolder .. "/LM-2_ver2clean_u1_v1.jpeg", - LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier) + RotationVector = { 273.750,28.0,309.85 }, + ColorTexture = lem_model.modelFolder .. "/LM-2_ver2clean_u1_v1.jpeg", + LightSources = asset_helper.getDefaultLightSources(sun_transforms.SolarSystemBarycenter.Identifier) }, GUI = { - Hidden = false, Name = "Apollo 11 Descent Lem", Path = "/Solar System/Missions/Apollo/11" } @@ -224,14 +207,14 @@ local Apollo11LemLandedModel = { Type = "RenderableModel", Geometry = { Type = "MultiModelGeometry", - GeometryFile = model.modelFolder .. "/LM-2_ver2clean.obj" + GeometryFile = lem_model.modelFolder .. "/LM-2_ver2clean.obj" }, SpecularIntensity = 0.0, - ColorTexture = model.modelFolder .. "/LM-2_ver2clean_u1_v1.jpeg", - LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier) + RotationVector = { 273.750,28.0,309.85 }, + ColorTexture = lem_model.modelFolder .. "/LM-2_ver2clean_u1_v1.jpeg", + LightSources = asset_helper.getDefaultLightSources(sun_transforms.SolarSystemBarycenter.Identifier) }, GUI = { - Hidden = false, Name = "Apollo 11 Landed Lem", Path = "/Solar System/Missions/Apollo/11" } @@ -248,4 +231,4 @@ local exportList = { Apollo11LemTrail, } -assetHelper.registerSceneGraphNodesAndExport(asset, exportList) +asset_helper.registerSceneGraphNodesAndExport(asset, exportList) diff --git a/data/assets/scene/solarsystem/missions/apollo/11/kernels.asset b/data/assets/scene/solarsystem/missions/apollo/11/kernels.asset new file mode 100644 index 0000000000..d1ffcf55e4 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/11/kernels.asset @@ -0,0 +1,16 @@ +local kernelsFolder = asset.syncedResource({ + Name = "Apollo Kernels", + Type = "HttpSynchronization", + Identifier = "apollo_11_spice", + Version = 1 +}) + +local kernels = { + kernelsFolder .. "/moon_080317.tf", + kernelsFolder .. "/apollo_naif_ids.tf", + kernelsFolder .. "/moon_pa_de421_1900-2050.bpc", + kernelsFolder .. '/apollo11_orbits_full9km.bsp', + kernelsFolder .. '/apollo11_orbits_lm9km.bsp', +} + +asset.export('kernels', kernels) diff --git a/data/assets/scene/solarsystem/missions/apollo/a11_lem.asset b/data/assets/scene/solarsystem/missions/apollo/11/lem.asset similarity index 50% rename from data/assets/scene/solarsystem/missions/apollo/a11_lem.asset rename to data/assets/scene/solarsystem/missions/apollo/11/lem.asset index 05b81e0af4..badedf0412 100644 --- a/data/assets/scene/solarsystem/missions/apollo/a11_lem.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/lem.asset @@ -1,18 +1,18 @@ -- a11_lem.asset -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local moonAsset = asset.require('scene/solarsystem/planets/earth/moon/moon') +local asset_helper = asset.require('util/asset_helper') +local sun_transforms = asset.require('scene/solarsystem/sun/transforms') +local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') -local model = asset.require('scene/solarsystem/missions/apollo/lem_model') +local lem_model = asset.require('scene/solarsystem/missions/apollo/lem_model') local Apollo11Lem = { Identifier = "Apollo11Lem", - Parent = moonAsset.Moon.Identifier, + Parent = moon_asset.Moon.Identifier, Transform = { Translation = { Type = "GlobeTranslation", - Globe = moonAsset.Moon.Identifier, + Globe = moon_asset.Moon.Identifier, Longitude = -360+23.47306, Latitude = 0.67402, Altitude = -1927.65, @@ -38,10 +38,11 @@ local Apollo11LemModel = { Type = "RenderableModel", Geometry = { Type = "MultiModelGeometry", - GeometryFile = model.modelFolder .. "/LM-2_ver2clean.obj" + GeometryFile = lem_model.modelFolder .. "/LM-2_ver2clean.obj" }, - ColorTexture = model.modelFolder .. "/LM-2_ver2clean_u1_v1.jpeg", - LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier) + RotationVector = { 91.044090,171.229706,111.666664 }, + ColorTexture = lem_model.modelFolder .. "/LM-2_ver2clean_u1_v1.jpeg", + LightSources = asset_helper.getDefaultLightSources(sun_transforms.SolarSystemBarycenter.Identifier) }, GUI = { Hidden = false, @@ -50,11 +51,4 @@ local Apollo11LemModel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - Apollo11Lem, - Apollo11LemModel -}) - -asset.onInitialize(function () - openspace.setPropertyValueSingle('Scene.Apollo11LemModel.Renderable.RotationVector', { 91.044090,171.229706,111.666664} ); -end) +asset_helper.registerSceneGraphNodesAndExport(asset, { Apollo11Lem, Apollo11LemModel }) diff --git a/data/assets/scene/solarsystem/missions/apollo/apollo11_lem_descent.asset b/data/assets/scene/solarsystem/missions/apollo/11/lem_descent.asset similarity index 98% rename from data/assets/scene/solarsystem/missions/apollo/apollo11_lem_descent.asset rename to data/assets/scene/solarsystem/missions/apollo/11/lem_descent.asset index 93128f5181..3102e6a618 100644 --- a/data/assets/scene/solarsystem/missions/apollo/apollo11_lem_descent.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/lem_descent.asset @@ -1,16 +1,16 @@ -- The following keyframe data was converted from the_last_four_minutes_2019-06-09.kml, -- which is available at http://apollo.mem-tek.com/GoogleMoonKMZ.html --- In the conversion, some assumptions and simplifications were made: --- * The descent markers in the KML have Point nodes expressed "relative to ground" --- We assume that the ground is fixed at altitude 1927.65 meters below the reference ellipsoid, --- in order to match height data from a height map constructed from LRO data. --- * We manually offset the coordiantes slightly, by 0.013496003622691433 degrees in longitude and -0.007472581881668883 degrees in latitude, --- in order to match the landing spot specified at long: 23.47306, lat: 0.67402 extracted from footage from LRO. --- The kml file provided 23.45956399637731, lat: 0.6814925818816688 as the landing coordinates - hence the manual offset. --- If more accurate height/color maps are aqcuired, these values can be adjusted by running the conversion script again. --- For more information, contact emil.axelsson@liu.se. - +--[[ +In the conversion, some assumptions and simplifications were made: + * The descent markers in the KML have Point nodes expressed "relative to ground". + We assume that the ground is fixed at altitude 1927.65 meters below the reference ellipsoid, + in order to match height data from a height map constructed from LRO data. + * We manually offset the coordiantes slightly, by 0.013496003622691433 degrees in longitude and -0.007472581881668883 degrees in latitude, + in order to match the landing spot specified at long: 23.47306, lat: 0.67402 extracted from footage from LRO. + The kml file provided 23.45956399637731, lat: 0.6814925818816688 as the landing coordinates - hence the manual offset. + If more accurate height/color maps are aqcuired, these values can be adjusted by running the conversion script again. +]]-- local keyframes = { ['1969-07-20T20:13:40'] = { @@ -1832,4 +1832,3 @@ local keyframes = { }; asset.export('keyframes', keyframes); - diff --git a/data/assets/scene/solarsystem/missions/apollo/apollo11_lem_descent_rotation.asset b/data/assets/scene/solarsystem/missions/apollo/11/lem_descent_rotation.asset similarity index 100% rename from data/assets/scene/solarsystem/missions/apollo/apollo11_lem_descent_rotation.asset rename to data/assets/scene/solarsystem/missions/apollo/11/lem_descent_rotation.asset diff --git a/data/assets/scene/solarsystem/missions/apollo/apollo_11_lem_flipbook.asset b/data/assets/scene/solarsystem/missions/apollo/11/lem_flipbook.asset similarity index 89% rename from data/assets/scene/solarsystem/missions/apollo/apollo_11_lem_flipbook.asset rename to data/assets/scene/solarsystem/missions/apollo/11/lem_flipbook.asset index 4a342dd10f..1d0025bc74 100644 --- a/data/assets/scene/solarsystem/missions/apollo/apollo_11_lem_flipbook.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/lem_flipbook.asset @@ -1,8 +1,8 @@ ---apollo_11_lem_flipbook.asset local helper = asset.require('util/vrt_flipbook_helper') +local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') local assetPrefix = "A11flip"; -local assetGlobe = "Moon"; +local assetGlobe = moon_asset.Moon.Identifier; local flipbookCount = 19; local flipbook = nil; diff --git a/data/assets/scene/solarsystem/missions/apollo/11/models.asset b/data/assets/scene/solarsystem/missions/apollo/11/models.asset new file mode 100644 index 0000000000..36b3d25a94 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/11/models.asset @@ -0,0 +1,8 @@ +local modelFolder = asset.syncedResource({ + Name = "Apollo Models", + Type = "HttpSynchronization", + Identifier = "apollo_11_models", + Version = 1 +}) + +asset.export('models', modelFolder) diff --git a/data/assets/scene/solarsystem/missions/apollo/15/apollo15.asset b/data/assets/scene/solarsystem/missions/apollo/15/apollo15.asset new file mode 100644 index 0000000000..770592ba8e --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/15/apollo15.asset @@ -0,0 +1,115 @@ +local assetHelper = asset.require('util/asset_helper') +local moon_transforms = asset.require('scene/solarsystem/planets/earth/moon/moon') +local sun_transforms = asset.require('scene/solarsystem/sun/transforms') +local csm = asset.require('../apollo_csm') +asset.require('spice/base') + +local kernels = asset.require('scene/solarsystem/missions/apollo/15/kernels').kernels + + +-- local models = asset.syncedResource({ +-- Name = "Apollo 15 Models", +-- Type = "HttpSynchronization", +-- Identifier = "apollo_models", +-- Version = 1 +-- }) + +local LightSources = { + { + Type = "SceneGraphLightSource", + Identifier = "Sun", + Node = sun_transforms.SolarSystemBarycenter.Identifier, + Intensity = 1.0 + }, + -- { + -- Identifier = "Camera", + -- Type = "CameraLightSource", + -- Intensity = 0.5, + -- Enabled = false + -- } +} + + +local Apollo15 = { + Identifier = "Apollo15", + Parent = moon_transforms.Moon.Identifier, + Transform = { + Translation = { + Type = "SpiceTranslation", + Target = "APOLLO 15", + Observer = "MOON", + Frame = "IAU_MOON", + Kernels = kernels + }, + Rotation = { + Type = "SpiceRotation", + SourceFrame = "A15_METRIC", + DestinationFrame = "GALACTIC" + } + }, + TimeFrame = { + Type = "TimeFrameInterval", + Start = "1971-07-30T02:22:00.00", + End = "1971-08-01T18:05:00.00" + }, + GUI = { + Name = "Apollo 15", + Path = "/Solar System/Missions/Apollo/15" + } +} + +-- local Apollo15Main = { +-- Identifier = "Apollo15Main", +-- Parent = Apollo15.Identifier, +-- Renderable = { +-- Type = "RenderableModel", +-- Geometry = { +-- Type = "MultiModelGeometry", +-- -- GeometryFile = models .. "/Apollo_Spacecraft.obj" +-- GeometryFile = models .. "/Apollo_CSM_shrunk_rotated_xy_doubble_size.obj" +-- }, +-- ColorTexture = models .. "/gray.png", +-- LightSources = LightSources, +-- DisableFaceCulling = true +-- }, +-- GUI = { +-- Name = "Apollo 15 Main", +-- Path = "/Solar System/Missions/Apollo 15" +-- } +-- } + +local Apollo15Trail = { + Identifier = "Apollo15Trail", + Parent = moon_transforms.Moon.Identifier, + Renderable = { + Type = "RenderableTrailTrajectory", + Translation = { + Type = "SpiceTranslation", + Target = "APOLLO 15", + Observer = "MOON", + Frame = "IAU_MOON", + Kernels = kernels + }, + Color = { 0.70, 0.50, 0.20 }, + StartTime = "1971 JUL 26", + EndTime = "1971 AUG 01 14:30:41.680", + SampleInterval = 2 + }, + GUI = { + Name = "Apollo 15 Trail", + Path = "/Solar System/Missions/Apollo/15" + } +} + + +local model_part = csm.createCsmModel(Apollo15.Identifier) + +local list = { Apollo15, Apollo15Trail } +for k,v in pairs(model_part) do + v.GUI.Path = "/Solar System/Missions/Apollo/15/Model" + table.insert(list, v) +end + + +assetHelper.registerSceneGraphNodesAndExport(asset, list) + diff --git a/data/assets/scene/solarsystem/missions/apollo/15/kernels.asset b/data/assets/scene/solarsystem/missions/apollo/15/kernels.asset new file mode 100644 index 0000000000..1b00fd7596 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/15/kernels.asset @@ -0,0 +1,92 @@ +local folder = asset.syncedResource({ + Name = "Apollo Kernels", + Type = "HttpSynchronization", + Identifier = "apollo_spice", + Version = 1 +}) + +local kernels = { + folder .. "/apollo15.0001.tsc", + + -- folder .. '/AS15-P_v01.bc', + folder .. '/apollo15.0001.tf', + folder .. '/apollo15MetricAddendum002.ti', + -- folder .. '/apollo15PanoramicAddendum001.ti', + folder .. '/apollo15_metric.0002.ti', + -- folder .. '/apollo15_panoramic.0001.ti', + folder .. '/apollo15-1.bsp', + folder .. '/AS15-M_v01.bc', + -- folder .. '/AS15-M_v01.bsp', +} + +-- local kernels = { +-- --sclk +-- folder .. "apollo15.0001.tsc", + +-- --pck +-- folder .. "moon_080317.tf", +-- folder .. "moon_assoc_me.tf", + +-- --ik +-- folder .. "apollo15_metric_v2.0001.ti", +-- folder .. "apollo15_panoramic.0001.ti", + +-- --tspk +-- folder .. "de421.bsp", +-- folder .. "moon_pa_de421_1900-2050.bpc", + +-- --iak +-- folder .. "apollo15MetricAddendum002.ti", +-- folder .. "apolloPanAddendum001.ti", + +-- --fk +-- folder .. "apollo15_v2.0001.tf", +-- folder .. "apollo15_v2.0002.tf", + +-- --spk +-- folder .. "AS15_M_REV23_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV4.bsp ", +-- folder .. "AS15_M_REV70_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV04_v2.bsp ", +-- folder .. "AS15_M_REV27_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV44_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV71_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV15_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV33_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV50_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV71_SMITHED_V02.bsp", +-- folder .. "AS15_M_REV15_v2.bsp ", +-- folder .. "AS15_M_REV34_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV60_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV72_v2.bsp", +-- folder .. "AS15_M_REV16_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV35_SMITHED_V02.bsp", +-- folder .. "AS15_M_REV62_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV22_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV38_SMITHED_V01.bsp", +-- folder .. "AS15_M_REV63_SMITHED_V01.bsp", + +-- --ck +-- folder .. "AS15_M_REV04_SMITHED_V01.bc", +-- folder .. "AS15_M_REV15_SMITHED_V01.bc", +-- folder .. "AS15_M_REV16_SMITHED_V01.bc", +-- folder .. "AS15_M_REV22_SMITHED_V01.bc", +-- folder .. "AS15_M_REV23_SMITHED_V01.bc", +-- folder .. "AS15_M_REV27_SMITHED_V01.bc", +-- folder .. "AS15_M_REV33_SMITHED_V01.bc", +-- folder .. "AS15_M_REV34_SMITHED_V01.bc", +-- folder .. "AS15_M_REV35_SMITHED_V01.bc", +-- folder .. "AS15_M_REV35_SMITHED_V02.bc", +-- folder .. "AS15_M_REV38_SMITHED_V01.bc", +-- folder .. "AS15_M_REV44_SMITHED_V01.bc", +-- folder .. "AS15_M_REV50_SMITHED_V01.bc", +-- folder .. "AS15_M_REV60_SMITHED_V01.bc", +-- folder .. "AS15_M_REV62_SMITHED_V01.bc", +-- folder .. "AS15_M_REV63_SMITHED_V01.bc", +-- folder .. "AS15_M_REV70_SMITHED_V01.bc", +-- folder .. "AS15_M_REV71_SMITHED_V01.bc", +-- folder .. "AS15_M_REV71_SMITHED_V02.bc", +-- folder .. "AS15_M_REV72_v2.bc", +-- } + +asset.export("kernels", kernels) diff --git a/data/assets/scene/solarsystem/missions/apollo/17/boulder_models.asset b/data/assets/scene/solarsystem/missions/apollo/17/boulder_models.asset new file mode 100644 index 0000000000..7868bae468 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/17/boulder_models.asset @@ -0,0 +1,8 @@ +local models = asset.syncedResource({ + Name = "Apollo Boulders Models", + Type = "HttpSynchronization", + Identifier = "apollo_boulders", + Version = 1 +}) + +asset.export('models', models) diff --git a/data/assets/scene/solarsystem/missions/apollo/bouldersstation2.asset b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation2.asset similarity index 74% rename from data/assets/scene/solarsystem/missions/apollo/bouldersstation2.asset rename to data/assets/scene/solarsystem/missions/apollo/17/bouldersstation2.asset index 2d096b99d0..f709f0bc2b 100644 --- a/data/assets/scene/solarsystem/missions/apollo/bouldersstation2.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation2.asset @@ -1,20 +1,13 @@ -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local assetHelper = asset.require('util/asset_helper') -local earthAsset = asset.require('scene/solarsystem/planets/earth/earth') -local moonAsset = asset.require('scene/solarsystem/planets/earth/moon/moon') - -local models = asset.syncedResource({ - Name = "Apollo Models", - Type = "HttpSynchronization", - Identifier = "apollo_boulders", - Version = 1 -}) +local sun_transforms = asset.require('scene/solarsystem/sun/transforms') +local asset_helper = asset.require('util/asset_helper') +local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') +local models = asset.require('./boulder_models').models local LightSources = { { Type = "SceneGraphLightSource", Identifier = "Sun", - Node = sunTransforms.SolarSystemBarycenter.Identifier, + Node = sun_transforms.SolarSystemBarycenter.Identifier, Intensity = 1.0 }, { @@ -26,11 +19,11 @@ local LightSources = { local Station2Boulder1Holder = { Identifier = "Station_2_Boulder1", - Parent = moonAsset.Moon.Identifier, + Parent = moon_asset.Moon.Identifier, Transform = { Translation = { Type = "GlobeTranslation", - Globe = moonAsset.Moon.Identifier, + Globe = moon_asset.Moon.Identifier, Longitude = -360+30.5294692, Latitude = 20.098824, Altitude = -2442.8, @@ -58,6 +51,7 @@ local Station2Boulder1Model = { Type = "MultiModelGeometry", GeometryFile = models .. "/b1-v2.obj" }, + RotationVector = { 243.243256 ,206.270264, 309.677429 }, ColorTexture = models .. "/b1-v2_u1_v1.jpeg", LightSources = LightSources, PerformShading = false, @@ -71,11 +65,11 @@ local Station2Boulder1Model = { local Station2Boulder2Holder = { Identifier = "Station_2_Boulder2", - Parent = moonAsset.Moon.Identifier, + Parent = moon_asset.Moon.Identifier, Transform = { Translation = { Type = "GlobeTranslation", - Globe = moonAsset.Moon.Identifier, + Globe = moon_asset.Moon.Identifier, Longitude = -360+30.5287892, Latitude = 20.098240, Altitude = -2434.6, @@ -103,6 +97,7 @@ local Station2Boulder2Model = { Type = "MultiModelGeometry", GeometryFile = models .. "/b2model.obj" }, + RotationVector = { 66.162155, 7.783780, 114.193550 }, ColorTexture = models .. "/b2model_u1_v1.jpeg", LightSources = LightSources, PerformShading = false, @@ -116,11 +111,11 @@ local Station2Boulder2Model = { local Station2Boulder3Holder = { Identifier = "Station_2_Boulder3", - Parent = moonAsset.Moon.Identifier, + Parent = moon_asset.Moon.Identifier, Transform = { Translation = { Type = "GlobeTranslation", - Globe = moonAsset.Moon.Identifier, + Globe = moon_asset.Moon.Identifier, Longitude = -360+30.5294692, Latitude = 20.098610, Altitude = -2441.55, @@ -148,6 +143,7 @@ local Station2Boulder3Model = { Type = "MultiModelGeometry", GeometryFile = models .. "/b3model.obj" }, + RotationVector = { 161.513519 ,243.243256, 65.806450 }, ColorTexture = models .. "/b3model_u1_v1.jpeg", LightSources = LightSources, PerformShading = false, @@ -159,25 +155,8 @@ local Station2Boulder3Model = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { +asset_helper.registerSceneGraphNodesAndExport(asset, { Station2Boulder1Holder, Station2Boulder1Model, Station2Boulder2Holder, Station2Boulder2Model, Station2Boulder3Holder, Station2Boulder3Model }) - -asset.onInitialize(function () - openspace.setPropertyValueSingle( - 'Scene.Station2Boulder1Model.Renderable.RotationVector', - { 243.243256 ,206.270264, 309.677429 } - ); - - openspace.setPropertyValueSingle( - 'Scene.Station2Boulder3Model.Renderable.RotationVector', - { 161.513519 ,243.243256, 65.806450 } - ); - - openspace.setPropertyValueSingle( - 'Scene.Station2Boulder2Model.Renderable.RotationVector', - { 66.162155, 7.783780, 114.193550 } - ); -end) diff --git a/data/assets/scene/solarsystem/missions/apollo/bouldersstation6.asset b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation6.asset similarity index 72% rename from data/assets/scene/solarsystem/missions/apollo/bouldersstation6.asset rename to data/assets/scene/solarsystem/missions/apollo/17/bouldersstation6.asset index 919de3f9a8..d013b8fea4 100644 --- a/data/assets/scene/solarsystem/missions/apollo/bouldersstation6.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation6.asset @@ -1,20 +1,13 @@ - -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local assetHelper = asset.require('util/asset_helper') - -local models = asset.syncedResource({ - Name = "Apollo Models", - Type = "HttpSynchronization", - Identifier = "apollo_boulders", - Version = 1 -}) - +local sun_transforms = asset.require('scene/solarsystem/sun/transforms') +local asset_helper = asset.require('util/asset_helper') +local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') +local models = asset.require('./boulder_models').models local LightSources = { { Type = "SceneGraphLightSource", Identifier = "Sun", - Node = sunTransforms.SolarSystemBarycenter.Identifier, + Node = sun_transforms.SolarSystemBarycenter.Identifier, Intensity = 1.0 }, { @@ -24,17 +17,14 @@ local LightSources = { } } -local earthAsset = asset.require('scene/solarsystem/planets/earth/earth') -local moonAsset = asset.require('scene/solarsystem/planets/earth/moon/moon') - local Station6Frag1Holder = { Identifier = "Station_6_Fragment1", - Parent = moonAsset.Moon.Identifier, + Parent = moon_asset.Moon.Identifier, Transform = { Translation = { Type = "GlobeTranslation", - Globe = moonAsset.Moon.Identifier, + Globe = moon_asset.Moon.Identifier, Longitude = -360+30.80068, Latitude = 20.2903, Altitude = -2562.6, @@ -53,7 +43,7 @@ local Station6Frag1Model = { Transform = { Translation = { Type = "GlobeTranslation", - Globe = moonAsset.Moon.Identifier, + Globe = moon_asset.Moon.Identifier, Longitude = -360+30.8007, Latitude = 20.2903, Altitude = -2562.6, @@ -72,6 +62,7 @@ local Station6Frag1Model = { Type = "MultiModelGeometry", GeometryFile = models .. "/A17-S6-frag1.obj" }, + RotationVector = { 235.909088,165.000000,286.299194 }, ColorTexture = models .. "/A17-S6-frag1.png", LightSources = LightSources, PerformShading = false, @@ -87,7 +78,7 @@ local Station6Frag1Model = { local Station6Frag23Holder = { Identifier = "Station_6_Fragments_2_3", - Parent = moonAsset.Moon.Identifier, + Parent = moon_asset.Moon.Identifier, GUI = { Name = "Station 6 Fragments 2 & 3 Holder", Path = "/Solar System/Missions/Apollo/17/Station 6" @@ -105,7 +96,7 @@ local Station6Frag2Model = { }, Translation = { Type = "GlobeTranslation", - Globe = moonAsset.Moon.Identifier, + Globe = moon_asset.Moon.Identifier, Longitude = -360+30.80055, Latitude = 20.289808, Altitude = -2566.5, @@ -118,6 +109,7 @@ local Station6Frag2Model = { Type = "MultiModelGeometry", GeometryFile = models .. "/station6_boulder_frag2.obj" }, + RotationVector = { 336.959991,210.239990,325.984253 }, ColorTexture = models .. "/frag2crop_u1_v1.jpeg", LightSources = LightSources, PerformShading = false, @@ -129,8 +121,6 @@ local Station6Frag2Model = { } } - - local Station6Frag3Model = { Identifier = "A17S6F3", Parent = Station6Frag23Holder.Identifier, @@ -141,7 +131,7 @@ local Station6Frag3Model = { }, Translation = { Type = "GlobeTranslation", - Globe = moonAsset.Moon.Identifier, + Globe = moon_asset.Moon.Identifier, Longitude = -360+30.80053, Latitude = 20.29030, Altitude = -2563.0, @@ -154,6 +144,7 @@ local Station6Frag3Model = { Type = "MultiModelGeometry", GeometryFile = models .. "/station6_boulder_frag3.obj" }, + RotationVector = { 293.181824,255.000000,4.090910 }, ColorTexture = models .. "/frag3crop_u1_v1.jpeg", LightSources = LightSources, PerformShading = false, @@ -165,22 +156,6 @@ local Station6Frag3Model = { } } - - - -assetHelper.registerSceneGraphNodesAndExport(asset, { +asset_helper.registerSceneGraphNodesAndExport(asset, { Station6Frag1Holder, Station6Frag1Model, Station6Frag23Holder, Station6Frag2Model, Station6Frag3Model, }) - - - - -asset.onInitialize(function () - - openspace.setPropertyValueSingle('Scene.Station6Frag1Model.Renderable.RotationVector', {235.909088,165.000000,286.299194}); - openspace.setPropertyValueSingle('Scene.A17S6F5.Renderable.RotationVector', {336.959991,210.239990,325.984253}); - openspace.setPropertyValueSingle('Scene.A17S6F3.Renderable.RotationVector', {293.181824,255.000000,4.090910}); - openspace.setPropertyValueSingle('Scene.Station6Frag1Model.Renderable.PerformShading', false); - openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.MinimumAllowedDistance", 0.050000) - -end) diff --git a/data/assets/scene/solarsystem/missions/apollo/bouldersstation7.asset b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation7.asset similarity index 65% rename from data/assets/scene/solarsystem/missions/apollo/bouldersstation7.asset rename to data/assets/scene/solarsystem/missions/apollo/17/bouldersstation7.asset index d2eab52355..d2e9c5146c 100644 --- a/data/assets/scene/solarsystem/missions/apollo/bouldersstation7.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation7.asset @@ -1,19 +1,13 @@ - -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local assetHelper = asset.require('util/asset_helper') - -local models = asset.syncedResource({ - Name = "Apollo Models", - Type = "HttpSynchronization", - Identifier = "apollo_boulders", - Version = 1 -}) +local sun_transforms = asset.require('scene/solarsystem/sun/transforms') +local asset_helper = asset.require('util/asset_helper') +local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') +local models = asset.require('./boulder_models').models local LightSources = { { Type = "SceneGraphLightSource", Identifier = "Sun", - Node = sunTransforms.SolarSystemBarycenter.Identifier, + Node = sun_transforms.SolarSystemBarycenter.Identifier, Intensity = 1.0 }, { @@ -23,15 +17,13 @@ local LightSources = { } } -local moonAsset = asset.require('scene/solarsystem/planets/earth/moon/moon') - local Station7BoulderHolder = { Identifier = "Station_7_Boulder", - Parent = moonAsset.Moon.Identifier, + Parent = moon_asset.Moon.Identifier, Transform = { Translation = { Type = "GlobeTranslation", - Globe = moonAsset.Moon.Identifier, + Globe = moon_asset.Moon.Identifier, Longitude = -360+30.8165882, Latitude = 20.2908556, Altitude = -2593.5, @@ -59,6 +51,7 @@ local Station7BoulderModel = { Type = "MultiModelGeometry", GeometryFile = models .. "/b7model.obj" }, + RotationVector = { 1.945950,274.378387,212.903214 }, ColorTexture = models .. "/b7model_u1_v1.jpeg", LightSources = LightSources, PerformShading = false, @@ -70,11 +63,6 @@ local Station7BoulderModel = { } } - -assetHelper.registerSceneGraphNodesAndExport(asset, { +asset_helper.registerSceneGraphNodesAndExport(asset, { Station7BoulderHolder, Station7BoulderModel }) - -asset.onInitialize(function () - openspace.setPropertyValueSingle('Scene.Station7BoulderModel.Renderable.RotationVector', {1.945950,274.378387,212.903214}); -end) diff --git a/data/assets/scene/solarsystem/missions/apollo/a17_lem.asset b/data/assets/scene/solarsystem/missions/apollo/17/lem.asset similarity index 61% rename from data/assets/scene/solarsystem/missions/apollo/a17_lem.asset rename to data/assets/scene/solarsystem/missions/apollo/17/lem.asset index dd2d134127..50f81a1693 100644 --- a/data/assets/scene/solarsystem/missions/apollo/a17_lem.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/lem.asset @@ -1,17 +1,16 @@ ---a17_lem.asset -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local moonAsset = asset.require('scene/solarsystem/planets/earth/moon/moon') +local asset_helper = asset.require('util/asset_helper') +local sun_transforms = asset.require('scene/solarsystem/sun/transforms') +local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') local model = asset.require('scene/solarsystem/missions/apollo/lem_model') local Apollo17Lem = { Identifier = "Apollo17Lem", - Parent = moonAsset.Moon.Identifier, + Parent = moon_asset.Moon.Identifier, Transform = { Translation = { Type = "GlobeTranslation", - Globe = moonAsset.Moon.Identifier, + Globe = moon_asset.Moon.Identifier, Longitude = -329.22833, Latitude = 20.19092, UseHeightmap = true @@ -40,21 +39,14 @@ local Apollo17LemModel = { GeometryFile = model.modelFolder .. "/LM-2_ver2clean.obj" }, SpecularIntensity = 0.0, + RotationVector = { 110.255219,171.229706,126.666664 }, ColorTexture = model.modelFolder .. "/LM-2_ver2clean_u1_v1.jpeg", - LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier) + LightSources = asset_helper.getDefaultLightSources(sun_transforms.SolarSystemBarycenter.Identifier) }, GUI = { - Hidden = false, Name = "Apollo 17 Lem", Path = "/Solar System/Missions/Apollo/17" } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - Apollo17Lem, - Apollo17LemModel, -}) - -asset.onInitialize(function () - openspace.setPropertyValueSingle('Scene.Apollo17LemModel.Renderable.RotationVector', { 110.255219,171.229706,126.666664 }); -end) +asset_helper.registerSceneGraphNodesAndExport(asset, { Apollo17Lem, Apollo17LemModel }) diff --git a/data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset b/data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset new file mode 100644 index 0000000000..4b2a8777a1 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset @@ -0,0 +1,3 @@ +asset.require('./model') +asset.require('./launch_model') +asset.require('./trails') diff --git a/data/assets/scene/solarsystem/missions/apollo/8/kernels.asset b/data/assets/scene/solarsystem/missions/apollo/8/kernels.asset new file mode 100644 index 0000000000..5baf800205 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/8/kernels.asset @@ -0,0 +1,17 @@ +local kernelsFolder = asset.syncedResource({ + Name = "Apollo Kernels", + Type = "HttpSynchronization", + Identifier = "apollo_spice", + Version = 1 +}) + +local kernels = { + kernelsFolder .. "/moon_080317.tf", + kernelsFolder .. "/apollo8.tf", + kernelsFolder .. "/moon_pa_de421_1900-2050.bpc", + kernelsFolder .. '/apollo8.tsc', + kernelsFolder .. '/apollo8.bsp', + kernelsFolder .. '/apollo8_earthrise.bc', +} + +asset.export('kernels', kernels) diff --git a/data/assets/scene/solarsystem/missions/apollo/8/launch_model.asset b/data/assets/scene/solarsystem/missions/apollo/8/launch_model.asset new file mode 100644 index 0000000000..1e76c60931 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/8/launch_model.asset @@ -0,0 +1,65 @@ +local asset_helper = asset.require('util/asset_helper') +local earth_transforms = asset.require('scene/solarsystem/planets/earth/transforms') +local kernels = asset.require('./kernels').kernels +local csm = asset.require('../apollo_csm') + +local apolloSpiceId = "-908" + +local Apollo8Launch = { + Identifier = "Apollo8Launch", + Parent = earth_transforms.EarthIAU.Identifier, + TimeFrame = { + Type = "TimeFrameInterval", + Start = "1968 DEC 21", + End = "1968 DEC 28" + }, + Transform = { + Translation = { + Type = "SpiceTranslation", + Target = apolloSpiceId, + Observer = "EARTH", + Frame = "IAU_EARTH", + Kernels = kernels + }, + }, + GUI = { + Name = "Apollo 8 Launch Capsule", + Path = "/Solar System/Missions/Apollo" + } +} + +local Apollo8LaunchModel = { + Identifier = "Apollo8LaunchModel", + Parent = Apollo8Launch.Identifier, + TimeFrame = { + Type = "TimeFrameInterval", + Start = "1968 DEC 21", + End = "1968 DEC 22" + }, + Transform = { + Scale = { + Type = "StaticScale", + -- The scale of the model is in cm; OpenSpace is in m + Scale = 0.01 + }, + Rotation = { + Type = "StaticRotation", + Rotation = {0.0, 0.0, -3.1415 / 2} + } + }, + GUI = { + Hidden = true, + Name = "Apollo 8 Launch Model", + Path = "/Solar System/Missions/Apollo/8" + } +} + +local launch_model_part = csm.createCsmModel(Apollo8LaunchModel.Identifier) + +local list = { Apollo8Launch, Apollo8LaunchModel } +for k,v in pairs(launch_model_part) do + v.GUI.Path = "/Solar System/Missions/Apollo/8/Model" + table.insert(list, v) +end + +asset_helper.registerSceneGraphNodesAndExport(asset, list) diff --git a/data/assets/scene/solarsystem/missions/apollo/8/model.asset b/data/assets/scene/solarsystem/missions/apollo/8/model.asset new file mode 100644 index 0000000000..4b677cc818 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/8/model.asset @@ -0,0 +1,93 @@ +local asset_helper = asset.require('util/asset_helper') +local earth_transforms = asset.require('scene/solarsystem/planets/earth/transforms') +local kernels = asset.require('./kernels').kernels +local csm = asset.require('../apollo_csm') + +local apolloSpiceId = "-908" + +local Apollo8 = { + Identifier = "Apollo8", + Parent = earth_transforms.EarthBarycenter.Identifier, + TimeFrame = { + Type = "TimeFrameInterval", + Start = "1968 DEC 21", + End = "1968 DEC 28" + }, + Transform = { + Translation = { + Type = "SpiceTranslation", + Target = apolloSpiceId, + Observer = "EARTH BARYCENTER", + Frame = "GALACTIC", + Kernels = kernels + }, + Rotation = { + Type = "SpiceRotation", + SourceFrame = "A8_EARTHRISE", + DestinationFrame = "GALACTIC", + TimeFrame = { + -- The orientation of Apollo 8 is only available during the few minutes + -- when the Earthrise picture was taken. + Type = "TimeFrameInterval", + Start = "1968 DEC 24 16:37:19", + End = "1968 DEC 24 16:40:15" + } + } + }, + GUI = { + Name = "Apollo 8", + Path = "/Solar System/Missions/Apollo" + } +} + +local Apollo8Model = { + Identifier = "Apollo8Model", + Parent = Apollo8.Identifier, + TimeFrame = { + Type = "TimeFrameInterval", + Start = "1968 DEC 22", + End = "1968 DEC 28" + }, + Transform = { + Scale = { + Type = "StaticScale", + -- The scale of the model is in cm; OpenSpace is in m + Scale = 0.01 + }, + Rotation = { + Type = "StaticRotation", + Rotation = {0.0, 0.0, -3.1415 / 2} + } + }, + GUI = { + Hidden = true, + Name = "Apollo 8 Model", + Path = "/Solar System/Missions/Apollo" + } +} + +-- The pivot node is used for navigation inside the spacecraft +local Apollo8Pivot = { + Identifier = "Apollo8Pivot", + Parent = Apollo8.Identifier, + Transform = { + Translation = { + Type = "StaticTranslation", + Position = { 0, 2.5, 0 } + }, + }, + GUI = { + Name = "Apollo 8 Pivot", + Path = "/Solar System/Missions/Apollo" + } +} + +local model_part = csm.createCsmModel(Apollo8Model.Identifier) + +local list = { Apollo8, Apollo8Model, Apollo8Pivot } +for k,v in pairs(model_part) do + v.GUI.Path = "/Solar System/Missions/Apollo/8/Model" + table.insert(list, v) +end + +asset_helper.registerSceneGraphNodesAndExport(asset, list) diff --git a/data/assets/scene/solarsystem/missions/apollo/8/trails.asset b/data/assets/scene/solarsystem/missions/apollo/8/trails.asset new file mode 100644 index 0000000000..bd5d5f594e --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/8/trails.asset @@ -0,0 +1,81 @@ +local assetHelper = asset.require('util/asset_helper') + +local earth_transforms = asset.require('scene/solarsystem/planets/earth/transforms') +local moon_transforms = asset.require('scene/solarsystem/planets/earth/moon/moon') +local kernels = asset.require('./kernels').kernels + +local apolloSpiceId = "-908" + + +local LaunchTrail = { + Identifier = "Apollo8LaunchTrail", + Parent = earth_transforms.EarthIAU.Identifier, + Renderable = { + Type = "RenderableTrailTrajectory", + Translation = { + Type = "SpiceTranslation", + Target = apolloSpiceId, + Observer = "EARTH", + Frame = "IAU_EARTH", + Kernels = kernels + }, + Color = { 0.70, 0.50, 0.20 }, + StartTime = "1968 DEC 21 12:51:00", + EndTime = "1968 DEC 21 23:23:22", + SampleInterval = 30 + }, + GUI = { + Name = "Apollo 8 Launch Trail", + Path = "/Solar System/Missions/Apollo" + } +} + +local MoonTrail = { + Identifier = "Apollo8MoonTrail", + Parent = moon_transforms.Moon.Identifier, + Renderable = { + Type = "RenderableTrailTrajectory", + Translation = { + Type = "SpiceTranslation", + Target = apolloSpiceId, + Observer = "MOON", + Frame = "IAU_MOON", + Kernels = kernels + }, + Color = { 0.70, 0.50, 0.20 }, + StartTime = "1968 DEC 23", + EndTime = "1968 DEC 26", + SampleInterval = 30, + Enabled = false, + }, + GUI = { + Name = "Apollo 8 Moon Trail", + Path = "/Solar System/Missions/Apollo" + } +} + +local EarthBarycenterTrail = { + Identifier = "Apollo8EarthBarycenterTrail", + Parent = earth_transforms.EarthCenter.Identifier, + Renderable = { + Type = "RenderableTrailTrajectory", + Translation = { + Type = "SpiceTranslation", + Target = apolloSpiceId, + Observer = "EARTH", + Frame = "GALACTIC", + Kernels = kernels + }, + Color = { 0.8, 0.2, 0.2 }, + StartTime = "1968 DEC 21", + EndTime = "1968 DEC 28", + SampleInterval = 30, + Enabled = true, + }, + GUI = { + Name = "Apollo 8 Earth Barycenter Trail", + Path = "/Solar System/Missions/Apollo" + } +} + +assetHelper.registerSceneGraphNodesAndExport(asset, { LaunchTrail, MoonTrail, EarthBarycenterTrail }) diff --git a/data/assets/scene/solarsystem/missions/apollo/a15.asset b/data/assets/scene/solarsystem/missions/apollo/a15.asset deleted file mode 100644 index 659edf4fd2..0000000000 --- a/data/assets/scene/solarsystem/missions/apollo/a15.asset +++ /dev/null @@ -1,203 +0,0 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -asset.require('spice/base') - ---asset.require('scene/solarsystem/missions/apollo/a15kernels') - - -local models = asset.syncedResource({ - Name = "Apollo 15 Models", - Type = "HttpSynchronization", - Identifier = "apollo_models", - Version = 1 -}) - -local kernels = asset.syncedResource({ - Name = "Apollo Kernels", - Type = "HttpSynchronization", - Identifier = "apollo_spice", - Version = 1 -}) - -local Kernels = { - kernels .. "/apollo15.0001.tsc", - - -- kernels .. '/AS15-P_v01.bc', - kernels .. '/apollo15.0001.tf', - kernels .. '/apollo15MetricAddendum002.ti', - -- kernels .. '/apollo15PanoramicAddendum001.ti', - kernels .. '/apollo15_metric.0002.ti', - -- kernels .. '/apollo15_panoramic.0001.ti', - kernels .. '/apollo15-1.bsp', - kernels .. '/AS15-M_v01.bc', - -- kernels .. '/AS15-M_v01.bsp', -} - - - --- local Apollo15Kernels = { --- --sclk --- ApolloKernels .. "/apollo15.0001.tsc", - --- --pck --- ApolloKernels .. "/moon_080317.tf", --- ApolloKernels .. "/moon_assoc_me.tf", - --- --ik --- ApolloKernels .. "/apollo15_metric_v2.0001.ti", --- ApolloKernels .. "/apollo15_panoramic.0001.ti", - --- --tspk --- ApolloKernels .. "/de421.bsp", --- ApolloKernels .. "/moon_pa_de421_1900-2050.bpc", - --- --iak --- ApolloKernels .. "/apollo15MetricAddendum002.ti", --- ApolloKernels .. "/apolloPanAddendum001.ti", - --- --fk --- ApolloKernels .. "/apollo15_v2.0001.tf", --- ApolloKernels .. "/apollo15_v2.0002.tf", - --- --spk --- ApolloKernels .. "/AS15_M_REV23_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV4.bsp ", --- ApolloKernels .. "/AS15_M_REV70_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV04_v2.bsp ", --- ApolloKernels .. "/AS15_M_REV27_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV44_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV71_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV15_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV33_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV50_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV71_SMITHED_V02.bsp", --- ApolloKernels .. "/AS15_M_REV15_v2.bsp ", --- ApolloKernels .. "/AS15_M_REV34_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV60_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV72_v2.bsp", --- ApolloKernels .. "/AS15_M_REV16_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV35_SMITHED_V02.bsp", --- ApolloKernels .. "/AS15_M_REV62_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV22_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV38_SMITHED_V01.bsp", --- ApolloKernels .. "/AS15_M_REV63_SMITHED_V01.bsp", - --- --ck --- ApolloKernels .. "/AS15_M_REV04_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV15_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV16_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV22_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV23_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV27_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV33_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV34_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV35_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV35_SMITHED_V02.bc", --- ApolloKernels .. "/AS15_M_REV38_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV44_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV50_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV60_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV62_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV63_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV70_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV71_SMITHED_V01.bc", --- ApolloKernels .. "/AS15_M_REV71_SMITHED_V02.bc", --- ApolloKernels .. "/AS15_M_REV72_v2.bc", --- } - - - - -local LightSources = { - { - Type = "SceneGraphLightSource", - Identifier = "Sun", - Node = sunTransforms.SolarSystemBarycenter.Identifier, - Intensity = 1.0 - }, - -- { - -- Identifier = "Camera", - -- Type = "CameraLightSource", - -- Intensity = 0.5, - -- Enabled = false - -- } -} - - -local Apollo15 = { - Identifier = "Apollo15", - Parent = "Moon", - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = "APOLLO 15", - Observer = "MOON", - Frame = "IAU_MOON", - Kernels = Kernels - }, - Rotation = { - Type = "SpiceRotation", - SourceFrame = "A15_METRIC", - DestinationFrame = "GALACTIC" - } - }, - TimeFrame = { -- Using Spice kernels for 1850-2150 - Type = "TimeFrameInterval", - Start = "1971-07-30T02:22:00.00", - End = "1971-08-01T18:05:00.00" - }, - GUI = { - Name = "Apollo 15", - Path = "/Solar System/Missions/Apollo 15" - } -} - -local Apollo15Main = { - Identifier = "Apollo15Main", - Parent = Apollo15.Identifier, - Renderable = { - Type = "RenderableModel", - Geometry = { - Type = "MultiModelGeometry", --- GeometryFile = models .. "/Apollo_Spacecraft.obj" - GeometryFile = models .. "/Apollo_CSM_shrunk_rotated_xy_doubble_size.obj" - }, - ColorTexture = models .. "/gray.png", - LightSources = LightSources, - DisableFaceCulling = true - }, - GUI = { - Name = "Apollo 15 Main", - Path = "/Solar System/Missions/Apollo 15" - } -} - -local Apollo15Trail = { - Identifier = "Apollo15Trail", - Parent = "Moon", - Renderable = { - Type = "RenderableTrailTrajectory", - Translation = { - Type = "SpiceTranslation", - Target = "APOLLO 15", - Observer = "MOON", - Frame = "IAU_MOON", - Kernels = Kernels - }, - Color = { 0.70, 0.50, 0.20 }, - StartTime = "1971 JUL 26", - EndTime = "1971 AUG 01 14:30:41.680", - SampleInterval = 2 - }, - GUI = { - Name = "Apollo 15 Trail", - Path = "/Solar System/Missions/Apollo 15" - } -} - -assetHelper.registerSceneGraphNodesAndExport(asset, { - Apollo15, - Apollo15Main, - Apollo15Trail -}) - diff --git a/data/assets/scene/solarsystem/missions/apollo/a15kernels.asset b/data/assets/scene/solarsystem/missions/apollo/a15kernels.asset deleted file mode 100644 index eca91e2614..0000000000 --- a/data/assets/scene/solarsystem/missions/apollo/a15kernels.asset +++ /dev/null @@ -1,86 +0,0 @@ -local ApolloKernels = asset.syncedResource({ - Name = "Apollo Kernels", - Type = "HttpSynchronization", - Identifier = "apollo_spice", - Version = 1 -}) - -local Apollo15Kernels = { - - - - --sclk - ApolloKernels .. "apollo15.0001.tsc", - - --pck - ApolloKernels .. "moon_080317.tf", - ApolloKernels .. "moon_assoc_me.tf", - - --ik - ApolloKernels .. "apollo15_metric_v2.0001.ti", - ApolloKernels .. "apollo15_panoramic.0001.ti", - - --tspk - ApolloKernels .. "de421.bsp", - ApolloKernels .. "moon_pa_de421_1900-2050.bpc", - - --iak - ApolloKernels .. "apollo15MetricAddendum002.ti", - ApolloKernels .. "apolloPanAddendum001.ti", - - --fk - ApolloKernels .. "apollo15_v2.0001.tf", - ApolloKernels .. "apollo15_v2.0002.tf", - - --spk - ApolloKernels .. "AS15_M_REV23_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV4.bsp ", - ApolloKernels .. "AS15_M_REV70_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV04_v2.bsp ", - ApolloKernels .. "AS15_M_REV27_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV44_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV71_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV15_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV33_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV50_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV71_SMITHED_V02.bsp", - ApolloKernels .. "AS15_M_REV15_v2.bsp ", - ApolloKernels .. "AS15_M_REV34_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV60_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV72_v2.bsp", - ApolloKernels .. "AS15_M_REV16_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV35_SMITHED_V02.bsp", - ApolloKernels .. "AS15_M_REV62_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV22_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV38_SMITHED_V01.bsp", - ApolloKernels .. "AS15_M_REV63_SMITHED_V01.bsp", - - --ck - ApolloKernels .. "AS15_M_REV04_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV15_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV16_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV22_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV23_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV27_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV33_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV34_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV35_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV35_SMITHED_V02.bc", - ApolloKernels .. "AS15_M_REV38_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV44_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV50_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV60_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV62_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV63_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV70_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV71_SMITHED_V01.bc", - ApolloKernels .. "AS15_M_REV71_SMITHED_V02.bc", - ApolloKernels .. "AS15_M_REV72_v2.bc", - - -} - - - ---asset.export("ApolloKernels", Kernels) -asset.export("Apollo15Kernels", Apollo15Kernels) diff --git a/data/assets/scene/solarsystem/missions/apollo/apollo8.asset b/data/assets/scene/solarsystem/missions/apollo/apollo8.asset deleted file mode 100644 index fc54aeacfc..0000000000 --- a/data/assets/scene/solarsystem/missions/apollo/apollo8.asset +++ /dev/null @@ -1,235 +0,0 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local csm = asset.require('./apollo_csm') - -asset.require('spice/base') - -local kernelsFolder = asset.syncedResource({ - Name = "Apollo Kernels", - Type = "HttpSynchronization", - Identifier = "apollo_spice", - Version = 1 -}) - -local kernels = { - kernelsFolder .. "/moon_080317.tf", - kernelsFolder .. "/apollo8.tf", - kernelsFolder .. "/moon_pa_de421_1900-2050.bpc", - kernelsFolder .. '/apollo8.tsc', - kernelsFolder .. '/apollo8.bsp', - kernelsFolder .. '/apollo8_earthrise.bc', -} - -local apolloSpiceId = "-908" - -local Apollo8Launch = { - Identifier = "Apollo8Launch", - Parent = "Earth", - TimeFrame = { -- Using Spice kernels for 1850-2150 - Type = "TimeFrameInterval", - Start = "1968 DEC 21", - End = "1968 DEC 28" - }, - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = apolloSpiceId, - Observer = "EARTH", - Frame = "IAU_EARTH", - Kernels = kernels - }, - }, - GUI = { - Name = "Apollo 8 Launch Capsule", - Path = "/Solar System/Missions/Apollo" - } -} - - -local Apollo8 = { - Identifier = "Apollo8", - Parent = "EarthBarycenter", - TimeFrame = { -- Using Spice kernels for 1850-2150 - Type = "TimeFrameInterval", - Start = "1968 DEC 21", - End = "1968 DEC 28" - }, - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = apolloSpiceId, - Observer = "EARTH BARYCENTER", - Frame = "GALACTIC", - Kernels = kernels - }, - Rotation = { - Type = "SpiceRotation", - SourceFrame = "A8_EARTHRISE", - DestinationFrame = "GALACTIC", - TimeFrame = { - -- The orientation of Apollo 8 is only - -- available during the few minutes when - -- the famous Earthrise picture was taken. - Type = "TimeFrameInterval", - Start = "1968 DEC 24 16:37:19", - End = "1968 DEC 24 16:40:15" - } - } - }, - GUI = { - Name = "Apollo 8", - Path = "/Solar System/Missions/Apollo" - } -} - -local Apollo8LaunchModel = { - Identifier = "Apollo8LaunchModel", - Parent = Apollo8Launch.Identifier, - Transform = { - Scale = { - Type = "StaticScale", - -- The scale of the model is in cm; OpenSpace is in m - Scale = 0.01 - }, - Rotation = { - Type = "StaticRotation", - Rotation = {0.0, 0.0, -3.1415/2} - } - }, - GUI = { - Hidden = true, - Name = "Apollo 8 Launch Model", - Path = "/Solar System/Missions/Apollo" - } -} - -local Apollo8Model = { - Identifier = "Apollo8Model", - Parent = Apollo8.Identifier, - Transform = { - Scale = { - Type = "StaticScale", - -- The scale of the model is in cm; OpenSpace is in m - Scale = 0.01 - }, - Rotation = { - Type = "StaticRotation", - Rotation = {0.0, 0.0, -3.1415/2} - } - }, - GUI = { - Hidden = true, - Name = "Apollo 8 Model", - Path = "/Solar System/Missions/Apollo" - } -} - -local PivotOffset = { 0, 2.5, 0 } - --- The pivot node is used for navigation inside the spacecraft - -local Apollo8Pivot = { - Identifier = "Apollo8Pivot", - Parent = Apollo8.Identifier, - Transform = { - Translation = { - Type = "StaticTranslation", - Position = PivotOffset - }, - }, - GUI = { - Name = "Apollo 8 Pivot", - Path = "/Solar System/Missions/Apollo" - } -} - - -local Apollo8LaunchTrail = { - Identifier = "Apollo8LaunchTrail", - Parent = "Earth", - Renderable = { - Type = "RenderableTrailTrajectory", - Translation = { - Type = "SpiceTranslation", - Target = apolloSpiceId, - Observer = "EARTH", - Frame = "IAU_EARTH", - Kernels = kernels - }, - Color = { 0.70, 0.50, 0.20 }, - StartTime = "1968 DEC 21 12:51:00", - EndTime = "1968 DEC 21 23:23:22", - SampleInterval = 30 - }, - GUI = { - Name = "Apollo 8 Launch Trail", - Path = "/Solar System/Missions/Apollo" - } -} - -local Apollo8MoonTrail = { - Identifier = "Apollo8MoonTrail", - Parent = "Moon", - Renderable = { - Type = "RenderableTrailTrajectory", - Translation = { - Type = "SpiceTranslation", - Target = apolloSpiceId, - Observer = "MOON", - Frame = "IAU_MOON", - Kernels = kernels - }, - Color = { 0.70, 0.50, 0.20 }, - StartTime = "1968 DEC 23", - EndTime = "1968 DEC 26", - SampleInterval = 30, - Enabled = false, - }, - GUI = { - Name = "Apollo 8 Moon Trail", - Path = "/Solar System/Missions/Apollo" - } -} - -local Apollo8EarthBarycenterTrail = { - Identifier = "Apollo8EarthBarycenterTrail", - Parent = "EarthCenter", - Renderable = { - Type = "RenderableTrailTrajectory", - Translation = { - Type = "SpiceTranslation", - Target = apolloSpiceId, - Observer = "EARTH", - Frame = "GALACTIC", - Kernels = kernels - }, - Color = { 0.8, 0.2, 0.2 }, - StartTime = "1968 DEC 21", - EndTime = "1968 DEC 28", - SampleInterval = 30, - Enabled = true, - }, - GUI = { - Name = "Apollo 8 Earth Barycenter Trail", - Path = "/Solar System/Missions/Apollo" - } -} - - -local exportList = { - Apollo8, - Apollo8Model, - Apollo8Launch, - Apollo8LaunchModel, - Apollo8Pivot, - - Apollo8LaunchTrail, - Apollo8MoonTrail, - Apollo8EarthBarycenterTrail -} - -assetHelper.registerSceneGraphNodesAndExport(asset, exportList) --- Registering Command and Service module needs to happen fter the export list --- has been registered, since it depends on the Apollo8Model scene graph node. -csm.registerCsm(asset, Apollo8Model.Identifier) -csm.registerCsm(asset, Apollo8LaunchModel.Identifier) diff --git a/data/assets/scene/solarsystem/missions/apollo/apollo_csm.asset b/data/assets/scene/solarsystem/missions/apollo/apollo_csm.asset index 3f5a1e012e..32581a1597 100644 --- a/data/assets/scene/solarsystem/missions/apollo/apollo_csm.asset +++ b/data/assets/scene/solarsystem/missions/apollo/apollo_csm.asset @@ -1,11 +1,11 @@ -- This asset exports a function to create an Apollo Command and Service Module (CSM). -- Instead of hard-coding the scene graph node parent, -- client assets can decide which object that the CSM should be attached to. --- Usage example: registerCsm(asset, Apollo8.Idenfitier) +-- Usage example: createCsmModel(asset, Apollo8.Idenfitier) -- ...where Apollo8 is the scene graph node identifier to attach the CSM to. -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local asset_helper = asset.require('util/asset_helper') +local sun_transforms = asset.require('scene/solarsystem/sun/transforms') local models = asset.syncedResource({ Name = "Apollo Models", @@ -18,115 +18,115 @@ local partsInfo = { -- Data is structured as: Geometry file name (except .obj suffix), texture file name, shading -- Exterior - {"AP08_cone_command_module", "Command_module_diff.png", true}, - {"AP08_cone_hatchdoor_handle_scratched_metal", "scratched_metal_gloss.png", true}, - {"AP08_cone_vent_ports_black", "black.png", true}, - {"AP08_cone_vent_ports_red", "red.png", true}, - {"AP08_cone_hatchdoor_interior", "apollo_hatchdoor_interior.jpg", false}, + { "AP08_cone_command_module", "Command_module_diff.png", true }, + { "AP08_cone_hatchdoor_handle_scratched_metal", "scratched_metal_gloss.png", true }, + { "AP08_cone_vent_ports_black", "black.png", true }, + { "AP08_cone_vent_ports_red", "red.png", true }, + { "AP08_cone_hatchdoor_interior", "apollo_hatchdoor_interior.jpg", false }, - {"AP08_service_black", "black.png", true}, - {"AP08_service_brown", "brown.png", true}, - {"AP08_service_grey", "gray.png", true}, - {"AP08_service_high_gain_antenna", "Antenna_diff.png", true}, - {"AP08_service_module", "Service_module_diff.png", true}, - {"AP08_service_nozzle", "Nozzle_diff.png", true}, - {"AP08_service_pink", "pink.png", true}, - {"AP08_service_red", "red.png", true}, - {"AP08_service_scratched_metal", "scratched_metal_gloss.png", true}, - {"AP08_service_white", "white.png", true}, + { "AP08_service_black", "black.png", true }, + { "AP08_service_brown", "brown.png", true }, + { "AP08_service_grey", "gray.png", true }, + { "AP08_service_high_gain_antenna", "Antenna_diff.png", true }, + { "AP08_service_module", "Service_module_diff.png", true }, + { "AP08_service_nozzle", "Nozzle_diff.png", true }, + { "AP08_service_pink", "pink.png", true }, + { "AP08_service_red", "red.png", true }, + { "AP08_service_scratched_metal", "scratched_metal_gloss.png", true }, + { "AP08_service_white", "white.png", true }, -- Interior - -- {"AP11_int_back_wall_left", "AP11_int_back_wall_left.png", false}, - -- {"AP11_int_back_wall_right", "AP11_int_back_wall_right.png", false}, - -- {"AP11_interior_back_wall_top_0Shape3", "back_wall_top_0Shape3_tpAmbient_paint_03.png", false}, - -- {"AP11_interior_belt_buckles_02_L2", "belt_buckles_02_L2Shape_tpAmbient.png", false}, - -- {"AP11_interior_belt_straps_02", "belt_straps_02Shape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_black_push_buttons", "push_buttonsShape_tpAmbient.png", false}, - -- {"AP11_interior_bottom_boxes_03", "bottom_boxes_03_paint_01.png", false}, - -- {"AP11_interior_bottom_floor_tp", "bottom_floor_tpAmbient_paint_v002.png", false}, - -- {"AP11_interior_box_back_01", "box_back_01_paint_v001.png", false}, - -- {"AP11_interior_box_back_02", "box_back_02_paint_v001.png", false}, - -- {"AP11_interior_box_back_04", "box_back_04_paint_v001.png", false}, - -- {"AP11_interior_box_lft_lower_01", "box_lft_lower_01Shape_Diffuse_paint_v002.png", false}, - -- {"AP11_interior_box_lft_top", "box_lft_topShape_Diffuse_paint_v009.png", false}, - -- {"AP11_interior_box_mid_tp", "box_mid_tpDiffuse_paint_v001.png", false}, - -- {"AP11_interior_box_rt_top_02", "box_rt_top_02_paint_04.png", false}, - -- {"AP11_interior_brushed_blue_ano", "brushed_blue_ano_paint_01.png", false}, - -- {"AP11_interior_brushed_brass", "brushed_brass_paint_01.png", false}, - -- {"AP11_interior_brushed_grey_ano", "brushed_grey_ano_paint_02.png", false}, - -- {"AP11_interior_canvas_cover", "canvas_coverShape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_Channel_attachment", "Channel_attachment_Diffuse.png", false}, - -- {"AP11_interior_Channel_baseMetal", "Channel_baseMetal_Diffuse.png", false}, - -- {"AP11_interior_Channel_Material", "Channel_Material_Diffuse.png", false}, - -- {"AP11_interior_Channel_rsMaterial2", "Channel_rsMaterial2_Diffuse.png", false}, - -- {"AP11_interior_cloth_01", "cloth_01Shape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_coiled_hose", "coiled_hoseShape_tpAmbient.png", false}, - -- {"AP11_interior_control_panel_left_win_plates", "control_panel_left_win_platesShape_tpAmbient.png", false}, - -- {"AP11_interior_control_panel_rt_win_plates", "control_panel_rt_win_platesShape_tpAmbient.png", false}, - -- {"AP11_interior_copper_parts_main_cp", "copper_parts_main_cpShape_tpAmbient.png", false}, - -- {"AP11_interior_dials_main2", "dials_main2Shape_tpAmbient.png", false}, - -- {"AP11_interior_dials_t2", "dials_t2Shape_tpAmbient.png", false}, - -- {"AP11_interior_dial_fixes_01", "dial_fixes_01Shape_tpAmbient.png", false}, - -- {"AP11_interior_fire_ex_02", "fire_ex_02_paint_v001.png", false}, - -- {"AP11_interior_floor_panels_3", "floor_panels_3Shape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_floor_tile_tex_01", "floor_tile_tex_01.png", false}, - -- {"AP11_interior_grey", "gray.png", false}, - -- {"AP11_interior_handholds_cp", "handholds_cpShape_tpAmbient_paint_05.png", false}, - -- {"AP11_interior_hatch_release_0Shape5", "hatch_release_0Shape5_tpAmbient_paint_02.png", false}, - -- {"AP11_interior_headrests_02", "headrests_02Shape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_hoses_black_01", "hoses_black_01Shape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_hoses_white_0Shape1", "hoses_white_0Shape1_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_josticks1", "joysticks1Shape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_joysticks_fabric1", "joysticks_fabric1_Shape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_joystick_poles_lft_05", "joystick_poles_lft_05_paint_v002.png", false}, - -- {"AP11_interior_joystick_poles_lft_long_05", "joystick_poles_lft_long_05_paint_v002.png", false}, - -- {"AP11_interior_joystick_poles_rt_05", "joystick_poles_rt_05_paint_v002.png", false}, - -- {"AP11_interior_latch_mechanisms_01", "latch_mechanisms_01Shape_tpAmbient.png", false}, - -- {"AP11_interior_lower_push_buttons", "lower_push_buttonsShape_tpAmbient.png", false}, - -- {"AP11_interior_lower_walls_back", "lower_walls_back_paint_04.png", false}, - -- {"AP11_interior_lower_walls_boxes_head", "lower_walls_boxes_headShape_tpAmbient_paint_v001.png", false}, - -- {"AP11_interior_main_cp_left_smth_03", "main_cp_left_0Shape3_tpAmbient_paint_02.png", false}, - -- {"AP11_interior_main_cp_mid_smth_02", "main_cp_mid_smth_02Shape_tpAmbient_paint_02.png", false}, - -- {"AP11_interior_main_cp_rt_smth", "main_cp_rt_smthShape_tpAmbient_paint_02.png", false}, - -- {"AP11_interior_main_cp_wheels", "main_cp_wheelsShape_tpAmbient.png", false}, - -- {"AP11_interior_metal_brackets_under_hatch", "metal_brackets_under_hatchShape_tpAmbient.png", false}, - -- {"AP11_interior_metal_tunnel_parts", "metal_tunnel_partsShape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_metal_window_parts", "metal_window_partsShape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_middle_walls_05", "middle_walls_05_tpAmbient_paint_02.png", false}, - -- {"AP11_interior_middle_walls_0Shape8", "middle_walls_0Shape8_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_mid_tunnel_parts", "mid_tunnel_parts_03Shape_tpAmbient_paint_02.png", false}, - -- {"AP11_interior_new_switch_rails1", "new_switch_rails1Shape_tpAmbient.png", false}, - -- {"AP11_interior_nozzles_02", "nozzles_02Shape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_outlet_fabric3", "outlet_fabric3Shape_tpAmbient_paint_02.png", false}, - -- {"AP11_interior_pole_end_02", "pole_end_02.png", false}, - -- {"AP11_interior_pole_end_03", "pole_end_03.png", false}, - -- {"AP11_interior_pole_tex_03", "pole_tex_03.png", false}, - -- {"AP11_interior_pole_tex_04", "pole_tex_04.png", false}, - -- {"AP11_interior_pole_tex_05", "pole_tex_05.png", false}, - -- {"AP11_interior_pole_tex_lower_01", "pole_tex_lower_01.png", false}, - -- {"AP11_interior_pole_under_seat_paint_01", "pole_under_seat_paint_01.png", false}, - -- {"AP11_interior_pole_under_seat_square_bar", "pole_under_seat_square_bar_paint_01.png", false}, - -- {"AP11_interior_push_switches_lft1", "push_switches_lft1Shape_tpAmbient.png", false}, - -- {"AP11_interior_random_small_parts_01", "random_small_parts_01Shape_tpAmbient_paint_02.png", false}, - -- {"AP11_interior_red", "red.png", false}, - -- {"AP11_interior_reticle_wheel_tp", "reticle_wheel_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_rivet_paint_v001", "rivet_paint_v001.png", false}, - -- {"AP11_interior_seats_fabric", "seats_fabric_paint_01.png", false}, - -- {"AP11_interior_seat_left_tp", "seat_left_tpAmbient_paint_v001.png", false}, - -- {"AP11_interior_seat_lights_left", "seat_lights_left_Shape_tpAmbient_paint_v001.png", false}, - -- {"AP11_interior_seat_lights_rt", "seat_lights_rt_Shape_tpAmbient_paint_v001.png", false}, - -- {"AP11_interior_seat_middle_tp", "seat_middle_tpAmbient_paint_v001.png", false}, - -- {"AP11_interior_seat_poles_0Shape1", "seat_poles_0Shape1_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_seat_pole_mirror_0Shape1", "seat_pole_mirror_0Shape1_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_seat_rt_tp", "seat_rt_tpAmbient_paint_v001.png", false}, - -- {"AP11_interior_sextant_0Shape2", "sextant_0Shape2_tpAmbient.png", false}, - -- {"AP11_interior_switch_covers_main_middle1", "switch_covers_main_middle1Shape_tpAmbient.png", false}, - -- {"AP11_interior_switch_rails_lft", "switch_rails_lftShape_tpAmbient.png", false}, - -- {"AP11_interior_tunnel_main_cylinder1", "switch_rails_lftShape_tpAmbient.png", false}, - -- {"AP11_interior_tunnel_switches_01", "tunnel_switches_01Shape_tpAmbient.png", false}, - -- {"AP11_interior_tunnel_wheelsShape", "tunnel_wheelsShape_tpAmbient.png", false}, - -- {"AP11_interior_walls_mid_left", "walls_mid_leftShape_tpAmbient_paint_01.png", false}, - -- {"AP11_interior_windows_front_0Shape4", "windows_front_0Shape4_tpAmbient_paint_01.png", false} + -- { "AP11_int_back_wall_left", "AP11_int_back_wall_left.png", false}, + -- { "AP11_int_back_wall_right", "AP11_int_back_wall_right.png", false }, + -- { "AP11_interior_back_wall_top_0Shape3", "back_wall_top_0Shape3_tpAmbient_paint_03.png", false }, + -- { "AP11_interior_belt_buckles_02_L2", "belt_buckles_02_L2Shape_tpAmbient.png", false }, + -- { "AP11_interior_belt_straps_02", "belt_straps_02Shape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_black_push_buttons", "push_buttonsShape_tpAmbient.png", false }, + -- { "AP11_interior_bottom_boxes_03", "bottom_boxes_03_paint_01.png", false }, + -- { "AP11_interior_bottom_floor_tp", "bottom_floor_tpAmbient_paint_v002.png", false }, + -- { "AP11_interior_box_back_01", "box_back_01_paint_v001.png", false }, + -- { "AP11_interior_box_back_02", "box_back_02_paint_v001.png", false }, + -- { "AP11_interior_box_back_04", "box_back_04_paint_v001.png", false }, + -- { "AP11_interior_box_lft_lower_01", "box_lft_lower_01Shape_Diffuse_paint_v002.png", false }, + -- { "AP11_interior_box_lft_top", "box_lft_topShape_Diffuse_paint_v009.png", false }, + -- { "AP11_interior_box_mid_tp", "box_mid_tpDiffuse_paint_v001.png", false }, + -- { "AP11_interior_box_rt_top_02", "box_rt_top_02_paint_04.png", false }, + -- { "AP11_interior_brushed_blue_ano", "brushed_blue_ano_paint_01.png", false }, + -- { "AP11_interior_brushed_brass", "brushed_brass_paint_01.png", false }, + -- { "AP11_interior_brushed_grey_ano", "brushed_grey_ano_paint_02.png", false }, + -- { "AP11_interior_canvas_cover", "canvas_coverShape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_Channel_attachment", "Channel_attachment_Diffuse.png", false }, + -- { "AP11_interior_Channel_baseMetal", "Channel_baseMetal_Diffuse.png", false }, + -- { "AP11_interior_Channel_Material", "Channel_Material_Diffuse.png", false }, + -- { "AP11_interior_Channel_rsMaterial2", "Channel_rsMaterial2_Diffuse.png", false }, + -- { "AP11_interior_cloth_01", "cloth_01Shape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_coiled_hose", "coiled_hoseShape_tpAmbient.png", false }, + -- { "AP11_interior_control_panel_left_win_plates", "control_panel_left_win_platesShape_tpAmbient.png", false }, + -- { "AP11_interior_control_panel_rt_win_plates", "control_panel_rt_win_platesShape_tpAmbient.png", false }, + -- { "AP11_interior_copper_parts_main_cp", "copper_parts_main_cpShape_tpAmbient.png", false }, + -- { "AP11_interior_dials_main2", "dials_main2Shape_tpAmbient.png", false }, + -- { "AP11_interior_dials_t2", "dials_t2Shape_tpAmbient.png", false }, + -- { "AP11_interior_dial_fixes_01", "dial_fixes_01Shape_tpAmbient.png", false }, + -- { "AP11_interior_fire_ex_02", "fire_ex_02_paint_v001.png", false }, + -- { "AP11_interior_floor_panels_3", "floor_panels_3Shape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_floor_tile_tex_01", "floor_tile_tex_01.png", false }, + -- { "AP11_interior_grey", "gray.png", false }, + -- { "AP11_interior_handholds_cp", "handholds_cpShape_tpAmbient_paint_05.png", false }, + -- { "AP11_interior_hatch_release_0Shape5", "hatch_release_0Shape5_tpAmbient_paint_02.png", false }, + -- { "AP11_interior_headrests_02", "headrests_02Shape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_hoses_black_01", "hoses_black_01Shape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_hoses_white_0Shape1", "hoses_white_0Shape1_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_josticks1", "joysticks1Shape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_joysticks_fabric1", "joysticks_fabric1_Shape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_joystick_poles_lft_05", "joystick_poles_lft_05_paint_v002.png", false }, + -- { "AP11_interior_joystick_poles_lft_long_05", "joystick_poles_lft_long_05_paint_v002.png", false }, + -- { "AP11_interior_joystick_poles_rt_05", "joystick_poles_rt_05_paint_v002.png", false }, + -- { "AP11_interior_latch_mechanisms_01", "latch_mechanisms_01Shape_tpAmbient.png", false }, + -- { "AP11_interior_lower_push_buttons", "lower_push_buttonsShape_tpAmbient.png", false }, + -- { "AP11_interior_lower_walls_back", "lower_walls_back_paint_04.png", false }, + -- { "AP11_interior_lower_walls_boxes_head", "lower_walls_boxes_headShape_tpAmbient_paint_v001.png", false }, + -- { "AP11_interior_main_cp_left_smth_03", "main_cp_left_0Shape3_tpAmbient_paint_02.png", false }, + -- { "AP11_interior_main_cp_mid_smth_02", "main_cp_mid_smth_02Shape_tpAmbient_paint_02.png", false }, + -- { "AP11_interior_main_cp_rt_smth", "main_cp_rt_smthShape_tpAmbient_paint_02.png", false }, + -- { "AP11_interior_main_cp_wheels", "main_cp_wheelsShape_tpAmbient.png", false }, + -- { "AP11_interior_metal_brackets_under_hatch", "metal_brackets_under_hatchShape_tpAmbient.png", false }, + -- { "AP11_interior_metal_tunnel_parts", "metal_tunnel_partsShape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_metal_window_parts", "metal_window_partsShape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_middle_walls_05", "middle_walls_05_tpAmbient_paint_02.png", false }, + -- { "AP11_interior_middle_walls_0Shape8", "middle_walls_0Shape8_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_mid_tunnel_parts", "mid_tunnel_parts_03Shape_tpAmbient_paint_02.png", false }, + -- { "AP11_interior_new_switch_rails1", "new_switch_rails1Shape_tpAmbient.png", false }, + -- { "AP11_interior_nozzles_02", "nozzles_02Shape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_outlet_fabric3", "outlet_fabric3Shape_tpAmbient_paint_02.png", false }, + -- { "AP11_interior_pole_end_02", "pole_end_02.png", false }, + -- { "AP11_interior_pole_end_03", "pole_end_03.png", false }, + -- { "AP11_interior_pole_tex_03", "pole_tex_03.png", false }, + -- { "AP11_interior_pole_tex_04", "pole_tex_04.png", false }, + -- { "AP11_interior_pole_tex_05", "pole_tex_05.png", false }, + -- { "AP11_interior_pole_tex_lower_01", "pole_tex_lower_01.png", false }, + -- { "AP11_interior_pole_under_seat_paint_01", "pole_under_seat_paint_01.png", false }, + -- { "AP11_interior_pole_under_seat_square_bar", "pole_under_seat_square_bar_paint_01.png", false }, + -- { "AP11_interior_push_switches_lft1", "push_switches_lft1Shape_tpAmbient.png", false }, + -- { "AP11_interior_random_small_parts_01", "random_small_parts_01Shape_tpAmbient_paint_02.png", false }, + -- { "AP11_interior_red", "red.png", false }, + -- { "AP11_interior_reticle_wheel_tp", "reticle_wheel_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_rivet_paint_v001", "rivet_paint_v001.png", false }, + -- { "AP11_interior_seats_fabric", "seats_fabric_paint_01.png", false }, + -- { "AP11_interior_seat_left_tp", "seat_left_tpAmbient_paint_v001.png", false }, + -- { "AP11_interior_seat_lights_left", "seat_lights_left_Shape_tpAmbient_paint_v001.png", false }, + -- { "AP11_interior_seat_lights_rt", "seat_lights_rt_Shape_tpAmbient_paint_v001.png", false }, + -- { "AP11_interior_seat_middle_tp", "seat_middle_tpAmbient_paint_v001.png", false }, + -- { "AP11_interior_seat_poles_0Shape1", "seat_poles_0Shape1_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_seat_pole_mirror_0Shape1", "seat_pole_mirror_0Shape1_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_seat_rt_tp", "seat_rt_tpAmbient_paint_v001.png", false }, + -- { "AP11_interior_sextant_0Shape2", "sextant_0Shape2_tpAmbient.png", false }, + -- { "AP11_interior_switch_covers_main_middle1", "switch_covers_main_middle1Shape_tpAmbient.png", false }, + -- { "AP11_interior_switch_rails_lft", "switch_rails_lftShape_tpAmbient.png", false }, + -- { "AP11_interior_tunnel_main_cylinder1", "switch_rails_lftShape_tpAmbient.png", false }, + -- { "AP11_interior_tunnel_switches_01", "tunnel_switches_01Shape_tpAmbient.png", false }, + -- { "AP11_interior_tunnel_wheelsShape", "tunnel_wheelsShape_tpAmbient.png", false }, + -- { "AP11_interior_walls_mid_left", "walls_mid_leftShape_tpAmbient_paint_01.png", false }, + -- { "AP11_interior_windows_front_0Shape4", "windows_front_0Shape4_tpAmbient_paint_01.png", false } } @@ -134,147 +134,147 @@ local partsInfoFull = { -- Data is structured as: Geometry file name (except .obj suffix), texture file name, shading -- Exterior - {"AP08_cone_command_module", "Command_module_diff.png", true}, - {"AP08_cone_hatchdoor_handle_scratched_metal", "scratched_metal_gloss.png", true}, - {"AP08_cone_vent_ports_black", "black.png", true}, - {"AP08_cone_vent_ports_red", "red.png", true}, - {"AP08_cone_hatchdoor_interior", "apollo_hatchdoor_interior.jpg", false}, + { "AP08_cone_command_module", "Command_module_diff.png", true }, + { "AP08_cone_hatchdoor_handle_scratched_metal", "scratched_metal_gloss.png", true }, + { "AP08_cone_vent_ports_black", "black.png", true }, + { "AP08_cone_vent_ports_red", "red.png", true }, + { "AP08_cone_hatchdoor_interior", "apollo_hatchdoor_interior.jpg", false }, - {"AP08_service_black", "black.png", true}, - {"AP08_service_brown", "brown.png", true}, - {"AP08_service_grey", "gray.png", true}, - {"AP08_service_high_gain_antenna", "Antenna_diff.png", true}, - {"AP08_service_module", "Service_module_diff.png", true}, - {"AP08_service_nozzle", "Nozzle_diff.png", true}, - {"AP08_service_pink", "pink.png", true}, - {"AP08_service_red", "red.png", true}, - {"AP08_service_scratched_metal", "scratched_metal_gloss.png", true}, - {"AP08_service_white", "white.png", true}, + { "AP08_service_black", "black.png", true }, + { "AP08_service_brown", "brown.png", true }, + { "AP08_service_grey", "gray.png", true }, + { "AP08_service_high_gain_antenna", "Antenna_diff.png", true }, + { "AP08_service_module", "Service_module_diff.png", true }, + { "AP08_service_nozzle", "Nozzle_diff.png", true }, + { "AP08_service_pink", "pink.png", true }, + { "AP08_service_red", "red.png", true }, + { "AP08_service_scratched_metal", "scratched_metal_gloss.png", true }, + { "AP08_service_white", "white.png", true }, -- Interior - {"AP11_int_back_wall_left", "AP11_int_back_wall_left.png", false}, - {"AP11_int_back_wall_right", "AP11_int_back_wall_right.png", false}, - {"AP11_interior_back_wall_top_0Shape3", "back_wall_top_0Shape3_tpAmbient_paint_03.png", false}, - {"AP11_interior_belt_buckles_02_L2", "belt_buckles_02_L2Shape_tpAmbient.png", false}, - {"AP11_interior_belt_straps_02", "belt_straps_02Shape_tpAmbient_paint_01.png", false}, - {"AP11_interior_black_push_buttons", "push_buttonsShape_tpAmbient.png", false}, - {"AP11_interior_bottom_boxes_03", "bottom_boxes_03_paint_01.png", false}, - {"AP11_interior_bottom_floor_tp", "bottom_floor_tpAmbient_paint_v002.png", false}, - {"AP11_interior_box_back_01", "box_back_01_paint_v001.png", false}, - {"AP11_interior_box_back_02", "box_back_02_paint_v001.png", false}, - {"AP11_interior_box_back_04", "box_back_04_paint_v001.png", false}, - {"AP11_interior_box_lft_lower_01", "box_lft_lower_01Shape_Diffuse_paint_v002.png", false}, - {"AP11_interior_box_lft_top", "box_lft_topShape_Diffuse_paint_v009.png", false}, - {"AP11_interior_box_mid_tp", "box_mid_tpDiffuse_paint_v001.png", false}, - {"AP11_interior_box_rt_top_02", "box_rt_top_02_paint_04.png", false}, - {"AP11_interior_brushed_blue_ano", "brushed_blue_ano_paint_01.png", false}, - {"AP11_interior_brushed_brass", "brushed_brass_paint_01.png", false}, - {"AP11_interior_brushed_grey_ano", "brushed_grey_ano_paint_02.png", false}, - {"AP11_interior_canvas_cover", "canvas_coverShape_tpAmbient_paint_01.png", false}, - {"AP11_interior_Channel_attachment", "Channel_attachment_Diffuse.png", false}, - {"AP11_interior_Channel_baseMetal", "Channel_baseMetal_Diffuse.png", false}, - {"AP11_interior_Channel_Material", "Channel_Material_Diffuse.png", false}, - {"AP11_interior_Channel_rsMaterial2", "Channel_rsMaterial2_Diffuse.png", false}, - {"AP11_interior_cloth_01", "cloth_01Shape_tpAmbient_paint_01.png", false}, - {"AP11_interior_coiled_hose", "coiled_hoseShape_tpAmbient.png", false}, - {"AP11_interior_control_panel_left_win_plates", "control_panel_left_win_platesShape_tpAmbient.png", false}, - {"AP11_interior_control_panel_rt_win_plates", "control_panel_rt_win_platesShape_tpAmbient.png", false}, - {"AP11_interior_copper_parts_main_cp", "copper_parts_main_cpShape_tpAmbient.png", false}, - {"AP11_interior_dials_main2", "dials_main2Shape_tpAmbient.png", false}, - {"AP11_interior_dials_t2", "dials_t2Shape_tpAmbient.png", false}, - {"AP11_interior_dial_fixes_01", "dial_fixes_01Shape_tpAmbient.png", false}, - {"AP11_interior_fire_ex_02", "fire_ex_02_paint_v001.png", false}, - {"AP11_interior_floor_panels_3", "floor_panels_3Shape_tpAmbient_paint_01.png", false}, - {"AP11_interior_floor_tile_tex_01", "floor_tile_tex_01.png", false}, - {"AP11_interior_grey", "gray.png", false}, - {"AP11_interior_handholds_cp", "handholds_cpShape_tpAmbient_paint_05.png", false}, - {"AP11_interior_hatch_release_0Shape5", "hatch_release_0Shape5_tpAmbient_paint_02.png", false}, - {"AP11_interior_headrests_02", "headrests_02Shape_tpAmbient_paint_01.png", false}, - {"AP11_interior_hoses_black_01", "hoses_black_01Shape_tpAmbient_paint_01.png", false}, - {"AP11_interior_hoses_white_0Shape1", "hoses_white_0Shape1_tpAmbient_paint_01.png", false}, - {"AP11_interior_josticks1", "joysticks1Shape_tpAmbient_paint_01.png", false}, - {"AP11_interior_joysticks_fabric1", "joysticks_fabric1_Shape_tpAmbient_paint_01.png", false}, - {"AP11_interior_joystick_poles_lft_05", "joystick_poles_lft_05_paint_v002.png", false}, - {"AP11_interior_joystick_poles_lft_long_05", "joystick_poles_lft_long_05_paint_v002.png", false}, - {"AP11_interior_joystick_poles_rt_05", "joystick_poles_rt_05_paint_v002.png", false}, - {"AP11_interior_latch_mechanisms_01", "latch_mechanisms_01Shape_tpAmbient.png", false}, - {"AP11_interior_lower_push_buttons", "lower_push_buttonsShape_tpAmbient.png", false}, - {"AP11_interior_lower_walls_back", "lower_walls_back_paint_04.png", false}, - {"AP11_interior_lower_walls_boxes_head", "lower_walls_boxes_headShape_tpAmbient_paint_v001.png", false}, - {"AP11_interior_main_cp_left_smth_03", "main_cp_left_0Shape3_tpAmbient_paint_02.png", false}, - {"AP11_interior_main_cp_mid_smth_02", "main_cp_mid_smth_02Shape_tpAmbient_paint_02.png", false}, - {"AP11_interior_main_cp_rt_smth", "main_cp_rt_smthShape_tpAmbient_paint_02.png", false}, - {"AP11_interior_main_cp_wheels", "main_cp_wheelsShape_tpAmbient.png", false}, - {"AP11_interior_metal_brackets_under_hatch", "metal_brackets_under_hatchShape_tpAmbient.png", false}, - {"AP11_interior_metal_tunnel_parts", "metal_tunnel_partsShape_tpAmbient_paint_01.png", false}, - {"AP11_interior_metal_window_parts", "metal_window_partsShape_tpAmbient_paint_01.png", false}, - {"AP11_interior_middle_walls_05", "middle_walls_05_tpAmbient_paint_02.png", false}, - {"AP11_interior_middle_walls_0Shape8", "middle_walls_0Shape8_tpAmbient_paint_01.png", false}, - {"AP11_interior_mid_tunnel_parts", "mid_tunnel_parts_03Shape_tpAmbient_paint_02.png", false}, - {"AP11_interior_new_switch_rails1", "new_switch_rails1Shape_tpAmbient.png", false}, - {"AP11_interior_nozzles_02", "nozzles_02Shape_tpAmbient_paint_01.png", false}, - {"AP11_interior_outlet_fabric3", "outlet_fabric3Shape_tpAmbient_paint_02.png", false}, - {"AP11_interior_pole_end_02", "pole_end_02.png", false}, - {"AP11_interior_pole_end_03", "pole_end_03.png", false}, - {"AP11_interior_pole_tex_03", "pole_tex_03.png", false}, - {"AP11_interior_pole_tex_04", "pole_tex_04.png", false}, - {"AP11_interior_pole_tex_05", "pole_tex_05.png", false}, - {"AP11_interior_pole_tex_lower_01", "pole_tex_lower_01.png", false}, - {"AP11_interior_pole_under_seat_paint_01", "pole_under_seat_paint_01.png", false}, - {"AP11_interior_pole_under_seat_square_bar", "pole_under_seat_square_bar_paint_01.png", false}, - {"AP11_interior_push_switches_lft1", "push_switches_lft1Shape_tpAmbient.png", false}, - {"AP11_interior_random_small_parts_01", "random_small_parts_01Shape_tpAmbient_paint_02.png", false}, - {"AP11_interior_red", "red.png", false}, - {"AP11_interior_reticle_wheel_tp", "reticle_wheel_tpAmbient_paint_01.png", false}, - {"AP11_interior_rivet_paint_v001", "rivet_paint_v001.png", false}, - {"AP11_interior_seats_fabric", "seats_fabric_paint_01.png", false}, - {"AP11_interior_seat_left_tp", "seat_left_tpAmbient_paint_v001.png", false}, - {"AP11_interior_seat_lights_left", "seat_lights_left_Shape_tpAmbient_paint_v001.png", false}, - {"AP11_interior_seat_lights_rt", "seat_lights_rt_Shape_tpAmbient_paint_v001.png", false}, - {"AP11_interior_seat_middle_tp", "seat_middle_tpAmbient_paint_v001.png", false}, - {"AP11_interior_seat_poles_0Shape1", "seat_poles_0Shape1_tpAmbient_paint_01.png", false}, - {"AP11_interior_seat_pole_mirror_0Shape1", "seat_pole_mirror_0Shape1_tpAmbient_paint_01.png", false}, - {"AP11_interior_seat_rt_tp", "seat_rt_tpAmbient_paint_v001.png", false}, - {"AP11_interior_sextant_0Shape2", "sextant_0Shape2_tpAmbient.png", false}, - {"AP11_interior_switch_covers_main_middle1", "switch_covers_main_middle1Shape_tpAmbient.png", false}, - {"AP11_interior_switch_rails_lft", "switch_rails_lftShape_tpAmbient.png", false}, - {"AP11_interior_tunnel_main_cylinder1", "switch_rails_lftShape_tpAmbient.png", false}, - {"AP11_interior_tunnel_switches_01", "tunnel_switches_01Shape_tpAmbient.png", false}, - {"AP11_interior_tunnel_wheelsShape", "tunnel_wheelsShape_tpAmbient.png", false}, - {"AP11_interior_walls_mid_left", "walls_mid_leftShape_tpAmbient_paint_01.png", false}, - {"AP11_interior_windows_front_0Shape4", "windows_front_0Shape4_tpAmbient_paint_01.png", false} + { "AP11_int_back_wall_left", "AP11_int_back_wall_left.png", false }, + { "AP11_int_back_wall_right", "AP11_int_back_wall_right.png", false }, + { "AP11_interior_back_wall_top_0Shape3", "back_wall_top_0Shape3_tpAmbient_paint_03.png", false }, + { "AP11_interior_belt_buckles_02_L2", "belt_buckles_02_L2Shape_tpAmbient.png", false }, + { "AP11_interior_belt_straps_02", "belt_straps_02Shape_tpAmbient_paint_01.png", false }, + { "AP11_interior_black_push_buttons", "push_buttonsShape_tpAmbient.png", false }, + { "AP11_interior_bottom_boxes_03", "bottom_boxes_03_paint_01.png", false }, + { "AP11_interior_bottom_floor_tp", "bottom_floor_tpAmbient_paint_v002.png", false }, + { "AP11_interior_box_back_01", "box_back_01_paint_v001.png", false }, + { "AP11_interior_box_back_02", "box_back_02_paint_v001.png", false }, + { "AP11_interior_box_back_04", "box_back_04_paint_v001.png", false }, + { "AP11_interior_box_lft_lower_01", "box_lft_lower_01Shape_Diffuse_paint_v002.png", false }, + { "AP11_interior_box_lft_top", "box_lft_topShape_Diffuse_paint_v009.png", false }, + { "AP11_interior_box_mid_tp", "box_mid_tpDiffuse_paint_v001.png", false }, + { "AP11_interior_box_rt_top_02", "box_rt_top_02_paint_04.png", false }, + { "AP11_interior_brushed_blue_ano", "brushed_blue_ano_paint_01.png", false }, + { "AP11_interior_brushed_brass", "brushed_brass_paint_01.png", false }, + { "AP11_interior_brushed_grey_ano", "brushed_grey_ano_paint_02.png", false }, + { "AP11_interior_canvas_cover", "canvas_coverShape_tpAmbient_paint_01.png", false }, + { "AP11_interior_Channel_attachment", "Channel_attachment_Diffuse.png", false }, + { "AP11_interior_Channel_baseMetal", "Channel_baseMetal_Diffuse.png", false }, + { "AP11_interior_Channel_Material", "Channel_Material_Diffuse.png", false }, + { "AP11_interior_Channel_rsMaterial2", "Channel_rsMaterial2_Diffuse.png", false }, + { "AP11_interior_cloth_01", "cloth_01Shape_tpAmbient_paint_01.png", false }, + { "AP11_interior_coiled_hose", "coiled_hoseShape_tpAmbient.png", false }, + { "AP11_interior_control_panel_left_win_plates", "control_panel_left_win_platesShape_tpAmbient.png", false }, + { "AP11_interior_control_panel_rt_win_plates", "control_panel_rt_win_platesShape_tpAmbient.png", false }, + { "AP11_interior_copper_parts_main_cp", "copper_parts_main_cpShape_tpAmbient.png", false }, + { "AP11_interior_dials_main2", "dials_main2Shape_tpAmbient.png", false }, + { "AP11_interior_dials_t2", "dials_t2Shape_tpAmbient.png", false }, + { "AP11_interior_dial_fixes_01", "dial_fixes_01Shape_tpAmbient.png", false }, + { "AP11_interior_fire_ex_02", "fire_ex_02_paint_v001.png", false }, + { "AP11_interior_floor_panels_3", "floor_panels_3Shape_tpAmbient_paint_01.png", false }, + { "AP11_interior_floor_tile_tex_01", "floor_tile_tex_01.png", false }, + { "AP11_interior_grey", "gray.png", false }, + { "AP11_interior_handholds_cp", "handholds_cpShape_tpAmbient_paint_05.png", false }, + { "AP11_interior_hatch_release_0Shape5", "hatch_release_0Shape5_tpAmbient_paint_02.png", false }, + { "AP11_interior_headrests_02", "headrests_02Shape_tpAmbient_paint_01.png", false }, + { "AP11_interior_hoses_black_01", "hoses_black_01Shape_tpAmbient_paint_01.png", false }, + { "AP11_interior_hoses_white_0Shape1", "hoses_white_0Shape1_tpAmbient_paint_01.png", false }, + { "AP11_interior_josticks1", "joysticks1Shape_tpAmbient_paint_01.png", false }, + { "AP11_interior_joysticks_fabric1", "joysticks_fabric1_Shape_tpAmbient_paint_01.png", false }, + { "AP11_interior_joystick_poles_lft_05", "joystick_poles_lft_05_paint_v002.png", false }, + { "AP11_interior_joystick_poles_lft_long_05", "joystick_poles_lft_long_05_paint_v002.png", false }, + { "AP11_interior_joystick_poles_rt_05", "joystick_poles_rt_05_paint_v002.png", false }, + { "AP11_interior_latch_mechanisms_01", "latch_mechanisms_01Shape_tpAmbient.png", false }, + { "AP11_interior_lower_push_buttons", "lower_push_buttonsShape_tpAmbient.png", false }, + { "AP11_interior_lower_walls_back", "lower_walls_back_paint_04.png", false }, + { "AP11_interior_lower_walls_boxes_head", "lower_walls_boxes_headShape_tpAmbient_paint_v001.png", false }, + { "AP11_interior_main_cp_left_smth_03", "main_cp_left_0Shape3_tpAmbient_paint_02.png", false }, + { "AP11_interior_main_cp_mid_smth_02", "main_cp_mid_smth_02Shape_tpAmbient_paint_02.png", false }, + { "AP11_interior_main_cp_rt_smth", "main_cp_rt_smthShape_tpAmbient_paint_02.png", false }, + { "AP11_interior_main_cp_wheels", "main_cp_wheelsShape_tpAmbient.png", false }, + { "AP11_interior_metal_brackets_under_hatch", "metal_brackets_under_hatchShape_tpAmbient.png", false }, + { "AP11_interior_metal_tunnel_parts", "metal_tunnel_partsShape_tpAmbient_paint_01.png", false }, + { "AP11_interior_metal_window_parts", "metal_window_partsShape_tpAmbient_paint_01.png", false }, + { "AP11_interior_middle_walls_05", "middle_walls_05_tpAmbient_paint_02.png", false }, + { "AP11_interior_middle_walls_0Shape8", "middle_walls_0Shape8_tpAmbient_paint_01.png", false }, + { "AP11_interior_mid_tunnel_parts", "mid_tunnel_parts_03Shape_tpAmbient_paint_02.png", false }, + { "AP11_interior_new_switch_rails1", "new_switch_rails1Shape_tpAmbient.png", false }, + { "AP11_interior_nozzles_02", "nozzles_02Shape_tpAmbient_paint_01.png", false }, + { "AP11_interior_outlet_fabric3", "outlet_fabric3Shape_tpAmbient_paint_02.png", false }, + { "AP11_interior_pole_end_02", "pole_end_02.png", false }, + { "AP11_interior_pole_end_03", "pole_end_03.png", false }, + { "AP11_interior_pole_tex_03", "pole_tex_03.png", false }, + { "AP11_interior_pole_tex_04", "pole_tex_04.png", false }, + { "AP11_interior_pole_tex_05", "pole_tex_05.png", false }, + { "AP11_interior_pole_tex_lower_01", "pole_tex_lower_01.png", false }, + { "AP11_interior_pole_under_seat_paint_01", "pole_under_seat_paint_01.png", false }, + { "AP11_interior_pole_under_seat_square_bar", "pole_under_seat_square_bar_paint_01.png", false }, + { "AP11_interior_push_switches_lft1", "push_switches_lft1Shape_tpAmbient.png", false }, + { "AP11_interior_random_small_parts_01", "random_small_parts_01Shape_tpAmbient_paint_02.png", false }, + { "AP11_interior_red", "red.png", false }, + { "AP11_interior_reticle_wheel_tp", "reticle_wheel_tpAmbient_paint_01.png", false }, + { "AP11_interior_rivet_paint_v001", "rivet_paint_v001.png", false }, + { "AP11_interior_seats_fabric", "seats_fabric_paint_01.png", false }, + { "AP11_interior_seat_left_tp", "seat_left_tpAmbient_paint_v001.png", false }, + { "AP11_interior_seat_lights_left", "seat_lights_left_Shape_tpAmbient_paint_v001.png", false }, + { "AP11_interior_seat_lights_rt", "seat_lights_rt_Shape_tpAmbient_paint_v001.png", false }, + { "AP11_interior_seat_middle_tp", "seat_middle_tpAmbient_paint_v001.png", false }, + { "AP11_interior_seat_poles_0Shape1", "seat_poles_0Shape1_tpAmbient_paint_01.png", false }, + { "AP11_interior_seat_pole_mirror_0Shape1", "seat_pole_mirror_0Shape1_tpAmbient_paint_01.png", false }, + { "AP11_interior_seat_rt_tp", "seat_rt_tpAmbient_paint_v001.png", false }, + { "AP11_interior_sextant_0Shape2", "sextant_0Shape2_tpAmbient.png", false }, + { "AP11_interior_switch_covers_main_middle1", "switch_covers_main_middle1Shape_tpAmbient.png", false }, + { "AP11_interior_switch_rails_lft", "switch_rails_lftShape_tpAmbient.png", false }, + { "AP11_interior_tunnel_main_cylinder1", "switch_rails_lftShape_tpAmbient.png", false }, + { "AP11_interior_tunnel_switches_01", "tunnel_switches_01Shape_tpAmbient.png", false }, + { "AP11_interior_tunnel_wheelsShape", "tunnel_wheelsShape_tpAmbient.png", false }, + { "AP11_interior_walls_mid_left", "walls_mid_leftShape_tpAmbient_paint_01.png", false }, + { "AP11_interior_windows_front_0Shape4", "windows_front_0Shape4_tpAmbient_paint_01.png", false } } -asset.export("registerCsm", function (asset, parentNodeIdentifier) +asset.export("createCsmModel", function (parentNodeIdentifier) local parts = {} for i, info in ipairs(partsInfo) do - parts[#parts + 1] = assetHelper.createModelPart( + parts[#parts + 1] = asset_helper.createModelPart( parentNodeIdentifier, - sunTransforms.SolarSystemBarycenter.Identifier, + sun_transforms.SolarSystemBarycenter.Identifier, models, info[1], info[2], info[3] ) end - assetHelper.registerSceneGraphNodesAndExport(asset, parts) + return parts end) -asset.export("registerCsmFull", function (asset, parentNodeIdentifier) +asset.export("createCsmModelFull", function (parentNodeIdentifier) local parts = {} for i, info in ipairs(partsInfoFull) do - parts[#parts + 1] = assetHelper.createModelPart( + parts[#parts + 1] = asset_helper.createModelPart( parentNodeIdentifier, - sunTransforms.SolarSystemBarycenter.Identifier, + sun_transforms.SolarSystemBarycenter.Identifier, models, info[1], info[2], info[3] ) end - assetHelper.registerSceneGraphNodesAndExport(asset, parts) -end) \ No newline at end of file + return parts +end) diff --git a/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset b/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset index fb9f1e14c5..c9664a8eeb 100644 --- a/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset +++ b/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset @@ -1,5 +1,5 @@ --apollo_globebrowsing.asset - +local moon_transforms = asset.require('scene/solarsystem/planets/earth/moon/moon') local heightmaps = asset.syncedResource({ Name = "Apollo Globebrowsing Heightmaps", @@ -30,8 +30,8 @@ local stations = asset.syncedResource({ }) asset.onInitialize(function () - openspace.globebrowsing.addBlendingLayersFromDirectory(heightmaps, "Moon") - openspace.globebrowsing.addBlendingLayersFromDirectory(basemaps, "Moon") - openspace.globebrowsing.addBlendingLayersFromDirectory(naclighting, "Moon") - openspace.globebrowsing.addBlendingLayersFromDirectory(stations, "Moon") + 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) end) diff --git a/data/assets/scene/solarsystem/missions/apollo/apollo_lem.asset b/data/assets/scene/solarsystem/missions/apollo/apollo_lem.asset index 4a7a820d76..9fb6f204ef 100644 --- a/data/assets/scene/solarsystem/missions/apollo/apollo_lem.asset +++ b/data/assets/scene/solarsystem/missions/apollo/apollo_lem.asset @@ -3,11 +3,11 @@ -- This asset exports a function to create an Apollo Lunar Excursion Module (LEM). -- Instead of hard-coding the scene graph node parent, -- client assets can decide which object that the LEM should be attached to. --- Usage example: registerLem(asset, Apollo11Lem.Idenfitier) +-- Usage example: createLem(Apollo11Lem.Idenfitier) -- ...where Apollo11Lem is the scene graph node identifier to attach the LEM to. -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local asset_helper = asset.require('util/asset_helper') +local sun_transforms = asset.require('scene/solarsystem/sun/transforms') local models = asset.syncedResource({ Name = "Apollo Models", @@ -35,17 +35,17 @@ local partsInfo = { } -asset.export("registerLem", function (asset, parentNodeIdentifier) +asset.export("createLem", function (parentNodeIdentifier) local parts = {} for i, info in ipairs(partsInfo) do - parts[#parts + 1] = assetHelper.createModelPart( + parts[#parts + 1] = asset_helper.createModelPart( parentNodeIdentifier, - sunTransforms.SolarSystemBarycenter.Identifier, + sun_transforms.SolarSystemBarycenter.Identifier, models, info[1], info[2], info[3] ) end - assetHelper.registerSceneGraphNodesAndExport(asset, parts) + return parts end) diff --git a/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset b/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset index 7aa0159960..6df2f26d4b 100644 --- a/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset +++ b/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset @@ -2,7 +2,7 @@ -- The insignias are invisible by default, but can be enabled using shown or hidden using -- the exported functions `showInsignias(interpolationDuration)` and `hideInsignias(interpolationDuration)`. -local assetHelper = asset.require('util/asset_helper') +local asset_helper = asset.require('util/asset_helper') local insigniasPath = asset.syncedResource({ Name = "Apollo Insignias", @@ -18,37 +18,37 @@ local landingData = { Name = "Apollo 11", Name = "Apollo 11", Texture = "apollo11.png", - LunarModule = {0.67409, 23.47298, 0.0}, + LunarModule = { 0.67409, 23.47298, 0.0 } }, { Identifier = "Apollo12", Name = "Apollo 12", Texture = "apollo12.png", - LunarModule = {-3.01381, -23.41930, 0.0} + LunarModule = { -3.01381, -23.41930, 0.0 } }, { Identifier = "Apollo14", Name = "Apollo 14", Texture = "apollo14.png", - LunarModule = {-3.64544, -17.47139, 0.0} + LunarModule = { -3.64544, -17.47139, 0.0 } }, { Identifier = "Apollo15", Name = "Apollo 15", Texture = "apollo15.png", - LunarModule = {26.13224, 3.63400, 0.0} + LunarModule = { 26.13224, 3.63400, 0.0 } }, { Identifier = "Apollo16", Name = "Apollo 16", Texture = "apollo16.png", - LunarModule = {-8.97341, 15.49859, 0.0} + LunarModule = { -8.97341, 15.49859, 0.0 } }, { Identifier = "Apollo17", Name = "Apollo 17", Texture = "apollo17.png", - LunarModule = {20.18809, 30.77475, 0.0} + LunarModule = { 20.18809, 30.77475, 0.0 } } } @@ -117,4 +117,4 @@ asset.export('hideInsignias', function (interpolationDuration) openspace.setPropertyValue("Scene.Apollo*Insignia.Renderable.Opacity", 0, interpolationDuration) end) -assetHelper.registerSceneGraphNodesAndExport(asset, nodes) \ No newline at end of file +asset_helper.registerSceneGraphNodesAndExport(asset, nodes) diff --git a/modules/base/rendering/renderablemodel.cpp b/modules/base/rendering/renderablemodel.cpp index cec22961fc..6e7ca13dd2 100644 --- a/modules/base/rendering/renderablemodel.cpp +++ b/modules/base/rendering/renderablemodel.cpp @@ -262,6 +262,7 @@ RenderableModel::RenderableModel(const ghoul::Dictionary& dictionary) } } + addPropertySubOwner(_lightSourcePropertyOwner); addPropertySubOwner(_geometry.get()); @@ -278,14 +279,13 @@ RenderableModel::RenderableModel(const ghoul::Dictionary& dictionary) addProperty(_rotationVec); _rotationVec.onChange([this]() { - glm::vec3 degreeVector = _rotationVec; - glm::vec3 radianVector = glm::vec3( - glm::radians(degreeVector.x), - glm::radians(degreeVector.y), - glm::radians(degreeVector.z) - ); - _modelTransform = glm::mat4_cast(glm::quat(radianVector)); + _modelTransform = glm::mat4_cast(glm::quat(glm::radians(_rotationVec.value()))); }); + + + if (dictionary.hasKey(RotationVecInfo.identifier)) { + _rotationVec = dictionary.value(RotationVecInfo.identifier); + } } bool RenderableModel::isReady() const {