Separate GlobeLabels vec4 color into opacity and vec3 color

This commit does not change the previous behavior. Note however that the behavior for opacity is a bit weird for this component.
This commit is contained in:
Emma Broman
2020-07-07 10:23:24 +02:00
parent ef0eef842d
commit a9021ac8dc
20 changed files with 45 additions and 26 deletions

View File

@@ -50,7 +50,7 @@ local Charon = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "planet_solarSystem", "planet_terrestrial" },

View File

@@ -50,7 +50,7 @@ local Pluto = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "planet_solarSystem", "planet_terrestrial" },

View File

@@ -291,7 +291,7 @@ local Earth = {
FadeOutStartingDistance = 80000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1500000.0,
LabelsColor = {1.0, 0.0, 0.0, 1.0}
LabelsColor = {1.0, 0.0, 0.0}
}
},
Tag = { "planet_solarSystem", "planet_terrestrial" },

View File

@@ -162,7 +162,7 @@ local Moon = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
GUI = {

View File

@@ -58,7 +58,7 @@ local Callisto = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "moon_solarSystem", "moon_giants", "moon_jupiter" },

View File

@@ -67,7 +67,7 @@ local Europa = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "moon_solarSystem", "moon_giants", "moon_jupiter" },

View File

@@ -58,7 +58,7 @@ local Ganymede = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "moon_solarSystem", "moon_giants", "moon_jupiter" },

View File

@@ -58,7 +58,7 @@ local Io = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "moon_solarSystem", "moon_giants", "moon_jupiter" },

View File

@@ -196,7 +196,7 @@ local Mars = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "planet_solarSystem", "planet_terrestrial" },

View File

@@ -214,7 +214,7 @@ local Mercury = {
FadeOutStartingDistance = 80000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1500000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "planet_solarSystem", "planet_terrestrial" },

View File

@@ -56,7 +56,7 @@ local Dione = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" },

View File

@@ -63,7 +63,7 @@ local Enceladus = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" },

View File

@@ -56,7 +56,7 @@ local Iapetus = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" },

View File

@@ -56,7 +56,7 @@ local Mimas = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" },

View File

@@ -56,7 +56,7 @@ local Rhea = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" },

View File

@@ -56,7 +56,7 @@ local Tethys = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" },

View File

@@ -63,7 +63,7 @@ local Titan = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" },

View File

@@ -87,7 +87,7 @@ local Venus = {
FadeOutStartingDistance = 1000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 3500000.0,
LabelsColor = {1.0, 1.0, 0.0, 1.0}
LabelsColor = {1.0, 1.0, 0.0}
}
},
Tag = { "planet_solarSystem", "planet_terrestrial" },

View File

@@ -109,6 +109,12 @@ namespace {
"Labels Color"
};
constexpr openspace::properties::Property::PropertyInfo LabelsOpacityInfo = {
"LabelsOpacity",
"Labels Opacity",
"Labels Opacity"
};
constexpr openspace::properties::Property::PropertyInfo
LabelsFadeInStartingDistanceInfo =
{
@@ -210,10 +216,16 @@ documentation::Documentation GlobeLabelsComponent::Documentation() {
},
{
LabelsColorInfo.identifier,
new Vector4Verifier<float>(),
new DoubleVector3Verifier,
Optional::Yes,
LabelsColorInfo.description
},
{
LabelsOpacityInfo.identifier,
new DoubleVerifier,
Optional::Yes,
LabelsOpacityInfo.description
},
{
LabelsFadeInStartingDistanceInfo.identifier,
new DoubleVerifier,
@@ -270,10 +282,11 @@ GlobeLabelsComponent::GlobeLabelsComponent()
, _labelsMinHeight(LabelsMinHeightInfo, 100.0, 0.0, 10000.0)
, _labelsColor(
LabelsColorInfo,
glm::vec4(1.f, 1.f, 0.f, 1.f),
glm::vec4(0.f),
glm::vec4(1.f)
glm::vec3(1.f, 1.f, 0.f),
glm::vec3(0.f),
glm::vec3(1.f)
)
, _labelsOpacity(LabelsOpacityInfo, 1.f, 0.f, 1.f)
, _labelsFadeInDist(LabelsFadeInStartingDistanceInfo, 1e6, 1e3, 1e8)
, _labelsFadeOutDist(LabelsFadeOutStartingDistanceInfo, 1e4, 1, 1e7)
, _labelsFadeInEnabled(LabelsFadeInEnabledInfo, false)
@@ -291,6 +304,7 @@ GlobeLabelsComponent::GlobeLabelsComponent()
addProperty(_labelsMinHeight);
_labelsColor.setViewOption(properties::Property::ViewOptions::Color);
addProperty(_labelsColor);
addProperty(_labelsOpacity);
addProperty(_labelsFadeInDist);
addProperty(_labelsFadeOutDist);
addProperty(_labelsMinSize);
@@ -355,7 +369,11 @@ void GlobeLabelsComponent::initialize(const ghoul::Dictionary& dictionary,
}
if (dictionary.hasKey(LabelsColorInfo.identifier)) {
_labelsColor = dictionary.value<glm::vec4>(LabelsColorInfo.identifier);
_labelsColor = dictionary.value<glm::vec3>(LabelsColorInfo.identifier);
}
if (dictionary.hasKey(LabelsOpacityInfo.identifier)) {
_labelsOpacity = dictionary.value<float>(LabelsOpacityInfo.identifier);
}
if (dictionary.hasKey(LabelsFadeInEnabledInfo.identifier)) {
@@ -670,7 +688,7 @@ void GlobeLabelsComponent::renderLabels(const RenderData& data,
float distToCamera,
float fadeInVariable
) {
glm::vec4 textColor = _labelsColor;
glm::vec4 textColor = glm::vec4(glm::vec3(_labelsColor), _labelsOpacity);
textColor.a *= fadeInVariable;
glm::dvec4 cameraUpVecWorld = glm::dvec4(data.camera.lookUpVectorWorldSpace(), 0.0);

View File

@@ -31,7 +31,7 @@
#include <openspace/properties/scalar/boolproperty.h>
#include <openspace/properties/scalar/floatproperty.h>
#include <openspace/properties/scalar/intproperty.h>
#include <openspace/properties/vector/vec4property.h>
#include <openspace/properties/vector/vec3property.h>
#include <ghoul/font/fontrenderer.h>
#include <ghoul/glm.h>
@@ -89,7 +89,8 @@ private:
properties::IntProperty _labelsMinSize;
properties::FloatProperty _labelsSize;
properties::FloatProperty _labelsMinHeight;
properties::Vec4Property _labelsColor;
properties::Vec3Property _labelsColor;
properties::FloatProperty _labelsOpacity;
properties::FloatProperty _labelsFadeInDist;
properties::FloatProperty _labelsFadeOutDist;
properties::BoolProperty _labelsFadeInEnabled;