5#include "CesiumGltf/PropertyArrayView.h"
6#include "CesiumGltf/PropertyTypeTraits.h"
8#include "UObject/ObjectMacros.h"
9#include <swl/variant.hpp>
10#include "CesiumPropertyArray.generated.h"
17 GENERATED_USTRUCT_BODY()
20#pragma region ArrayType
24 using ArrayType = swl::variant<
109 template <
typename T>
111 : _value(), _elementType(), _storage() {
112 this->_value = std::move(value).toViewAndExternalBuffer(this->_storage);
117 bool isArray =
false;
119 _elementType = {type, componentType, isArray};
122 template <
typename T>
126 template <
typename T>
128 : _value(value), _elementType() {
133 bool isArray =
false;
135 _elementType = {type, componentType, isArray};
144 template <
typename T,
typename... VariantType>
146 holdsArrayAlternative(
const swl::variant<VariantType...>& variant) {
147 return swl::holds_alternative<CesiumGltf::PropertyArrayView<T>>(variant);
152 std::vector<std::byte> _storage;
Blueprint library functions for acting on an array property in EXT_structural_metadata.
A Blueprint-accessible wrapper for an array property in glTF metadata.
FCesiumPropertyArray(const FCesiumPropertyArray &rhs)
FCesiumPropertyArray(CesiumGltf::PropertyArrayCopy< T > &&value)
Constructs an array instance.
FCesiumPropertyArray()
Constructs an empty array instance with an unknown element type.
FCesiumPropertyArray(FCesiumPropertyArray &&rhs)
FCesiumPropertyArray & operator=(FCesiumPropertyArray &&rhs)
FCesiumPropertyArray(const CesiumGltf::PropertyArrayCopy< T > &value)
FCesiumPropertyArray & operator=(const FCesiumPropertyArray &rhs)
FCesiumPropertyArray(const CesiumGltf::PropertyArrayView< T > &value)