5#include <CesiumGltf/Library.h>
6#include <CesiumUtility/ExtensibleObject.h>
7#include <CesiumUtility/JsonValue.h>
22 static constexpr const char*
TypeName =
"ClassProperty";
29 inline static const std::string
SCALAR =
"SCALAR";
32 inline static const std::string
VEC2 =
"VEC2";
35 inline static const std::string
VEC3 =
"VEC3";
38 inline static const std::string
VEC4 =
"VEC4";
41 inline static const std::string
MAT2 =
"MAT2";
44 inline static const std::string
MAT3 =
"MAT3";
47 inline static const std::string
MAT4 =
"MAT4";
50 inline static const std::string
STRING =
"STRING";
53 inline static const std::string
BOOLEAN =
"BOOLEAN";
56 inline static const std::string
ENUM =
"ENUM";
65 inline static const std::string
INT8 =
"INT8";
68 inline static const std::string
UINT8 =
"UINT8";
71 inline static const std::string
INT16 =
"INT16";
74 inline static const std::string
UINT16 =
"UINT16";
77 inline static const std::string
INT32 =
"INT32";
80 inline static const std::string
UINT32 =
"UINT32";
83 inline static const std::string
INT64 =
"INT64";
86 inline static const std::string
UINT64 =
"UINT64";
89 inline static const std::string
FLOAT32 =
"FLOAT32";
92 inline static const std::string
FLOAT64 =
"FLOAT64";
98 std::optional<std::string>
name;
156 std::optional<CesiumUtility::JsonValue>
offset;
163 std::optional<CesiumUtility::JsonValue>
scale;
171 std::optional<CesiumUtility::JsonValue>
max;
179 std::optional<CesiumUtility::JsonValue>
min;
197 std::optional<CesiumUtility::JsonValue>
noData;
225 accum += int64_t(this->name->capacity() *
sizeof(
char));
227 if (this->description) {
228 accum += int64_t(this->description->capacity() *
sizeof(
char));
230 if (this->enumType) {
231 accum += int64_t(this->enumType->capacity() *
sizeof(
char));
233 if (this->semantic) {
234 accum += int64_t(this->semantic->capacity() *
sizeof(
char));
Classes for working with glTF models.
Known values for The datatype of the element's components. Only applicable to SCALAR,...
static const std::string INT32
INT32
static const std::string INT16
INT16
static const std::string FLOAT32
FLOAT32
static const std::string INT8
INT8
static const std::string INT64
INT64
static const std::string UINT8
UINT8
static const std::string UINT32
UINT32
static const std::string FLOAT64
FLOAT64
static const std::string UINT16
UINT16
static const std::string UINT64
UINT64
Known values for The element type.
static const std::string STRING
STRING
static const std::string MAT4
MAT4
static const std::string VEC4
VEC4
static const std::string VEC3
VEC3
static const std::string ENUM
ENUM
static const std::string MAT3
MAT3
static const std::string MAT2
MAT2
static const std::string VEC2
VEC2
static const std::string SCALAR
SCALAR
static const std::string BOOLEAN
BOOLEAN
std::optional< std::string > semantic
An identifier that describes how this property should be interpreted. The semantic cannot be used by ...
bool normalized
Specifies whether integer values are normalized. Only applicable to SCALAR, VECN, and MATN types with...
std::optional< std::string > componentType
The datatype of the element's components. Only applicable to SCALAR, VECN, and MATN types.
int64_t getSizeBytes() const
Calculates the size in bytes of this object, including the contents of all collections,...
std::optional< int64_t > count
The number of array elements. May only be defined when array is true.
std::optional< CesiumUtility::JsonValue > scale
A scale to apply to property values. Only applicable to SCALAR, VECN, and MATN types when the compone...
bool array
Whether the property is an array. When count is defined the property is a fixed-length array....
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.
static constexpr const char * TypeName
The original name of this type.
std::optional< CesiumUtility::JsonValue > noData
A noData value represents missing data — also known as a sentinel value — wherever it appears....
std::string type
The element type.
std::optional< CesiumUtility::JsonValue > min
Minimum allowed value for the property. Only applicable to SCALAR, VECN, and MATN types....
bool required
If required, the property must be present in every entity conforming to the class....
std::optional< std::string > enumType
Enum ID as declared in the enums dictionary. Required when type is ENUM.
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...
std::optional< CesiumUtility::JsonValue > max
Maximum allowed value for the property. Only applicable to SCALAR, VECN, and MATN types....
The base class for objects that have extensions and extras.
int64_t getSizeBytes() const
Calculates the size in bytes of this ExtensibleObject, including all of its extras but NOT including ...