UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieScenePropertyTraits.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
14
15
16#include "UObject/Class.h"
17#include "UObject/UnrealType.h"
20
22
23
24namespace UE
25{
26namespace MovieScene
27{
28
29template<typename PropertyTraits, typename ...CompositeTypes>
30struct TVariantPropertyComponentHandler;
31
32
33template<typename T>
35{
36 static_assert(!std::is_same_v<T, T>, "Please implement this function for the necessary types to support unpacking the property type into its constituent channels");
37}
38
40{
42
44 {
45 }
46
48 {
49 return nullptr;
50 }
52 {
53 return false;
54 }
55};
56
57
58template<typename ...UObjectPropertyTypes>
60{
61
62};
63template<typename ...CompositeTypes>
65{
66
67};
68
69
73template<typename UObjectPropertyType, typename InMemoryType, bool bInIsComposite = true>
75{
76 static constexpr bool bIsComposite = bInIsComposite;
77 static constexpr bool bNeedsConversion = !std::is_same_v<InMemoryType, UObjectPropertyType>;
78
82
98
106 FORCEINLINE static void GetObjectPropertyValue(const UObject* InObject, uint16 PropertyOffset, StorageType& OutValue)
107 {
108 const UObjectPropertyType* PropertyAddress = reinterpret_cast<const UObjectPropertyType*>( reinterpret_cast<const uint8*>(InObject) + PropertyOffset );
109
110 if constexpr (bNeedsConversion)
111 {
112 ConvertOperationalProperty(*PropertyAddress, OutValue);
113 }
114 else
115 {
116 OutValue = *PropertyAddress;
117 }
118 }
120 {
121 if constexpr (bNeedsConversion)
122 {
123 UObjectPropertyType Value = PropertyBindings->GetCurrentValue<UObjectPropertyType>(*InObject);
125 }
126 else
127 {
128 OutValue = PropertyBindings->GetCurrentValue<UObjectPropertyType>(*InObject);
129 }
130 }
131
133 {
134 TOptional<UObjectPropertyType> Property = FTrackInstancePropertyBindings::StaticValue<UObjectPropertyType>(InObject, *PropertyPath.ToString());
135 if (Property)
136 {
137 if constexpr (bNeedsConversion)
138 {
140 }
141 else
142 {
143 OutValue = Property.GetValue();
144 }
145 }
146 }
147
155 {
156 UObjectPropertyType* PropertyAddress = reinterpret_cast<UObjectPropertyType*>( reinterpret_cast<uint8*>(InObject) + PropertyOffset );
157 if constexpr (bNeedsConversion)
158 {
159 ConvertOperationalProperty(InValue, *PropertyAddress);
160 }
161 else
162 {
163 *PropertyAddress = InValue;
164 }
165 }
167 {
168 if constexpr (bNeedsConversion)
169 {
170 UObjectPropertyType NewValue{};
172
173 PropertyBindings->CallFunction<UObjectPropertyType>(*InObject, NewValue);
174 }
175 else
176 {
177 PropertyBindings->CallFunction<UObjectPropertyType>(*InObject, InValue);
178 }
179 }
180
181 template<typename ...T>
186};
187
188template<typename StorageType>
207
208template<typename UObjectPropertyType, typename StorageType>
210{
212
214
231
237
243
244 static void CastToOperationalImpl(const void* In, StorageType& OutValue)
245 {
246 const UObjectPropertyType* PropertyAddress = static_cast<const UObjectPropertyType*>(In);
247 ConvertOperationalProperty(*PropertyAddress, OutValue);
248 }
250 {
251 UObjectPropertyType* PropertyAddress = static_cast<UObjectPropertyType*>(Out);
252 ConvertOperationalProperty(InValue, *PropertyAddress);
253 }
254
255 static void RetrieveSlowPropertyImpl(const UObject* InObject, FTrackInstancePropertyBindings* PropertyBindings, StorageType& OutValue)
256 {
257 UObjectPropertyType Value = PropertyBindings->GetCurrentValue<UObjectPropertyType>(*InObject);
259 }
261 {
262 UObjectPropertyType NewValue{};
264
265 PropertyBindings->CallFunction<UObjectPropertyType>(*InObject, NewValue);
266 }
267};
268
269template<typename InMemoryType, typename ...UObjectPropertyTypes>
272{
273 static constexpr int32 CompileTimeNum = sizeof...(UObjectPropertyTypes);
274 static constexpr bool bIsComposite = true;
275
278
281
283
285 {
287 return ComputeVariantIndex(InProperty, Unused);
288 }
289
291 {
292 using FuncDef = bool (*)(const FProperty& InProperty);
294
295 for (int32 Index = 0; Index < CompileTimeNum; ++Index)
296 {
297 if (Funcs[Index](Property))
298 {
299 OutTypeIndex.Index = Index;
300 return true;
301 }
302 }
303 return false;
304 }
305
318
326
331
332 template<typename ...Composites>
334 {
335 return TVariantPropertyComponentHandler<TraitsType, Composites...>();
336 }
337
338 static bool NeedsMetaData()
339 {
340 return sizeof...(UObjectPropertyTypes) > 1;
341 }
342
349
351 {
352 using FuncDef = void (*)(const UObject*, uint16, StorageType&);
354
355 if (VariantTypeIndex.Index >= 0 && VariantTypeIndex.Index < CompileTimeNum)
356 {
357 Funcs[VariantTypeIndex.Index](InObject, PropertyOffset, OutValue);
358 }
359 }
361 {
364
365 if (VariantTypeIndex.Index >= 0 && VariantTypeIndex.Index < CompileTimeNum)
366 {
367 Funcs[VariantTypeIndex.Index](InObject, PropertyBindings, OutValue);
368 }
369 }
370
377 {
380
381 if (VariantTypeIndex.Index >= 0 && VariantTypeIndex.Index < CompileTimeNum)
382 {
383 Funcs[VariantTypeIndex.Index](InObject, PropertyOffset, InValue);
384 }
385 }
396
397 template<typename ...T>
402};
403
404
405template<typename InMemoryType, typename ...UObjectPropertyTypes>
407{
412
415
416 static constexpr bool bIsComposite = true;
417
419
420 bool NeedsMetaData() const
421 {
422 return sizeof...(UObjectPropertyTypes) + DynamicTraits.Num() > 1;
423 }
424
429
430 template<typename ...Composites>
432 {
433 return TVariantPropertyComponentHandler<TraitsType, Composites...>();
434 }
435
449 {
451 {
453 if (Variant && Variant->InitializeNewTrack)
454 {
455 (*Variant->InitializeNewTrack)(InTrack, InProperty);
456 return true;
457 }
458 }
459 return false;
460 }
461
463 {
465 {
466 return true;
467 }
468
470 {
472 {
473 if (StructProperty->Struct == DynamicTraits[DynamicIndex].Struct)
474 {
476 return true;
477 }
478 }
479 }
480 return false;
481 }
483 {
485 return ComputeVariantIndex(InProperty, Unused);
486 }
515
520
522 {
524 {
526 if (DynamicTraits.IsValidIndex(DynamicIndex))
527 {
528 const void* PropertyAddress = reinterpret_cast<const uint8*>(InObject) + PropertyOffset;
529 DynamicTraits[DynamicIndex].CastToOperational(PropertyAddress, OutValue);
530 }
531 }
532 else
533 {
535 }
536 }
538 {
540 {
542 if (DynamicTraits.IsValidIndex(DynamicIndex))
543 {
544 DynamicTraits[DynamicIndex].RetrieveSlowProperty(InObject, PropertyBindings, OutValue);
545 }
546 }
547 else
548 {
550 }
551 }
552
559
561 {
563 {
565 if (DynamicTraits.IsValidIndex(DynamicIndex))
566 {
567 void* PropertyAddress = reinterpret_cast<uint8*>(InObject) + PropertyOffset;
568 DynamicTraits[DynamicIndex].CastToFinal(InValue, PropertyAddress);
569 }
570 }
571 else
572 {
574 }
575 }
577 {
579 {
581 if (DynamicTraits.IsValidIndex(DynamicIndex))
582 {
583 DynamicTraits[DynamicIndex].ApplySlowProperty(InObject, PropertyBindings, InValue);
584 }
585 }
586 else
587 {
589 }
590 }
591
597
598 template<typename ...T>
603};
604
605
606
610template<typename RuntimeType, typename ...MetaDataTypes>
612{
613 using StorageType = RuntimeType;
615 using MetaDataType = TPropertyMetaData<MetaDataTypes...>;
616
617
621
623 {}
624
627
629 {}
630
634
637
640};
641
642
643
644template<typename UObjectPropertyType, bool bInIsComposite = true>
646
647template<typename UObjectPropertyType, typename InMemoryType, bool bInIsComposite = true>
648struct UE_DEPRECATED(5.4, "Please use TPropertyTraits directly.") TIndirectPropertyTraits : TPropertyTraits<UObjectPropertyType, InMemoryType, bInIsComposite>
649{};
650
651
652} // namespace MovieScene
653} // namespace UE
654
655
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define FORCEINLINE
Definition AndroidPlatform.h:140
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
Definition NameTypes.h:617
Definition UnrealType.h:174
Definition UnrealType.h:6306
Definition TrackInstancePropertyBindings.h:143
void CallFunction(UObject &InRuntimeObject, typename TCallTraits< ValueType >::ParamType PropertyValue)
Definition TrackInstancePropertyBindings.h:155
ValueType GetCurrentValue(const UObject &Object)
Definition TrackInstancePropertyBindings.h:220
Definition MovieScene.Build.cs:6
Definition PropertyPath.Build.cs:6
Definition Array.h:670
Definition SubclassOf.h:30
Definition MovieSceneTrack.h:206
Definition Object.h:95
Definition Class.h:1720
UE_REWRITE constexpr auto FindBy(RangeType &&Range, const ValueType &Value, ProjectionType Proj) -> decltype(AlgoImpl::FindBy(Forward< RangeType >(Range), Value, MoveTemp(Proj)))
Definition Find.h:68
void ConvertOperationalProperty(const InType &In, OutType &Out)
Definition MovieSceneOperationalTypeConversions.h:12
void UnpackChannelsFromOperational(T &&, const FProperty &Property, FUnpackedChannelValues &)
Definition MovieScenePropertyTraits.h:34
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
static UScriptStruct * Get()
Definition Class.h:5275
TCallTraitsParamTypeHelper< T, PassByValue >::ParamType ParamType
Definition UnrealTypeTraits.h:275
Definition Optional.h:131
Definition MovieScenePropertySystemTypes.h:136
Definition MovieSceneIntermediatePropertyValue.h:312
static FIntermediatePropertyValue FromValue(T &&In)
Definition MovieSceneIntermediatePropertyValue.h:333
Definition MovieSceneIntermediatePropertyValue.h:131
Definition MovieSceneUnpackedChannelValues.h:159
Definition MovieSceneVariantPropertyTypeIndex.h:11
Definition MovieScenePropertyTraits.h:40
virtual ~IPropertyTraits()
Definition MovieScenePropertyTraits.h:43
virtual bool InitializeTrackFromProperty(UMovieSceneTrack *InTrack, const FProperty *InProperty) const
Definition MovieScenePropertyTraits.h:51
virtual TSubclassOf< UMovieSceneTrack > GetTrackClass(const FProperty *InProperty) const
Definition MovieScenePropertyTraits.h:47
Definition MovieScenePropertyTraits.h:65
Definition MovieScenePropertySystemTypes.h:152
Definition MovieScenePropertyTraits.h:407
bool NeedsMetaData() const
Definition MovieScenePropertyTraits.h:420
void GetObjectPropertyValue(const UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, uint16 PropertyOffset, StorageType &OutValue) const
Definition MovieScenePropertyTraits.h:521
void SetObjectPropertyValue(UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, uint16 PropertyOffset, StorageTypeParam InValue) const
Definition MovieScenePropertyTraits.h:560
TArray< TDynamicVariantTraitsBase< StorageType > > DynamicTraits
Definition MovieScenePropertyTraits.h:418
static void SetObjectPropertyValue(UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, const FCustomPropertyAccessor &BaseCustomAccessor, StorageTypeParam InValue)
Definition MovieScenePropertyTraits.h:592
TDynamicVariantPropertyTraits< InMemoryType, UObjectPropertyTypes... > TraitsType
Definition MovieScenePropertyTraits.h:409
virtual TSubclassOf< UMovieSceneTrack > GetTrackClass(const FProperty *InProperty) const override
Definition MovieScenePropertyTraits.h:436
void AddDynamicType(const TDynamicVariantTraitsBase< StorageType > &Variant)
Definition MovieScenePropertyTraits.h:516
static void GetObjectPropertyValue(const UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, const FCustomPropertyAccessor &BaseCustomAccessor, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:553
typename TCallTraits< StorageType >::ParamType StorageTypeParam
Definition MovieScenePropertyTraits.h:411
static TVariantPropertyComponentHandler< TraitsType, Composites... > MakeHandler()
Definition MovieScenePropertyTraits.h:431
InMemoryType StorageType
Definition MovieScenePropertyTraits.h:410
bool ComputeVariantIndex(const FProperty &InProperty, FVariantPropertyTypeIndex &OutTypeIndex) const
Definition MovieScenePropertyTraits.h:462
static constexpr bool bIsComposite
Definition MovieScenePropertyTraits.h:416
void GetObjectPropertyValue(const UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, FTrackInstancePropertyBindings *PropertyBindings, StorageType &OutValue) const
Definition MovieScenePropertyTraits.h:537
void SetObjectPropertyValue(UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, FTrackInstancePropertyBindings *PropertyBindings, StorageTypeParam InValue) const
Definition MovieScenePropertyTraits.h:576
FIntermediatePropertyValue CoercePropertyValue(const FProperty &InProperty, const FSourcePropertyValue &InPropertyValue) const
Definition MovieScenePropertyTraits.h:487
bool SupportsProperty(const FProperty &InProperty) const
Definition MovieScenePropertyTraits.h:482
static StorageType CombineComposites(FVariantPropertyTypeIndex VariantTypeIndex, T &&... InComposites)
Definition MovieScenePropertyTraits.h:599
virtual bool InitializeTrackFromProperty(UMovieSceneTrack *InTrack, const FProperty *InProperty) const override
Definition MovieScenePropertyTraits.h:448
static void UnpackChannels(const InMemoryType &Value, const FProperty &Property, FUnpackedChannelValues &OutUnpackedValues)
Definition MovieScenePropertyTraits.h:425
Definition MovieScenePropertyTraits.h:190
ApplySlowPropertyPtr ApplySlowProperty
Definition MovieScenePropertyTraits.h:204
void(*)(UObject *, FTrackInstancePropertyBindings *, StorageTypeParam) ApplySlowPropertyPtr
Definition MovieScenePropertyTraits.h:196
void(*)(StorageTypeParam, void *) CastToFinalPtr
Definition MovieScenePropertyTraits.h:194
void(*)(const UObject *, FTrackInstancePropertyBindings *, StorageType &) RetrieveSlowPropertyPtr
Definition MovieScenePropertyTraits.h:195
RetrieveSlowPropertyPtr RetrieveSlowProperty
Definition MovieScenePropertyTraits.h:203
InitializeNewTrackPtr InitializeNewTrack
Definition MovieScenePropertyTraits.h:205
CastToFinalPtr CastToFinal
Definition MovieScenePropertyTraits.h:202
typename TCallTraits< StorageType >::ParamType StorageTypeParam
Definition MovieScenePropertyTraits.h:191
void(*)(const void *, StorageType &) CastToOperationalPtr
Definition MovieScenePropertyTraits.h:193
UScriptStruct * Struct
Definition MovieScenePropertyTraits.h:199
void(*)(UMovieSceneTrack *, const FProperty *) InitializeNewTrackPtr
Definition MovieScenePropertyTraits.h:197
CastToOperationalPtr CastToOperational
Definition MovieScenePropertyTraits.h:201
TSubclassOf< UMovieSceneTrack > TrackClass
Definition MovieScenePropertyTraits.h:200
Definition MovieScenePropertyTraits.h:210
TDynamicVariantTraits< UObjectPropertyType, StorageType > & SetTrackClass(TSubclassOf< UMovieSceneTrack > InTrackClass)
Definition MovieScenePropertyTraits.h:232
typename TCallTraits< StorageType >::ParamType StorageTypeParam
Definition MovieScenePropertyTraits.h:211
static void ApplySlowPropertyImpl(UObject *InObject, FTrackInstancePropertyBindings *PropertyBindings, StorageTypeParam InValue)
Definition MovieScenePropertyTraits.h:260
static void CastToFinalImpl(StorageTypeParam InValue, void *Out)
Definition MovieScenePropertyTraits.h:249
TDynamicVariantTraits< UObjectPropertyType, StorageType > & SetTrackInitializer(InitializeNewTrackPtr InFunc)
Definition MovieScenePropertyTraits.h:238
static void CastToOperationalImpl(const void *In, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:244
void(*)(UMovieSceneTrack *, const FProperty *) InitializeNewTrackPtr
Definition MovieScenePropertyTraits.h:213
TDynamicVariantTraits(UScriptStruct *InStruct)
Definition MovieScenePropertyTraits.h:223
TDynamicVariantTraits()
Definition MovieScenePropertyTraits.h:215
static void RetrieveSlowPropertyImpl(const UObject *InObject, FTrackInstancePropertyBindings *PropertyBindings, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:255
Definition MovieScenePropertySupport.h:22
Definition MovieScenePropertyMetaData.h:19
Definition MovieScenePropertyTraits.h:75
typename TCallTraits< StorageType >::ParamType StorageTypeParam
Definition MovieScenePropertyTraits.h:81
static constexpr bool bIsComposite
Definition MovieScenePropertyTraits.h:76
static FORCEINLINE bool SupportsProperty(const FProperty &InProperty)
Definition MovieScenePropertyTraits.h:84
static FORCEINLINE void SetObjectPropertyValue(UObject *InObject, FTrackInstancePropertyBindings *PropertyBindings, StorageTypeParam InValue)
Definition MovieScenePropertyTraits.h:166
static FORCEINLINE void GetObjectPropertyValue(const UObject *InObject, const FName &PropertyPath, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:132
static FORCEINLINE void SetObjectPropertyValue(UObject *InObject, uint16 PropertyOffset, StorageTypeParam InValue)
Definition MovieScenePropertyTraits.h:154
static FORCEINLINE void SetObjectPropertyValue(UObject *InObject, const FCustomPropertyAccessor &BaseCustomAccessor, StorageTypeParam InValue)
Definition MovieScenePropertyTraits.h:149
static FORCEINLINE void GetObjectPropertyValue(const UObject *InObject, const FCustomPropertyAccessor &BaseCustomAccessor, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:100
static FORCEINLINE FIntermediatePropertyValue CoercePropertyValue(const FProperty &InProperty, const FSourcePropertyValue &InPropertyValue)
Definition MovieScenePropertyTraits.h:88
static constexpr bool bNeedsConversion
Definition MovieScenePropertyTraits.h:77
InMemoryType StorageType
Definition MovieScenePropertyTraits.h:80
static FORCEINLINE void UnpackChannels(const InMemoryType &Value, const FProperty &Property, FUnpackedChannelValues &OutUnpackedValues)
Definition MovieScenePropertyTraits.h:94
static FORCEINLINE StorageType CombineComposites(T &&... InComposites)
Definition MovieScenePropertyTraits.h:182
static FORCEINLINE void GetObjectPropertyValue(const UObject *InObject, FTrackInstancePropertyBindings *PropertyBindings, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:119
static FORCEINLINE void GetObjectPropertyValue(const UObject *InObject, uint16 PropertyOffset, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:106
Definition MovieScenePropertyTraits.h:612
RuntimeType StorageType
Definition MovieScenePropertyTraits.h:613
static void SetObjectPropertyValue(UObject *InObject, const FCustomPropertyAccessor &BaseCustomAccessor, typename TCallTraits< MetaDataTypes >::ParamType... MetaData, StorageTypeParam InValue)
Definition MovieScenePropertyTraits.h:632
static void GetObjectPropertyValue(const UObject *InObject, uint16 PropertyOffset, typename TCallTraits< MetaDataTypes >::ParamType... MetaData, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:622
static void SetObjectPropertyValue(UObject *InObject, uint16 PropertyOffset, typename TCallTraits< MetaDataTypes >::ParamType... MetaData, StorageTypeParam InValue)
Definition MovieScenePropertyTraits.h:635
static void GetObjectPropertyValue(const UObject *InObject, const FCustomPropertyAccessor &BaseCustomAccessor, typename TCallTraits< MetaDataTypes >::ParamType... MetaData, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:619
static void GetObjectPropertyValue(const UObject *InObject, FTrackInstancePropertyBindings *PropertyBindings, typename TCallTraits< MetaDataTypes >::ParamType... MetaData, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:625
static void GetObjectPropertyValue(const UObject *InObject, const FName &PropertyPath, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:628
static void SetObjectPropertyValue(UObject *InObject, FTrackInstancePropertyBindings *PropertyBindings, typename TCallTraits< MetaDataTypes >::ParamType... MetaData, StorageTypeParam InValue)
Definition MovieScenePropertyTraits.h:638
typename TCallTraits< StorageType >::ParamType StorageTypeParam
Definition MovieScenePropertyTraits.h:614
Definition MovieScenePropertyTraits.h:60
Definition MovieSceneVariantPropertyComponentHandler.h:15
Definition MovieScenePropertyTraits.h:272
static bool NeedsMetaData()
Definition MovieScenePropertyTraits.h:338
static bool ComputeVariantIndex(const FProperty &Property, FVariantPropertyTypeIndex &OutTypeIndex)
Definition MovieScenePropertyTraits.h:290
static FIntermediatePropertyValue CoercePropertyValue(const FProperty &InProperty, const FSourcePropertyValue &InPropertyValue)
Definition MovieScenePropertyTraits.h:306
typename TCallTraits< StorageType >::ParamType StorageTypeParam
Definition MovieScenePropertyTraits.h:277
static void GetObjectPropertyValue(const UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, FTrackInstancePropertyBindings *PropertyBindings, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:360
static constexpr bool bIsComposite
Definition MovieScenePropertyTraits.h:274
static void SetObjectPropertyValue(UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, const FCustomPropertyAccessor &BaseCustomAccessor, StorageTypeParam InValue)
Definition MovieScenePropertyTraits.h:371
static void GetObjectPropertyValue(const UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, uint16 PropertyOffset, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:350
static void UnpackChannels(const InMemoryType &Value, const FProperty &Property, FUnpackedChannelValues &OutUnpackedValues)
Definition MovieScenePropertyTraits.h:327
static void SetObjectPropertyValue(UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, FTrackInstancePropertyBindings *PropertyBindings, StorageTypeParam InValue)
Definition MovieScenePropertyTraits.h:386
static bool SupportsProperty(const FProperty &InProperty)
Definition MovieScenePropertyTraits.h:284
static TVariantPropertyComponentHandler< TraitsType, Composites... > MakeHandler()
Definition MovieScenePropertyTraits.h:333
TVariantPropertyTraits< StorageType, UObjectPropertyTypes... > TraitsType
Definition MovieScenePropertyTraits.h:282
static StorageType CombineComposites(FVariantPropertyTypeIndex VariantTypeIndex, T &&... InComposites)
Definition MovieScenePropertyTraits.h:398
InMemoryType StorageType
Definition MovieScenePropertyTraits.h:276
static void SetObjectPropertyValue(UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, uint16 PropertyOffset, StorageTypeParam InValue)
Definition MovieScenePropertyTraits.h:376
static FIntermediatePropertyValue CoercePropertyValueChecked(const FProperty &InProperty, FVariantPropertyTypeIndex VariantIndex, const FSourcePropertyValue &InPropertyValue)
Definition MovieScenePropertyTraits.h:319
static void GetObjectPropertyValue(const UObject *InObject, FVariantPropertyTypeIndex VariantTypeIndex, const FCustomPropertyAccessor &BaseCustomAccessor, StorageType &OutValue)
Definition MovieScenePropertyTraits.h:343
static constexpr int32 CompileTimeNum
Definition MovieScenePropertyTraits.h:273