5#include "CesiumGltf/PropertyTypeTraits.h"
8#include "Kismet/BlueprintFunctionLibrary.h"
9#include "UObject/ObjectMacros.h"
12#include <swl/variant.hpp>
14#include "CesiumMetadataValue.generated.h"
21 GENERATED_USTRUCT_BODY()
24#pragma region ValueType declaration
26 using ValueType = swl::variant<
43 glm::vec<2, uint16_t>,
45 glm::vec<2, uint32_t>,
47 glm::vec<2, uint64_t>,
53 glm::vec<3, uint16_t>,
55 glm::vec<3, uint32_t>,
57 glm::vec<3, uint64_t>,
63 glm::vec<4, uint16_t>,
65 glm::vec<4, uint32_t>,
67 glm::vec<4, uint64_t>,
70 glm::mat<2, 2, int8_t>,
71 glm::mat<2, 2, uint8_t>,
72 glm::mat<2, 2, int16_t>,
73 glm::mat<2, 2, uint16_t>,
74 glm::mat<2, 2, int32_t>,
75 glm::mat<2, 2, uint32_t>,
76 glm::mat<2, 2, int64_t>,
77 glm::mat<2, 2, uint64_t>,
78 glm::mat<2, 2, float>,
79 glm::mat<2, 2, double>,
80 glm::mat<3, 3, int8_t>,
81 glm::mat<3, 3, uint8_t>,
82 glm::mat<3, 3, int16_t>,
83 glm::mat<3, 3, uint16_t>,
84 glm::mat<3, 3, int32_t>,
85 glm::mat<3, 3, uint32_t>,
86 glm::mat<3, 3, int64_t>,
87 glm::mat<3, 3, uint64_t>,
88 glm::mat<3, 3, float>,
89 glm::mat<3, 3, double>,
90 glm::mat<4, 4, int8_t>,
91 glm::mat<4, 4, uint8_t>,
92 glm::mat<4, 4, int16_t>,
93 glm::mat<4, 4, uint16_t>,
94 glm::mat<4, 4, int32_t>,
95 glm::mat<4, 4, uint32_t>,
96 glm::mat<4, 4, int64_t>,
97 glm::mat<4, 4, uint64_t>,
98 glm::mat<4, 4, float>,
99 glm::mat<4, 4, double>,
185 template <
typename T>
187 : _value(Value), _valueType(), _storage() {
204 _valueType = {type, componentType, isArray};
207 template <
typename ArrayType>
212 template <
typename ArrayType>
214 : _value(), _valueType(), _storage() {
215 this->_value = std::move(Copy).toViewAndExternalBuffer(this->_storage);
222 this->_valueType = {type, componentType, isArray};
230 template <
typename T>
232 : _value(), _valueType(), _storage() {
238 this->_value = std::move(temp._value);
239 this->_valueType = std::move(temp._valueType);
240 this->_storage = std::move(temp._storage);
251 std::vector<std::byte> _storage;
258 : public UBlueprintFunctionLibrary {
270 Category =
"Cesium|Metadata|Value")
281 Category =
"Cesium|Metadata|Value")
293 Category = "Cesium|Metadata|Value")
297 PRAGMA_DISABLE_DEPRECATION_WARNINGS
308 "CesiumMetadataTrueType is deprecated. Use
GetValueType to get the CesiumMetadataValueType instead."))
323 "CesiumMetadataTrueType is deprecated. Use
GetValueType to get the CesiumMetadataValueType instead."))
327 PRAGMA_ENABLE_DEPRECATION_WARNINGS
352 Category = "Cesium|Metadata|Value")
382 Category = "Cesium|Metadata|Value")
414 Category = "Cesium|Metadata|Value")
446 Category = "Cesium|Metadata|Value")
478 Category = "Cesium|Metadata|Value")
508 Category = "Cesium|Metadata|Value")
511 double DefaultValue);
543 Category = "Cesium|Metadata|Value")
546 const FIntPoint& DefaultValue);
576 Category = "Cesium|Metadata|Value")
579 const FVector2D& DefaultValue);
614 Category = "Cesium|Metadata|Value")
617 const FIntVector& DefaultValue);
653 Category = "Cesium|Metadata|Value")
656 const FVector3f& DefaultValue);
689 Category = "Cesium|Metadata|Value")
692 const FVector& DefaultValue);
727 Category = "Cesium|Metadata|Value")
730 const FVector4& DefaultValue);
766 Category = "Cesium|Metadata|Value")
769 const FMatrix& DefaultValue);
797 Category = "Cesium|Metadata|Value")
800 const FString& DefaultValue);
812 Category = "Cesium|Metadata|Value")
829 Category = "Cesium|Metadata|Value")
843 Category = "Cesium|Metadata|Value")
844 static TMap<FString, FString>
A Blueprint-accessible wrapper for an array property in glTF metadata.