24 GENERATED_USTRUCT_BODY()
27#pragma region ValueType declaration
29 using ValueType = swl::variant<
46 glm::vec<2, uint16_t>,
48 glm::vec<2, uint32_t>,
50 glm::vec<2, uint64_t>,
56 glm::vec<3, uint16_t>,
58 glm::vec<3, uint32_t>,
60 glm::vec<3, uint64_t>,
66 glm::vec<4, uint16_t>,
68 glm::vec<4, uint32_t>,
70 glm::vec<4, uint64_t>,
73 glm::mat<2, 2, int8_t>,
74 glm::mat<2, 2, uint8_t>,
75 glm::mat<2, 2, int16_t>,
76 glm::mat<2, 2, uint16_t>,
77 glm::mat<2, 2, int32_t>,
78 glm::mat<2, 2, uint32_t>,
79 glm::mat<2, 2, int64_t>,
80 glm::mat<2, 2, uint64_t>,
81 glm::mat<2, 2, float>,
82 glm::mat<2, 2, double>,
83 glm::mat<3, 3, int8_t>,
84 glm::mat<3, 3, uint8_t>,
85 glm::mat<3, 3, int16_t>,
86 glm::mat<3, 3, uint16_t>,
87 glm::mat<3, 3, int32_t>,
88 glm::mat<3, 3, uint32_t>,
89 glm::mat<3, 3, int64_t>,
90 glm::mat<3, 3, uint64_t>,
91 glm::mat<3, 3, float>,
92 glm::mat<3, 3, double>,
93 glm::mat<4, 4, int8_t>,
94 glm::mat<4, 4, uint8_t>,
95 glm::mat<4, 4, int16_t>,
96 glm::mat<4, 4, uint16_t>,
97 glm::mat<4, 4, int32_t>,
98 glm::mat<4, 4, uint32_t>,
99 glm::mat<4, 4, int64_t>,
100 glm::mat<4, 4, uint64_t>,
101 glm::mat<4, 4, float>,
102 glm::mat<4, 4, double>,
114 ArrayView<std::string_view>,
115 ArrayView<glm::vec<2, int8_t>>,
116 ArrayView<glm::vec<2, uint8_t>>,
117 ArrayView<glm::vec<2, int16_t>>,
118 ArrayView<glm::vec<2, uint16_t>>,
119 ArrayView<glm::vec<2, int32_t>>,
120 ArrayView<glm::vec<2, uint32_t>>,
121 ArrayView<glm::vec<2, int64_t>>,
122 ArrayView<glm::vec<2, uint64_t>>,
123 ArrayView<glm::vec<2, float>>,
124 ArrayView<glm::vec<2, double>>,
125 ArrayView<glm::vec<3, int8_t>>,
126 ArrayView<glm::vec<3, uint8_t>>,
127 ArrayView<glm::vec<3, int16_t>>,
128 ArrayView<glm::vec<3, uint16_t>>,
129 ArrayView<glm::vec<3, int32_t>>,
130 ArrayView<glm::vec<3, uint32_t>>,
131 ArrayView<glm::vec<3, int64_t>>,
132 ArrayView<glm::vec<3, uint64_t>>,
133 ArrayView<glm::vec<3, float>>,
134 ArrayView<glm::vec<3, double>>,
135 ArrayView<glm::vec<4, int8_t>>,
136 ArrayView<glm::vec<4, uint8_t>>,
137 ArrayView<glm::vec<4, int16_t>>,
138 ArrayView<glm::vec<4, uint16_t>>,
139 ArrayView<glm::vec<4, int32_t>>,
140 ArrayView<glm::vec<4, uint32_t>>,
141 ArrayView<glm::vec<4, int64_t>>,
142 ArrayView<glm::vec<4, uint64_t>>,
143 ArrayView<glm::vec<4, float>>,
144 ArrayView<glm::vec<4, double>>,
145 ArrayView<glm::mat<2, 2, int8_t>>,
146 ArrayView<glm::mat<2, 2, uint8_t>>,
147 ArrayView<glm::mat<2, 2, int16_t>>,
148 ArrayView<glm::mat<2, 2, uint16_t>>,
149 ArrayView<glm::mat<2, 2, int32_t>>,
150 ArrayView<glm::mat<2, 2, uint32_t>>,
151 ArrayView<glm::mat<2, 2, int64_t>>,
152 ArrayView<glm::mat<2, 2, uint64_t>>,
153 ArrayView<glm::mat<2, 2, float>>,
154 ArrayView<glm::mat<2, 2, double>>,
155 ArrayView<glm::mat<3, 3, int8_t>>,
156 ArrayView<glm::mat<3, 3, uint8_t>>,
157 ArrayView<glm::mat<3, 3, int16_t>>,
158 ArrayView<glm::mat<3, 3, uint16_t>>,
159 ArrayView<glm::mat<3, 3, int32_t>>,
160 ArrayView<glm::mat<3, 3, uint32_t>>,
161 ArrayView<glm::mat<3, 3, int64_t>>,
162 ArrayView<glm::mat<3, 3, uint64_t>>,
163 ArrayView<glm::mat<3, 3, float>>,
164 ArrayView<glm::mat<3, 3, double>>,
165 ArrayView<glm::mat<4, 4, int8_t>>,
166 ArrayView<glm::mat<4, 4, uint8_t>>,
167 ArrayView<glm::mat<4, 4, int16_t>>,
168 ArrayView<glm::mat<4, 4, uint16_t>>,
169 ArrayView<glm::mat<4, 4, int32_t>>,
170 ArrayView<glm::mat<4, 4, uint32_t>>,
171 ArrayView<glm::mat<4, 4, int64_t>>,
172 ArrayView<glm::mat<4, 4, uint64_t>>,
173 ArrayView<glm::mat<4, 4, float>>,
174 ArrayView<glm::mat<4, 4, double>>>;
182 : _value(swl::monostate{}),
185 _pEnumDefinition() {}
194 template <
typename T>
197 const TSharedPtr<FCesiumMetadataEnum>& pEnumDefinition)
199 _valueType(TypeToMetadataValueType<T>(pEnumDefinition)),
201 _pEnumDefinition(pEnumDefinition) {}
208 template <
typename T>
214 template <
typename ArrayType>
217 const TSharedPtr<FCesiumMetadataEnum>& pEnumDefinition =
nullptr)
219 CesiumGltf::PropertyArrayCopy<ArrayType>(Copy),
222 template <
typename ArrayType>
225 const TSharedPtr<FCesiumMetadataEnum>& pEnumDefinition =
nullptr)
228 TypeToMetadataValueType<
CesiumGltf::PropertyArrayView<ArrayType>>(
231 _pEnumDefinition(pEnumDefinition) {
232 this->_value = std::move(Copy).toViewAndExternalBuffer(this->_storage);
242 template <
typename T>
244 const std::optional<T>& MaybeValue,
245 const TSharedPtr<FCesiumMetadataEnum>& pEnumDefinition =
nullptr)
246 : _value(), _valueType(), _storage(), _pEnumDefinition(pEnumDefinition) {
252 this->_value = std::move(temp._value);
253 this->_valueType = std::move(temp._valueType);
254 this->_storage = std::move(temp._storage);
265 std::vector<std::byte> _storage;
266 TSharedPtr<FCesiumMetadataEnum> _pEnumDefinition;