cesium-native  0.41.0
CesiumGltf::ClassProperty Struct Referencefinal

A class property. More...

#include <CesiumGltf/ClassProperty.h>

Inheritance diagram for CesiumGltf::ClassProperty:
CesiumUtility::ExtensibleObject

Classes

struct  ComponentType
 Known values for The datatype of the element's components. Only applicable to SCALAR, VECN, and MATN types. More...
 
struct  Type
 Known values for The element type. More...
 

Public Attributes

std::optional< std::string > name
 The name of the property, e.g. for display purposes.
 
std::optional< std::string > description
 The description of the property.
 
std::string type = Type::SCALAR
 The element type. More...
 
std::optional< std::string > componentType
 The datatype of the element's components. Only applicable to SCALAR, VECN, and MATN types. More...
 
std::optional< std::string > enumType
 Enum ID as declared in the enums dictionary. Required when type is ENUM.
 
bool array = false
 Whether the property is an array. When count is defined the property is a fixed-length array. Otherwise the property is a variable-length array.
 
std::optional< int64_t > count
 The number of array elements. May only be defined when array is true.
 
bool normalized = false
 Specifies whether integer values are normalized. Only applicable to SCALAR, VECN, and MATN types with integer component types. For unsigned integer component types, values are normalized between [0.0, 1.0]. For signed integer component types, values are normalized between [-1.0, 1.0]. For all other component types, this property must be false.
 
std::optional< CesiumUtility::JsonValueoffset
 An offset to apply to property values. Only applicable to SCALAR, VECN, and MATN types when the component type is FLOAT32 or FLOAT64, or when the property is normalized.
 
std::optional< CesiumUtility::JsonValuescale
 A scale to apply to property values. Only applicable to SCALAR, VECN, and MATN types when the component type is FLOAT32 or FLOAT64, or when the property is normalized.
 
std::optional< CesiumUtility::JsonValuemax
 Maximum allowed value for the property. Only applicable to SCALAR, VECN, and MATN types. This is the maximum of all property values, after the transforms based on the normalized, offset, and scale properties have been applied.
 
std::optional< CesiumUtility::JsonValuemin
 Minimum allowed value for the property. Only applicable to SCALAR, VECN, and MATN types. This is the minimum of all property values, after the transforms based on the normalized, offset, and scale properties have been applied.
 
bool required = false
 If required, the property must be present in every entity conforming to the class. If not required, individual entities may include noData values, or the entire property may be omitted. As a result, noData has no effect on a required property. Client implementations may use required properties to make performance optimizations.
 
std::optional< CesiumUtility::JsonValuenoData
 A noData value represents missing data — also known as a sentinel value — wherever it appears. BOOLEAN properties may not specify noData values. This is given as the plain property value, without the transforms from the normalized, offset, and scale properties. Must not be defined if required is true.
 
std::optional< CesiumUtility::JsonValuedefaultProperty
 A default value to use when encountering a noData value or an omitted property. The value is given in its final form, taking the effect of normalized, offset, and scale properties into account. Must not be defined if required is true.
 
std::optional< std::string > semantic
 An identifier that describes how this property should be interpreted. The semantic cannot be used by other properties in the class.
 
- Public Attributes inherited from CesiumUtility::ExtensibleObject
std::unordered_map< std::string, std::any > extensions
 The extensions attached to this object. More...
 
JsonValue::Object extras
 Application-specific data. More...
 
JsonValue::Object unknownProperties
 Unknown properties that exist on this object but do not have any representation in the statically-typed classes. More...
 

Static Public Attributes

static constexpr const char * TypeName = "ClassProperty"
 

Additional Inherited Members

- Public Member Functions inherited from CesiumUtility::ExtensibleObject
template<typename T >
bool hasExtension () const noexcept
 Checks if an extension exists given its static type. More...
 
template<typename T >
const T * getExtension () const noexcept
 Gets an extension given its static type. More...
 
template<typename T >
T * getExtension () noexcept
 Gets an extension given its static type. More...
 
const JsonValuegetGenericExtension (const std::string &extensionName) const noexcept
 Gets a generic extension with the given name as a CesiumUtility::JsonValue. More...
 
JsonValuegetGenericExtension (const std::string &extensionName) noexcept
 Gets a generic extension with the given name as a CesiumUtility::JsonValue. More...
 
template<typename T , typename... ConstructorArgumentTypes>
T & addExtension (ConstructorArgumentTypes &&... constructorArguments)
 Adds a statically-typed extension to this object. More...
 
template<typename T >
void removeExtension ()
 Removes a statically-typed extension from this object. More...
 

Detailed Description

A class property.

Definition at line 18 of file ClassProperty.h.

Member Data Documentation

◆ componentType

std::optional<std::string> CesiumGltf::ClassProperty::componentType

The datatype of the element's components. Only applicable to SCALAR, VECN, and MATN types.

Known values are defined in ComponentType.

Definition at line 98 of file ClassProperty.h.

◆ type

std::string CesiumGltf::ClassProperty::type = Type::SCALAR

The element type.

Known values are defined in Type.

Definition at line 89 of file ClassProperty.h.


The documentation for this struct was generated from the following file: