cesium-native 0.48.0
Loading...
Searching...
No Matches
ClassProperty.h
1// This file was generated by generate-classes.
2// DO NOT EDIT THIS FILE!
3#pragma once
4
5#include <Cesium3DTiles/Library.h>
6#include <CesiumUtility/ExtensibleObject.h>
7#include <CesiumUtility/JsonValue.h>
8
9#include <cstdint>
10#include <optional>
11#include <string>
12
13namespace Cesium3DTiles {
17struct CESIUM3DTILES_API ClassProperty final
22 static constexpr const char* TypeName = "ClassProperty";
23
27 struct Type {
29 inline static const std::string SCALAR = "SCALAR";
30
32 inline static const std::string VEC2 = "VEC2";
33
35 inline static const std::string VEC3 = "VEC3";
36
38 inline static const std::string VEC4 = "VEC4";
39
41 inline static const std::string MAT2 = "MAT2";
42
44 inline static const std::string MAT3 = "MAT3";
45
47 inline static const std::string MAT4 = "MAT4";
48
50 inline static const std::string STRING = "STRING";
51
53 inline static const std::string BOOLEAN = "BOOLEAN";
54
56 inline static const std::string ENUM = "ENUM";
57 };
58
65 inline static const std::string INT8 = "INT8";
66
68 inline static const std::string UINT8 = "UINT8";
69
71 inline static const std::string INT16 = "INT16";
72
74 inline static const std::string UINT16 = "UINT16";
75
77 inline static const std::string INT32 = "INT32";
78
80 inline static const std::string UINT32 = "UINT32";
81
83 inline static const std::string INT64 = "INT64";
84
86 inline static const std::string UINT64 = "UINT64";
87
89 inline static const std::string FLOAT32 = "FLOAT32";
90
92 inline static const std::string FLOAT64 = "FLOAT64";
93 };
94
98 std::optional<std::string> name;
99
103 std::optional<std::string> description;
104
111 std::string type = Type::SCALAR;
112
120 std::optional<std::string> componentType;
121
126 std::optional<std::string> enumType;
127
133 bool array = false;
134
139 std::optional<int64_t> count;
140
149 bool normalized = false;
150
157 std::optional<CesiumUtility::JsonValue> offset;
158
165 std::optional<CesiumUtility::JsonValue> scale;
166
173 std::optional<CesiumUtility::JsonValue> max;
174
181 std::optional<CesiumUtility::JsonValue> min;
182
190 bool required = false;
191
199 std::optional<CesiumUtility::JsonValue> noData;
200
207 std::optional<CesiumUtility::JsonValue> defaultProperty;
208
213 std::optional<std::string> semantic;
214
221 int64_t getSizeBytes() const {
222 int64_t accum = 0;
223 accum += int64_t(sizeof(ClassProperty));
225 int64_t(sizeof(CesiumUtility::ExtensibleObject));
226 if (this->name) {
227 accum += int64_t(this->name->capacity() * sizeof(char));
228 }
229 if (this->description) {
230 accum += int64_t(this->description->capacity() * sizeof(char));
231 }
232 if (this->enumType) {
233 accum += int64_t(this->enumType->capacity() * sizeof(char));
234 }
235 if (this->semantic) {
236 accum += int64_t(this->semantic->capacity() * sizeof(char));
237 }
238 return accum;
239 }
240};
241} // namespace Cesium3DTiles
Classes for using 3D Tiles.
Definition Buffer.h:7
Known values for The datatype of the element's components. Required for SCALAR, VECN,...
static const std::string FLOAT64
FLOAT64
static const std::string UINT8
UINT8
static const std::string UINT64
UINT64
static const std::string INT32
INT32
static const std::string INT64
INT64
static const std::string UINT16
UINT16
static const std::string UINT32
UINT32
static const std::string FLOAT32
FLOAT32
static const std::string INT16
INT16
Known values for The element type.
static const std::string VEC3
VEC3
static const std::string ENUM
ENUM
static const std::string VEC4
VEC4
static const std::string MAT4
MAT4
static const std::string BOOLEAN
BOOLEAN
static const std::string MAT2
MAT2
static const std::string STRING
STRING
static const std::string MAT3
MAT3
static const std::string SCALAR
SCALAR
static const std::string VEC2
VEC2
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....
bool required
If required, the property shall be present in every entity conforming to the class....
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.
int64_t getSizeBytes() const
Calculates the size in bytes of this object, including the contents of all collections,...
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...
bool array
Whether the property is an array. When count is defined the property is a fixed-length array....
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....
static constexpr const char * TypeName
The original name of this type.
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.
bool normalized
Specifies whether integer values are normalized. Only applicable to SCALAR, VECN, and MATN types with...
std::string type
The element type.
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.
int64_t getSizeBytes() const
Calculates the size in bytes of this ExtensibleObject, including all of its extras but NOT including ...