Unverified Commit 1818304d authored by Alexander Bock's avatar Alexander Bock Committed by GitHub
Browse files

Changes from std::string to const char* in PropertyInfo (#633)

parent c9833197
master content/2012EventProfile elumenati/spout-implementation elumenati/spoutImplementation feature/2012Fieldlines feature/WSA feature/apollo-missions feature/arrow-renderable feature/asset-helper feature/asset-meta-update-part2 feature/asset-require feature/atmosphere-stars-rendering feature/bufferTransferTestings feature/camera-control-during-path feature/camera-path-stability feature/cef-update feature/change-renderbin-runtime feature/cmake feature/codegen-lua feature/codegen-lua-jenkins feature/compile-times feature/direction-hint-renderable feature/downscaledATM feature/du-meshes-selection feature/fieldlines feature/gamma-correction feature/geojson feature/geojson-renderable feature/getting-started-tour feature/grid-labels feature/grids-update feature/gui-mouseinteraction-fix feature/horizons-framework feature/horizons-unit-tests feature/idle-behavior-updates feature/imageTestKeys2Actions feature/jenkins-codegen feature/jenkins-fix feature/jenkins-timeout feature/juice feature/jwst-pointing feature/jwst-trail-update feature/jwst-update feature/labels-rendering feature/location-measure feature/macos feature/mars-moons feature/mas-model feature/missions feature/model-opacity feature/molecule_rendering feature/mollwide-projection feature/multiple-endpoints feature/orientation-check feature/paper-atmosphere feature/properties-visibility feature/renderable-enabled-event feature/rover-visualization feature/satellites feature/saturn-shepherd-moons feature/science-on-the-sphere feature/sgct-framebuffer-fixes feature/sgct-gui feature/sgct-gui-editable feature/sgct-gui-jenkins feature/sgct-json feature/sgct-ui feature/side-by-side-removal feature/skybrowser feature/skybrowser-cleanup feature/skybrowser-drag-and-drop feature/skybrowser-reload feature/solarbrowsing feature/spacecraft-instruments feature/spaceweather-stream feature/spice-update feature/state-with-time feature/tileprovider-minlevel feature/tileproviders feature/tle-bodymass feature/touchEventListener feature/transparency-rendering-last feature/ubuntu2204 feature/unit-tests feature/userproperties feature/various-changes feature/video-on-globe feature/visual-testing feature/visual-testing-try2 feature/volume-fixes feature/warnings feature/wormhole feature/xbox-update hotfix/scaling integration/atm-paper-fixes-2 integration/moon-mars-show integration/paper-atmosphere issue/1043 issue/1161 issue/1279 issue/1366-2 issue/1479 issue/1559 issue/1607 issue/1666 issue/1707 issue/1751 issue/1814 issue/1827 issue/1842 issue/1845 issue/1851 issue/1905 issue/1908 issue/1910 issue/1911 issue/1964 issue/1989 issue/1995 issue/2029 issue/2055 issue/2093 issue/2111 issue/2118 issue/2121 issue/2127 issue/2133 issue/2137 issue/2194 issue/2207 issue/2209 issue/2212 issue/2236 issue/2259 issue/2261 issue/2266 issue/2269 issue/843 issue/888 issue/hdrModels jenkins/1 jenkins/2 jenkins/2286 jenkins/utah-test-1 project/2021-wisdome-installation project/climate project/exoplanet-explorer project/exoplanets-expert-tool project/lights-2020-installation project/spaceship-installation project/spvl rc/0.18.1 temp/skybrowser-animation-fixes-merge thesis/2017/mars-rover-visualization thesis/2018/data-loader thesis/2018/dsn thesis/2018/flightcontroller thesis/2019/spaceDebris thesis/2019/spaceweather-stream thesis/2020/software-integration thesis/2020/sonification thesis/2021/airtraffic thesis/2021/fieldlines thesis/2021/multiuser-collab thesis/2021/multiuser-collab3 thesis/2021/skybrowser thesis/2022/climate thesis/2022/cosmic-view thesis/2022/fieldline-rendering thesis/2022/remote-streaming thesis/2022/software-integration thesis/2022/software-integration_dod thesis/2022/software-integration_receive-ra-dec thesis/2022/software-integration_refactor-simp thesis/2022/software-integration_velocity-support thesis/2022/streaming vislabs/release/2.1 research/atmospheres releases/v0.18.0 releases/v0.17.2 releases/v0.17.1 releases/v0.17.0 releases/v0.16.1 releases/v0.16.0 releases/v0.15.2 releases/v0.15.1 releases/v0.15.0 releases/v0.14.1 releases/v0.14.0 releases/v0.13.0 releases/v0.12.0 releases/beta/beta-9 releases/beta/beta-8 releases/beta/beta-7 releases/beta/beta-5 releases/beta/beta-4_2 releases/beta/beta-4 releases/beta/beta-3 releases/beta/beta-2 dev/fc-port-change beta/beta-4_2 beta/beta-4 beta/beta-3 beta/beta-2
No related merge requests found
Showing with 135 additions and 138 deletions
+135 -138
......@@ -77,11 +77,11 @@ public:
*/
struct PropertyInfo {
/// The unique identifier that is part of the fully qualified URI of this Property
std::string identifier;
const char* identifier;
/// The name that is displayed in the user interface
std::string guiName;
const char* guiName;
/// The user facing description of this Property
std::string description;
const char* description;
/// Determins the visibility of this Property in the user interface
Visibility visibility = Visibility::All;
};
......
......@@ -31,13 +31,17 @@
#include <ghoul/fmt.h>
#include <ghoul/logging/logmanager.h>
#include <ghoul/misc/assert.h>
#include <string>
namespace {
constexpr const char* KeyXAxis = "XAxis";
constexpr const char* KeyXAxisOrthogonal = "XAxisOrthogonal";
constexpr const char* KeyYAxis = "YAxis";
constexpr const char* KeyYAxisOrthogonal = "YAxisOrthogonal";
constexpr const char* KeyZAxis = "ZAxis";
constexpr const char* KeyZAxisOrthogonal = "ZAxisOrthogonal";
const openspace::properties::Property::PropertyInfo EnableInfo = {
constexpr const openspace::properties::Property::PropertyInfo EnableInfo = {
"Enable",
"Enabled",
"If this value is 'true', all the machinery of this rotation is used, of it is "
......@@ -45,47 +49,127 @@ namespace {
"undefined behavior."
};
const openspace::properties::Property::PropertyInfo TypeInfo = {
"Type",
"Specification Type",
constexpr const openspace::properties::Property::PropertyInfo XAxisTypeInfo = {
"xAxis-Type",
"xAxis: Specification Type",
"This value specifies how this axis is being specified, that is whether it is "
"referencing another object, specifying an absolute vector, or whether it is "
"using the right handed coordinate system completion based off the other two "
"vectors."
};
const openspace::properties::Property::PropertyInfo ObjectInfo = {
"Object",
"Focus Object",
constexpr const openspace::properties::Property::PropertyInfo YAxisTypeInfo = {
"yAxis-Type",
"yAxis: Specification Type",
"This value specifies how this axis is being specified, that is whether it is "
"referencing another object, specifying an absolute vector, or whether it is "
"using the right handed coordinate system completion based off the other two "
"vectors."
};
constexpr const openspace::properties::Property::PropertyInfo ZAxisTypeInfo = {
"zAxis-Type",
"zAxis: Specification Type",
"This value specifies how this axis is being specified, that is whether it is "
"referencing another object, specifying an absolute vector, or whether it is "
"using the right handed coordinate system completion based off the other two "
"vectors."
};
constexpr const openspace::properties::Property::PropertyInfo XAxisObjectInfo = {
"xAxis-Object",
"xAxis: Focus Object",
"This is the object that the axis will focus on. This object must name an "
"existing scene graph node in the currently loaded scene and the rotation will "
"stay fixed to the current position of that object."
};
constexpr const openspace::properties::Property::PropertyInfo YAxisObjectInfo = {
"yAxis-Object",
"yAxis: Focus Object",
"This is the object that the axis will focus on. This object must name an "
"existing scene graph node in the currently loaded scene and the rotation will "
"stay fixed to the current position of that object."
};
constexpr const openspace::properties::Property::PropertyInfo ZAxisObjectInfo = {
"zAxis-Object",
"zAxis: Focus Object",
"This is the object that the axis will focus on. This object must name an "
"existing scene graph node in the currently loaded scene and the rotation will "
"stay fixed to the current position of that object."
};
const openspace::properties::Property::PropertyInfo InvertObjectInfo = {
"InvertObject",
"Invert Object Point Direction",
constexpr const openspace::properties::Property::PropertyInfo XAxisInvertObjectInfo = {
"xAxis-InvertObject",
"xAxis: Invert Object Point Direction",
"If this value is set to 'true', and the type is set to 'Object', the inverse of "
"the pointing direction is used, causing the object to point away from the "
"referenced object."
};
const openspace::properties::Property::PropertyInfo VectorInfo = {
"Vector",
"Direction vector",
constexpr const openspace::properties::Property::PropertyInfo YAxisInvertObjectInfo = {
"yAxis-InvertObject",
"yAxis: Invert Object Point Direction",
"If this value is set to 'true', and the type is set to 'Object', the inverse of "
"the pointing direction is used, causing the object to point away from the "
"referenced object."
};
constexpr const openspace::properties::Property::PropertyInfo ZAxisInvertObjectInfo = {
"zAxis-InvertObject",
"zAxis: Invert Object Point Direction",
"If this value is set to 'true', and the type is set to 'Object', the inverse of "
"the pointing direction is used, causing the object to point away from the "
"referenced object."
};
constexpr const openspace::properties::Property::PropertyInfo XAxisVectorInfo = {
"xAxis-Vector",
"xAxis: Direction vector",
"This value specifies a static direction vector that is used for a fixed "
"rotation."
};
constexpr const openspace::properties::Property::PropertyInfo YAxisVectorInfo = {
"yAxis-Vector",
"yAxis: Direction vector",
"This value specifies a static direction vector that is used for a fixed "
"rotation."
};
const openspace::properties::Property::PropertyInfo OrthogonalVectorInfo = {
"Orthogonal",
"Vector is orthogonal",
constexpr const openspace::properties::Property::PropertyInfo ZAxisVectorInfo = {
"zAxis-Vector",
"zAxis: Direction vector",
"This value specifies a static direction vector that is used for a fixed "
"rotation."
};
constexpr const openspace::properties::Property::PropertyInfo XAxisOrthogonalVectorInfo = {
"xAxis-Orthogonal",
"xAxis: Vector is orthogonal",
"This value determines whether the vector specified is used directly, or whether "
"it is used together with another non-coordinate system completion vector to "
"construct an orthogonal vector instead."
};
constexpr const openspace::properties::Property::PropertyInfo YAxisOrthogonalVectorInfo = {
"yAxis-Orthogonal",
"yAxis: Vector is orthogonal",
"This value determines whether the vector specified is used directly, or whether "
"it is used together with another non-coordinate system completion vector to "
"construct an orthogonal vector instead."
};
constexpr const openspace::properties::Property::PropertyInfo ZAxisOrthogonalVectorInfo = {
"zAxis-Orthogonal",
"zAxis: Vector is orthogonal",
"This value determines whether the vector specified is used directly, or whether "
"it is used together with another non-coordinate system completion vector to "
"construct an orthogonal vector instead."
};
const openspace::properties::Property::PropertyInfo AttachedInfo = {
constexpr const openspace::properties::Property::PropertyInfo AttachedInfo = {
"Attached",
"Attached Node",
"This is the name of the node that this rotation is attached to, this value is "
......@@ -120,10 +204,10 @@ documentation::Documentation FixedRotation::Documentation() {
"instead."
},
{
KeyXAxis + OrthogonalVectorInfo.identifier,
KeyXAxisOrthogonal,
new BoolVerifier,
Optional::Yes,
OrthogonalVectorInfo.description
XAxisOrthogonalVectorInfo.description
},
{
KeyYAxis,
......@@ -138,10 +222,10 @@ documentation::Documentation FixedRotation::Documentation() {
"instead."
},
{
KeyYAxis + OrthogonalVectorInfo.identifier,
KeyYAxisOrthogonal,
new BoolVerifier,
Optional::Yes,
OrthogonalVectorInfo.description
YAxisOrthogonalVectorInfo.description
},
{
KeyZAxis,
......@@ -156,10 +240,10 @@ documentation::Documentation FixedRotation::Documentation() {
"instead."
},
{
KeyZAxis + OrthogonalVectorInfo.identifier,
KeyZAxisOrthogonal,
new BoolVerifier,
Optional::Yes,
OrthogonalVectorInfo.description
ZAxisOrthogonalVectorInfo.description
},
{
AttachedInfo.identifier,
......@@ -175,137 +259,50 @@ FixedRotation::FixedRotation(const ghoul::Dictionary& dictionary)
: _enabled(EnableInfo, true)
, _xAxis{
properties::OptionProperty(
{
"xAxis-" + TypeInfo.identifier,
"xAxis:" + TypeInfo.guiName,
TypeInfo.description
},
XAxisTypeInfo,
properties::OptionProperty::DisplayType::Dropdown
),
properties::StringProperty(
{
"xAxis-" + ObjectInfo.identifier,
"xAxis:" + ObjectInfo.guiName,
ObjectInfo.description
},
""
),
properties::BoolProperty(
{
"xAxis-" + InvertObjectInfo.identifier,
"xAxis:" + InvertObjectInfo.guiName,
InvertObjectInfo.description
},
false
),
properties::StringProperty(XAxisObjectInfo, ""),
properties::BoolProperty(XAxisInvertObjectInfo, false),
properties::Vec3Property(
{
"xAxis-" + VectorInfo.identifier,
"xAxis:" + VectorInfo.guiName,
VectorInfo.description
},
XAxisVectorInfo,
glm::vec3(1.f, 0.f, 0.f),
glm::vec3(0.f),
glm::vec3(1.f)
),
properties::BoolProperty(
{
"xAxis-" + OrthogonalVectorInfo.identifier,
"xAxis:" + OrthogonalVectorInfo.guiName,
OrthogonalVectorInfo.description
},
false
),
properties::BoolProperty(XAxisOrthogonalVectorInfo, false),
nullptr
}
, _yAxis{
properties::OptionProperty(
{
"yAxis-" + TypeInfo.identifier,
"yAxis:" + TypeInfo.guiName,
"yAxis:" + TypeInfo.description
},
YAxisTypeInfo,
properties::OptionProperty::DisplayType::Dropdown
),
properties::StringProperty(
{
"yAxis-" + ObjectInfo.identifier,
"yAxis:" + ObjectInfo.guiName,
"yAxis:" + ObjectInfo.description
},
""
),
properties::BoolProperty(
{
"yAxis-" + InvertObjectInfo.identifier,
"yAxis:" + InvertObjectInfo.guiName,
InvertObjectInfo.description
},
false
),
properties::StringProperty(YAxisObjectInfo, ""),
properties::BoolProperty(YAxisInvertObjectInfo, false),
properties::Vec3Property(
{
"yAxis-" + VectorInfo.identifier,
"yAxis:" + VectorInfo.guiName,
"yAxis:" + VectorInfo.description
},
YAxisVectorInfo,
glm::vec3(0.f, 1.f, 0.f),
glm::vec3(0.f),
glm::vec3(1.f)
),
properties::BoolProperty(
{
"yAxis-" + OrthogonalVectorInfo.identifier,
"yAxis:" + OrthogonalVectorInfo.guiName,
OrthogonalVectorInfo.description
},
false
),
properties::BoolProperty(YAxisOrthogonalVectorInfo, false),
nullptr
}
, _zAxis{
properties::OptionProperty(
{
"zAxis-" + TypeInfo.identifier,
"zAxis:" + TypeInfo.guiName,
"zAxis:" + TypeInfo.description
},
ZAxisTypeInfo,
properties::OptionProperty::DisplayType::Dropdown
),
properties::StringProperty(
{
"zAxis-" + ObjectInfo.identifier,
"zAxis:" + ObjectInfo.guiName,
"zAxis:" + ObjectInfo.description
},
""
),
properties::BoolProperty(
{
"zAxis-" + InvertObjectInfo.identifier,
"zAxis:" + InvertObjectInfo.guiName,
InvertObjectInfo.description
},
false
),
properties::StringProperty(ZAxisObjectInfo, ""),
properties::BoolProperty(ZAxisInvertObjectInfo, false),
properties::Vec3Property(
{
"zAxis-" + VectorInfo.identifier,
"zAxis:" + VectorInfo.guiName,
"zAxis:" + VectorInfo.description
},
ZAxisVectorInfo,
glm::vec3(0.f, 0.f, 1.f),
glm::vec3(0.f),
glm::vec3(1.f)
),
properties::BoolProperty(
{
"zAxis-" + OrthogonalVectorInfo.identifier,
"zAxis:" + OrthogonalVectorInfo.guiName,
OrthogonalVectorInfo.description
},
false
),
properties::BoolProperty(ZAxisOrthogonalVectorInfo, false),
nullptr
}
, _attachedObject(AttachedInfo, "")
......@@ -448,9 +445,9 @@ bool FixedRotation::initialize() {
}
}
if (_constructorDictionary.hasKey(KeyXAxis + OrthogonalVectorInfo.identifier)) {
if (_constructorDictionary.hasKey(XAxisOrthogonalVectorInfo.identifier)) {
_xAxis.isOrthogonal = _constructorDictionary.value<bool>(
KeyXAxis + OrthogonalVectorInfo.identifier
XAxisOrthogonalVectorInfo.identifier
);
}
if (_xAxis.isOrthogonal) {
......@@ -470,9 +467,9 @@ bool FixedRotation::initialize() {
}
}
if (_constructorDictionary.hasKey(KeyYAxis + OrthogonalVectorInfo.identifier)) {
if (_constructorDictionary.hasKey(YAxisOrthogonalVectorInfo.identifier)) {
_yAxis.isOrthogonal = _constructorDictionary.value<bool>(
KeyYAxis + OrthogonalVectorInfo.identifier
YAxisOrthogonalVectorInfo.identifier
);
}
if (_yAxis.isOrthogonal) {
......@@ -492,9 +489,9 @@ bool FixedRotation::initialize() {
}
}
if (_constructorDictionary.hasKey(KeyZAxis + OrthogonalVectorInfo.identifier)) {
if (_constructorDictionary.hasKey(ZAxisOrthogonalVectorInfo.identifier)) {
_zAxis.isOrthogonal = _constructorDictionary.value<bool>(
KeyZAxis + OrthogonalVectorInfo.identifier
ZAxisOrthogonalVectorInfo.identifier
);
}
if (_zAxis.isOrthogonal) {
......
......@@ -73,7 +73,7 @@ int addVirtualProperty(lua_State* L) {
if (type == "BoolProperty") {
const bool v = ghoul::lua::value<bool>(L, 5);
prop = std::make_unique<properties::BoolProperty>(
properties::Property::PropertyInfo{ identifier, name, description },
properties::Property::PropertyInfo{ identifier.c_str(), name.c_str(), description.c_str() },
v
);
}
......@@ -83,7 +83,7 @@ int addVirtualProperty(lua_State* L) {
const int max = ghoul::lua::value<int>(L, 7);
prop = std::make_unique<properties::IntProperty>(
properties::Property::PropertyInfo{ identifier, name, description },
properties::Property::PropertyInfo{ identifier.c_str(), name.c_str(), description.c_str() },
v,
min,
max
......@@ -95,7 +95,7 @@ int addVirtualProperty(lua_State* L) {
const float max = ghoul::lua::value<float>(L, 7);
prop = std::make_unique<properties::FloatProperty>(
properties::Property::PropertyInfo{ identifier, name, description },
properties::Property::PropertyInfo{ identifier.c_str(), name.c_str(), description.c_str() },
v,
min,
max
......@@ -103,7 +103,7 @@ int addVirtualProperty(lua_State* L) {
}
else if (type == "TriggerProperty") {
prop = std::make_unique<properties::TriggerProperty>(
properties::Property::PropertyInfo{ identifier, name, description }
properties::Property::PropertyInfo{ identifier.c_str(), name.c_str(), description.c_str() }
);
}
else {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment