diff --git a/data/assets/dsn.scene b/data/assets/dsn.scene index dab291a233..e3211cae1c 100644 --- a/data/assets/dsn.scene +++ b/data/assets/dsn.scene @@ -75,7 +75,14 @@ local Keybindings = { propertyHelper.invert('Scene.EquatorialSphereLabels.Renderable.Enabled'), Documentation = "Toggles visibility of the equatorial sphere and its labels", Local = false - }, + }, + { + Key = "l", + Command = propertyHelper.invert('Scene.OuterSpaceLabels.Renderable.Enabled') .. + propertyHelper.invert('Scene.MarsLabels.Renderable.Enabled'), + Documentation = "Toggles visibility of the spacecraft labels", + Local = false + } } local earthAsset = asset.require('scene/solarsystem/planets/earth/earth') @@ -93,8 +100,7 @@ asset.onInitialize(function () openspace.setDefaultGuiSorting() openspace.setPropertyValue('Scene.*Trail.Renderable.Enabled', false) - openspace.setPropertyValue('Scene.StarsLabels.Renderable.Enabled', true) - openspace.setPropertyValue('Scene.SpacecraftsLabels.Renderable.Enabled', true) + --openspace.setPropertyValue('Scene.StarsLabels.Renderable.Enabled', true) openspace.globebrowsing.loadWMSServersFromFile( openspace.absPath("${DATA}/globebrowsing_servers.lua") diff --git a/data/assets/scene/solarsystem/dsn/spacecraftslabels.asset b/data/assets/scene/solarsystem/dsn/spacecraftslabels.asset index 4966410404..9a2631cca0 100644 --- a/data/assets/scene/solarsystem/dsn/spacecraftslabels.asset +++ b/data/assets/scene/solarsystem/dsn/spacecraftslabels.asset @@ -1,30 +1,48 @@ local assetHelper = asset.require('util/asset_helper') local spacecrafts = asset.require('scene/solarsystem/missions/dsn/spacecrafts') -local object = { - Identifier = "SpacecraftsLabels", +local OuterSpaceLabels = { + Identifier = "OuterSpaceLabels", Renderable = { Type = "RenderableBillboardsCloud", Enabled = false, - Color = { 1.0, 1.0, 1.0 }, + --Color = { 1.0, 1.0, 1.0 }, Transparency = 1.0, - --LabelFile = speck .. "/stars.label", - LabelIdentifierMap = spacecrafts.labelMap, - TextColor = { 1.0, 0.0, 0.0, 1.0 }, + LabelIdentifierMap = spacecrafts.labelMapVoyagers, + TextColor = { 1.0, 0.6, 0.2, 1.0 }, DrawLabels = true, - --PolygonSides = 4, - --ColorMap = colormap .. "/colorbv.cmap", TextSize = 10.0, TextMinSize = 1.0, TextMaxSize = 80.0, - Unit = "km" --meters + Unit = "m" }, GUI = { - Name = "Spacecrafts Labels", - Path = "/Milky Way/Spacecrafts" + Name = "Outer Space Labels", + Path = "/Labels" + } +} + +local MarsLabels = { + Identifier = "MarsLabels", + Renderable = { + Type = "RenderableBillboardsCloud", + Enabled = false, + --Color = { 1.0, 1.0, 1.0 }, + Transparency = 1.0, + LabelIdentifierMap = spacecrafts.labelMapMars, + TextColor = { 0.4, 0.4, 0.4, 1.0 }, + DrawLabels = true, + TextSize = 5.0, + TextMinSize = 1.0, + TextMaxSize = 80.0, + Unit = "m" + }, + GUI = { + Name = "Mars Labels", + Path = "/Labels" } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +assetHelper.registerSceneGraphNodesAndExport(asset, { OuterSpaceLabels, MarsLabels }) diff --git a/data/assets/scene/solarsystem/missions/dsn/spacecrafts.asset b/data/assets/scene/solarsystem/missions/dsn/spacecrafts.asset index 9bd100ec32..6430b9cd8a 100644 --- a/data/assets/scene/solarsystem/missions/dsn/spacecrafts.asset +++ b/data/assets/scene/solarsystem/missions/dsn/spacecrafts.asset @@ -10,14 +10,16 @@ asset.require('scene/solarsystem/missions/dsn/mro/mro') asset.require('scene/solarsystem/missions/dsn/marsodyssey/marsodyssey') asset.require('scene/solarsystem/missions/dsn/stereoa/stereoa') --- needed for the labels -local labelMap = { - VGR1 = "Voyager 1", - VGR2 = "Voyager 2", - MarsRecOrbiter = "Mars Recon Orbiter", - --MarsOdyssey = "MarsOdyssey", - StereoA = "StereoA" - -- wdgn = "hej" - } +-- labels +local labelMapMars = { + MarsRecOrbiter = "Mars Recon Orbiter", + MarsOdyssey = "MarsOdyssey", + } -asset.export("labelMap", labelMap) \ No newline at end of file +local labelMapVoyagers = { + VGR1 = "Voyager 1", + VGR2 = "Voyager 2", + } + +asset.export("labelMapVoyagers", labelMapVoyagers) +asset.export("labelMapMars", labelMapMars) \ No newline at end of file diff --git a/modules/digitaluniverse/rendering/renderablebillboardscloud.cpp b/modules/digitaluniverse/rendering/renderablebillboardscloud.cpp index 830f3bd6c9..e6f75a01e2 100644 --- a/modules/digitaluniverse/rendering/renderablebillboardscloud.cpp +++ b/modules/digitaluniverse/rendering/renderablebillboardscloud.cpp @@ -259,7 +259,7 @@ documentation::Documentation RenderableBillboardsCloud::Documentation() { { keyColor, new Vector3Verifier, - Optional::No, + Optional::Yes, "Astronomical Object Color (r,g,b)." }, { @@ -564,8 +564,6 @@ RenderableBillboardsCloud::RenderableBillboardsCloud(const ghoul::Dictionary& di } else if (dictionary.hasKey(LabelIdentifierMapInfo.identifier)) { - //LDEBUG(fmt::format("Hej {}", LabelIdentifierMapInfo.identifier)); - _labelIdMap = dictionary.value(LabelIdentifierMapInfo.identifier); _hasLabel = true; @@ -584,7 +582,6 @@ RenderableBillboardsCloud::RenderableBillboardsCloud(const ghoul::Dictionary& di if (dictionary.hasKey(TextColorInfo.identifier)) { _textColor = dictionary.value(TextColorInfo.identifier); - //_hasLabel = true; } _textColor.setViewOption(properties::Property::ViewOptions::Color); addProperty(_textColor); @@ -1345,18 +1342,16 @@ bool RenderableBillboardsCloud::loadLabelDataFromId() { std::string label = _labelIdMap.value(keys.at(i)); if (global::renderEngine.scene()->sceneGraphNode(id)) { - // LDEBUG(fmt::format("Scenegraphnode found for the spacecraft {}", id)); - glm::dvec3 position = global::renderEngine.scene()->sceneGraphNode(id)->worldPosition(); - //glm::vec3 transformedPos = glm::vec3( - // _transformationMatrix * glm::dvec4(position, 1.0) - // ); - _labelData.emplace_back(std::make_pair(position, label)); + glm::dvec3 transformedPos = glm::dvec3( + _transformationMatrix * glm::dvec4(position, 1.0) + ); + _labelData.emplace_back(std::make_pair(transformedPos, label)); } else { - LERROR(fmt::format("No scenegraphnode found for the spacecraft {}", id)); + LERROR(fmt::format("No SceneGraphNode found with identifier {}", id)); return false; }