5 #include "Cesium3DTiles/Library.h"
7 #include <CesiumUtility/ExtensibleObject.h>
8 #include <CesiumUtility/JsonValue.h>
20 static inline constexpr
const char* TypeName =
"ClassProperty";
26 inline static const std::string SCALAR =
"SCALAR";
28 inline static const std::string VEC2 =
"VEC2";
30 inline static const std::string VEC3 =
"VEC3";
32 inline static const std::string VEC4 =
"VEC4";
34 inline static const std::string MAT2 =
"MAT2";
36 inline static const std::string MAT3 =
"MAT3";
38 inline static const std::string MAT4 =
"MAT4";
40 inline static const std::string STRING =
"STRING";
42 inline static const std::string BOOLEAN =
"BOOLEAN";
44 inline static const std::string ENUM =
"ENUM";
52 inline static const std::string INT8 =
"INT8";
54 inline static const std::string UINT8 =
"UINT8";
56 inline static const std::string INT16 =
"INT16";
58 inline static const std::string UINT16 =
"UINT16";
60 inline static const std::string INT32 =
"INT32";
62 inline static const std::string UINT32 =
"UINT32";
64 inline static const std::string INT64 =
"INT64";
66 inline static const std::string UINT64 =
"UINT64";
68 inline static const std::string FLOAT32 =
"FLOAT32";
70 inline static const std::string FLOAT64 =
"FLOAT64";
76 std::optional<std::string>
name;
89 std::string type = Type::SCALAR;
127 bool normalized =
false;
135 std::optional<CesiumUtility::JsonValue>
offset;
143 std::optional<CesiumUtility::JsonValue>
scale;
151 std::optional<CesiumUtility::JsonValue>
max;
159 std::optional<CesiumUtility::JsonValue>
min;
168 bool required =
false;
177 std::optional<CesiumUtility::JsonValue>
noData;
Classes for using 3D Tiles.
Known values for The datatype of the element's components. Required for SCALAR, VECN,...
Known values for The element type.
A single property of a metadata class.
std::optional< CesiumUtility::JsonValue > noData
A noData value represents missing data — also known as a sentinel value — wherever it appears....
std::optional< CesiumUtility::JsonValue > offset
An offset to apply to property values. Only applicable to SCALAR, VECN, and MATN types when the compo...
std::optional< std::string > description
The description of the property.
std::optional< std::string > semantic
An identifier that describes how this property should be interpreted. The semantic cannot be used by ...
std::optional< CesiumUtility::JsonValue > scale
A scale to apply to property values. Only applicable to SCALAR, VECN, and MATN types when the compone...
std::optional< std::string > componentType
The datatype of the element's components. Required for SCALAR, VECN, and MATN types,...
std::optional< CesiumUtility::JsonValue > max
Maximum allowed value for the property. Only applicable to SCALAR, VECN, and MATN types....
std::optional< CesiumUtility::JsonValue > min
Minimum allowed value for the property. Only applicable to SCALAR, VECN, and MATN types....
std::optional< std::string > enumType
Enum ID as declared in the enums dictionary. Required when type is ENUM. Disallowed when type is not ...
std::optional< int64_t > count
The number of array elements. May only be defined when array is true.
std::optional< std::string > name
The name of the property, e.g. for display purposes.
std::optional< CesiumUtility::JsonValue > defaultProperty
A default value to use when encountering a noData value or an omitted property. The value is given in...
The base class for objects that have extensions and extras.