cesium-native 0.62.0
Loading...
Searching...
No Matches
CesiumGltf::PropertyAttributePropertyView< ElementType, false > Class Template Reference

A view of the non-normalized data specified by a PropertyAttributeProperty. More...

#include <CesiumGltf/PropertyAttributePropertyView.h>

Inheritance diagram for CesiumGltf::PropertyAttributePropertyView< ElementType, false >:
CesiumGltf::PropertyView< ElementType, false >

Public Member Functions

 PropertyAttributePropertyView () noexcept
 Constructs an invalid instance for a non-existent property.
 
 PropertyAttributePropertyView (PropertyViewStatusType status) noexcept
 Constructs an invalid instance for an erroneous property.
 
 PropertyAttributePropertyView (const ClassProperty &classProperty, int64_t size) noexcept
 Constructs an instance of an empty property that specifies a default value. Although this property has no data, it can return the default value when PropertyAttributePropertyView<ElementType, false>::get is called. However, PropertyAttributePropertyView<ElementType, false>::getRaw cannot be used.
 
 PropertyAttributePropertyView (const PropertyAttributeProperty &property, const ClassProperty &classProperty, const AccessorView< ElementType > &accessorView) noexcept
 Construct a view of the data specified by a PropertyAttributeProperty.
 
std::optional< ElementType > get (int64_t index) const noexcept
 Gets the value of the property for the given vertex index with all value transforms applied. That is, if the property specifies an offset and scale, they will be applied to the value before the value is returned.
 
ElementType getRaw (int64_t index) const noexcept
 Gets the raw value of the property for the given vertex index.
 
int64_t size () const noexcept
 Get the number of elements in this PropertyAttributePropertyView. If the view is valid, this returns the count of the elements in the attribute's accessor. Otherwise, this returns 0.
 
const AccessorView< ElementType > & accessorView () const
 Gets the underlying AccessorView from the PropertyAttributePropertyView.
 
- Public Member Functions inherited from CesiumGltf::PropertyView< ElementType, false >
 PropertyView ()
 Constructs an empty property instance.
 
 PropertyView (const ClassProperty &classProperty)
 Constructs a property instance from a class definition only.
 
 PropertyView (const ClassProperty &classProperty, const CesiumGltf::Enum *pEnumDefinition)
 Constructs a property instance from a class definition and enum definition.
 
PropertyViewStatusType status () const noexcept
 Gets the status of this property view, indicating whether an error occurred.
 
const std::optional< std::string > & name () const noexcept
 Gets the name of the property being viewed. Returns std::nullopt if no name was specified.
 
const std::optional< std::string > & semantic () const noexcept
 Gets the semantic of the property being viewed. The semantic is an identifier that describes how this property should be interpreted, and cannot be used by other properties in the class. Returns std::nullopt if no semantic was specified.
 
const std::optional< std::string > & description () const noexcept
 Gets the description of the property being viewed. Returns std::nullopt if no description was specified.
 
int64_t arrayCount () const noexcept
 Get the element count of the fixed-length arrays in this property. Only applicable when the property is an array type.
 
bool normalized () const noexcept
 Whether this property has a normalized integer type.
 
std::optional< ElementType > offset () const noexcept
 Gets the 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< ElementType > scale () const noexcept
 Gets the 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< ElementType > max () const noexcept
 Gets the 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< ElementType > min () const noexcept
 Gets the 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 () const noexcept
 Whether the property must be present in every entity conforming to the class. If not required, instances of the property may include "no data" values, or the entire property may be omitted.
 
std::optional< ElementType > noData () const noexcept
 Gets the "no data" value, i.e., the value representing missing data in the property wherever it appears. Also known as a sentinel value. This is given as the plain property value, without the transforms from the normalized, offset, and scale properties.
 
std::optional< ElementType > defaultValue () const noexcept
 Gets the default value to use when encountering a "no data" value or an omitted property. The value is given in its final form, taking the effect of normalized, offset, and scale properties into account.
 
PropertyType propertyType () const noexcept
 Returns the PropertyType of the property this view is accessing.
 

Additional Inherited Members

- Protected Member Functions inherited from CesiumGltf::PropertyView< ElementType, false >
 PropertyView (PropertyViewStatusType status)
 Constructs an invalid instance for an erroneous property.
 
 PropertyView (const ClassProperty &classProperty, const PropertyTableProperty &property, const CesiumGltf::Enum *pEnumDefinition=nullptr)
 Constructs a property instance from a property table property and its class definition, with an optional associated enum definition.
 
 PropertyView (const ClassProperty &classProperty, const PropertyTextureProperty &property, const CesiumGltf::Enum *pEnumDefinition=nullptr)
 Constructs a property instance from a property texture property, class definition, and an optional associated enum definition.
 
 PropertyView (const ClassProperty &classProperty, const PropertyAttributeProperty &property, const CesiumGltf::Enum *pEnumDefinition=nullptr)
 Constructs a property instance from a property attribute property and its class definition, along with an optional enum definition.
 
- Protected Attributes inherited from CesiumGltf::PropertyView< ElementType, false >
PropertyViewStatusType _status
 Indicates the status of a property view.
 

Detailed Description

template<typename ElementType>
class CesiumGltf::PropertyAttributePropertyView< ElementType, false >

A view of the non-normalized data specified by a PropertyAttributeProperty.

Ideally, property attribute properties can be initialized as vertex attributes in the target rendering context. However, some runtime engines do not allow custom vertex attributes. This view can be used instead to sample the property attributes property via vertex index.

Template Parameters
ElementTypeThe type of the elements represented in the property view

Definition at line 118 of file PropertyAttributePropertyView.h.

Constructor & Destructor Documentation

◆ PropertyAttributePropertyView() [1/4]

template<typename ElementType>
CesiumGltf::PropertyAttributePropertyView< ElementType, false >::PropertyAttributePropertyView ( )
inlinenoexcept

Constructs an invalid instance for a non-existent property.

Definition at line 124 of file PropertyAttributePropertyView.h.

◆ PropertyAttributePropertyView() [2/4]

template<typename ElementType>
CesiumGltf::PropertyAttributePropertyView< ElementType, false >::PropertyAttributePropertyView ( PropertyViewStatusType status)
inlinenoexcept

Constructs an invalid instance for an erroneous property.

Parameters
statusThe code from PropertyAttributePropertyViewStatus indicating the error with the property.

Definition at line 132 of file PropertyAttributePropertyView.h.

◆ PropertyAttributePropertyView() [3/4]

template<typename ElementType>
CesiumGltf::PropertyAttributePropertyView< ElementType, false >::PropertyAttributePropertyView ( const ClassProperty & classProperty,
int64_t size )
inlinenoexcept

Constructs an instance of an empty property that specifies a default value. Although this property has no data, it can return the default value when PropertyAttributePropertyView<ElementType, false>::get is called. However, PropertyAttributePropertyView<ElementType, false>::getRaw cannot be used.

Parameters
classPropertyThe ClassProperty this property conforms to.
sizeThe number of elements in the primitive's POSITION accessor. Used as a substitute since no actual accessor is defined.

Definition at line 149 of file PropertyAttributePropertyView.h.

◆ PropertyAttributePropertyView() [4/4]

template<typename ElementType>
CesiumGltf::PropertyAttributePropertyView< ElementType, false >::PropertyAttributePropertyView ( const PropertyAttributeProperty & property,
const ClassProperty & classProperty,
const AccessorView< ElementType > & accessorView )
inlinenoexcept

Construct a view of the data specified by a PropertyAttributeProperty.

Parameters
propertyThe PropertyAttributeProperty
classPropertyThe ClassProperty this property conforms to.
accessorViewThe AccessorView for the data that this property is associated with.

Definition at line 181 of file PropertyAttributePropertyView.h.

Member Function Documentation

◆ accessorView()

template<typename ElementType>
const AccessorView< ElementType > & CesiumGltf::PropertyAttributePropertyView< ElementType, false >::accessorView ( ) const
inline

Gets the underlying AccessorView from the PropertyAttributePropertyView.

Definition at line 258 of file PropertyAttributePropertyView.h.

◆ get()

template<typename ElementType>
std::optional< ElementType > CesiumGltf::PropertyAttributePropertyView< ElementType, false >::get ( int64_t index) const
inlinenoexcept

Gets the value of the property for the given vertex index with all value transforms applied. That is, if the property specifies an offset and scale, they will be applied to the value before the value is returned.

If this property has a specified "no data" value, this will return the property's default value for any elements that equal this "no data" value. If the property did not specify a default value, this returns std::nullopt.

Parameters
indexThe vertex index.
Returns
The value of the property for the given vertex, or std::nullopt if it matches the "no data" value

Definition at line 207 of file PropertyAttributePropertyView.h.

◆ getRaw()

template<typename ElementType>
ElementType CesiumGltf::PropertyAttributePropertyView< ElementType, false >::getRaw ( int64_t index) const
inlinenoexcept

Gets the raw value of the property for the given vertex index.

If this property has a specified "no data" value, the raw value will still be returned, even if it equals the "no data" value.

Parameters
indexThe vertex index.
Returns
The value of the property for the given vertex.

Definition at line 232 of file PropertyAttributePropertyView.h.

◆ size()

template<typename ElementType>
int64_t CesiumGltf::PropertyAttributePropertyView< ElementType, false >::size ( ) const
inlinenoexcept

Get the number of elements in this PropertyAttributePropertyView. If the view is valid, this returns the count of the elements in the attribute's accessor. Otherwise, this returns 0.

Returns
The number of elements in this PropertyAttributePropertyView.

Definition at line 252 of file PropertyAttributePropertyView.h.


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