3#include <CesiumGltf/PropertyArrayView.h>
4#include <CesiumGltf/PropertyType.h>
82template <glm::length_t n,
typename T, glm::qualifier P>
92template <glm::length_t n,
typename T, glm::qualifier P>
215#pragma region Scalar Property Types
308#pragma region Vector Property Types
311template <
typename T, glm::qualifier P>
322template <
typename T, glm::qualifier P>
333template <
typename T, glm::qualifier P>
345#pragma region Matrix Property Types
348template <
typename T, glm::qualifier P>
359template <
typename T, glm::qualifier P>
370template <
typename T, glm::qualifier P>
407template <glm::length_t n,
typename T, glm::qualifier P>
418template <glm::length_t n,
typename T, glm::qualifier P>
467template <glm::length_t n,
typename T, glm::qualifier P>
471template <glm::length_t n,
typename T, glm::qualifier P>
525template <glm::length_t N,
typename T, glm::qualifier Q>
528 using type = glm::vec<N, double, Q>;
532template <glm::length_t N,
typename T, glm::qualifier Q>
535 using type = glm::mat<N, N, double, Q>;
588template <glm::length_t N,
typename T, glm::qualifier Q>
596template <glm::length_t N,
typename T, glm::qualifier Q>
648static std::optional<PropertyValueViewToCopy<T>>
649propertyValueViewToCopy(
const std::optional<T>& view) {
652 return std::make_optional<PropertyValueViewToCopy<T>>(
653 std::vector(view->begin(), view->end()));
672 if constexpr (IsMetadataNumericArray<T>::value) {
A copy of an array element of a PropertyTableProperty or PropertyTextureProperty.
A view on an array element of a PropertyTableProperty or PropertyTextureProperty.
Classes for working with glTF models.
PropertyComponentType
The possible types of a property component.
@ Float32
A property component equivalent to a float.
@ Uint32
A property component equivalent to a uint32_t.
@ Uint16
A property component equivalent to a uint16_t.
@ Int16
A property component equivalent to an int16_t.
@ Uint8
A property component equivalent to a uint8_t.
@ Int8
A property component equivalent to an int8_t.
@ Int32
A property component equivalent to an int32_t.
@ Uint64
A property component equivalent to a uint32_t.
@ Float64
A property component equivalent to a double.
@ Int64
A property component equivalent to an int64_t.
std::conditional_t< IsMetadataNumericArray< T >::value, PropertyArrayView< typename MetadataArrayType< T >::type >, T > PropertyValueCopyToView
Transforms a property value type from a copy that owns the data it is viewing to a view into that dat...
bool canRepresentPropertyType(PropertyType type)
Returns whether the type T can represent the given PropertyType.
std::conditional_t< IsMetadataNumericArray< T >::value, PropertyArrayCopy< typename MetadataArrayType< T >::type >, T > PropertyValueViewToCopy
Transforms a property value type from a view to an equivalent type that owns the data it is viewing....
PropertyType
The possible types of a property in a PropertyTableView.
@ Vec3
A vector with three components.
@ Scalar
A scalar property, i.e. an integer or floating point value.
@ Vec4
A vector with four components.
@ Vec2
A vector with two components.
Check if a C++ type can be normalized.
static constexpr glm::length_t dimensions
The number of dimensions present in this glm::mat type.
static constexpr glm::length_t dimensions
The number of dimensions present in this glm::vec type.
The number of dimensions that this type contains.
PropertyArrayView< glm::mat< N, N, double, Q > > type
The representation of an array of glm::mat<N, N, T, Q> types as an array of its double type equivalen...
PropertyArrayView< glm::vec< N, double, Q > > type
The representation of an array of glm::vec<N, T, Q> types as an array of its double type equivalents.
PropertyArrayView< double > type
The representation of an array of int16_t types as an array of its double type equivalents.
PropertyArrayView< double > type
The representation of an array of int32_t types as an array of its double type equivalents.
PropertyArrayView< double > type
The representation of an array of int64_t types as an array of its double type equivalents.
PropertyArrayView< double > type
The representation of an array of int8_t types as an array of its double type equivalents.
PropertyArrayView< double > type
The representation of an array of uint16_t types as an array of its double type equivalents.
PropertyArrayView< double > type
The representation of an array of uint32_t types as an array of its double type equivalents.
PropertyArrayView< double > type
The representation of an array of uint64_t types as an array of its double type equivalents.
PropertyArrayView< double > type
The representation of an array of uint8_t types as an array of its double type equivalents.
glm::mat< N, N, double, Q > type
The representation of a glm::mat<N, N, T, Q> as a double type.
glm::vec< N, double, Q > type
The representation of a glm::vec<N, T, Q> as a double type.
double type
The representation of an int16_t as a double type.
double type
The representation of an int32_t as a double type.
double type
The representation of an int64_t as a double type.
double type
The representation of an int8_t as a double type.
double type
The representation of a uint16_t as a double type.
double type
The representation of a uint32_t as a double type.
double type
The representation of a uint64_t as a double type.
double type
The representation of a uint8_t as a double type.
Convert an integer numeric type to the corresponding representation as a double type....
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a bool.
static constexpr PropertyType value
The PropertyType corresponding to a bool.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a double.
static constexpr PropertyType value
The PropertyType corresponding to a float.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a float.
static constexpr PropertyType value
The PropertyType corresponding to a float.
static constexpr PropertyType value
The PropertyType corresponding to a glm::mat<2, 2, ...>.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a glm::mat<2, 2, ...>.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a glm::mat<3, 3, ...>.
static constexpr PropertyType value
The PropertyType corresponding to a glm::mat<3, 3, ...>.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a glm::mat<4, 4, ...>.
static constexpr PropertyType value
The PropertyType corresponding to a glm::mat<4, 4, ...>.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a glm::vec<2, ...>.
static constexpr PropertyType value
The PropertyType corresponding to a glm::vec<2, ...>.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a glm::vec<3, ...>.
static constexpr PropertyType value
The PropertyType corresponding to a glm::vec<3, ...>.
static constexpr PropertyType value
The PropertyType corresponding to a glm::vec<4, ...>.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a glm::vec<4, ...>.
static constexpr PropertyType value
The PropertyType corresponding to an int16_t.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to an int16_t.
static constexpr PropertyType value
The PropertyType corresponding to an int32_t.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to an int32_t.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to an int64_t.
static constexpr PropertyType value
The PropertyType corresponding to an int64_t.
static constexpr PropertyType value
The PropertyType corresponding to an int8_t.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to an int8_t.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a std::string_view.
static constexpr PropertyType value
The PropertyType corresponding to a std::string_view.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a uint16_t.
static constexpr PropertyType value
The PropertyType corresponding to a uint16_t.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a uint32_t.
static constexpr PropertyType value
The PropertyType corresponding to a uint32_t.
static constexpr PropertyType value
The PropertyType corresponding to a uint64_t.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a uint64_t.
static constexpr PropertyComponentType component
The PropertyComponentType corresponding to a uint8_t.
static constexpr PropertyType value
The PropertyType corresponding to a uint8_t.
Infer the best-fitting PropertyType and PropertyComponentType for a C++ type.