7#include "Containers/Map.h"
17struct FSourcePropertyValue;
40 template<
typename ValueType>
92static_assert(
sizeof(FVolatilePropertyStep) <= 16,
"Try to fit FVolatilePropertyStep inside 16 bytes");
120 return ResolvePropertySteps(
true);
123 template<
typename ValueType>
126 return (ValueType*)ResolvePropertySteps(
false);
154 template <
typename ValueType>
219 template <
typename ValueType>
236 template <
typename ValueType>
264 template <
typename ValueType>
306 template <
typename ValueType>
338 struct FResolvedPropertyAndFunction
347 template<
typename ValueType>
348 ValueType* GetPropertyAddress()
const
350 if (
const FCachedProperty* CachedProperty = ResolvedProperty.
TryGet<FCachedProperty>())
352 return CachedProperty->GetPropertyAddress<ValueType>();
364 FResolvedPropertyAndFunction()
366 , SetterFunction( nullptr )
372 template <
typename ValueType>
436 if (
Property->IsInContainer(ParmsSize))
438 Property->InitializeValue_InContainer(Params);
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define MAX_uint16
Definition NumericLimits.h:20
@ CPF_Parm
Function/When call parameter.
Definition ObjectMacros.h:426
@ CPF_ReturnParm
Return value.
Definition ObjectMacros.h:429
@ RF_FinishDestroyed
FinishDestroy has been called on the object.
Definition ObjectMacros.h:579
@ RF_BeginDestroyed
BeginDestroy has been called on the object.
Definition ObjectMacros.h:578
float Val(const FString &Value)
Definition UnrealMath.cpp:3163
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTempIfPossible(T &&Obj) noexcept
Definition UnrealTemplate.h:538
Definition UnrealType.h:3702
Definition NameTypes.h:617
Definition UnrealType.h:174
virtual void CallSetter(void *Container, const void *InValue) const
Definition UnrealType.h:367
Definition UnrealType.h:4175
Definition TrackInstancePropertyBindings.h:143
const FString & GetPropertyPath() const
Definition TrackInstancePropertyBindings.h:276
TOptional< ValueType > GetOptionalValue(const UObject &Object)
Definition TrackInstancePropertyBindings.h:237
static MOVIESCENE_API TOptional< UE::MovieScene::FSourcePropertyValue > StaticValue(const UObject *Object, FStringView InPropertyPath)
Definition TrackInstancePropertyBindings.cpp:470
const FName & GetPropertyName() const
Definition TrackInstancePropertyBindings.h:282
void CallFunction(UObject &InRuntimeObject, typename TCallTraits< ValueType >::ParamType PropertyValue)
Definition TrackInstancePropertyBindings.h:155
MOVIESCENE_API void CallFunctionForEnum(UObject &InRuntimeObject, int64 PropertyValue)
Definition TrackInstancePropertyBindings.cpp:580
static TOptional< ValueType > StaticValue(const UObject *Object, FStringView InPropertyPath)
Definition TrackInstancePropertyBindings.h:307
MOVIESCENE_API void CacheBinding(const UObject &InRuntimeObject)
Definition TrackInstancePropertyBindings.cpp:608
static MOVIESCENE_API TOptional< TPair< const FProperty *, UE::MovieScene::FSourcePropertyValue > > StaticPropertyAndValue(const UObject *Object, FStringView InPropertyPath)
Definition TrackInstancePropertyBindings.cpp:432
static MOVIESCENE_API FProperty * FindProperty(const UObject *Object, FStringView InPropertyPath)
Definition TrackInstancePropertyBindings.cpp:518
friend class FTrackInstancePropertyBindingsTests
Definition TrackInstancePropertyBindings.h:400
MOVIESCENE_API bool HasValidBinding(const UObject &Object)
Definition TrackInstancePropertyBindings.cpp:641
MOVIESCENE_API const UStruct * GetPropertyStruct(const UObject &Object)
Definition TrackInstancePropertyBindings.cpp:647
void SetCurrentValue(UObject &Object, typename TCallTraits< ValueType >::ParamType InValue)
Definition TrackInstancePropertyBindings.h:265
ValueType GetCurrentValue(const UObject &Object)
Definition TrackInstancePropertyBindings.h:220
MOVIESCENE_API FProperty * GetProperty(const UObject &Object)
Definition TrackInstancePropertyBindings.cpp:635
MOVIESCENE_API int64 GetCurrentValueForEnum(const UObject &Object)
Definition TrackInstancePropertyBindings.cpp:663
Definition PropertyPath.Build.cs:6
U * TryGet() UE_LIFETIMEBOUND
Definition TVariant.h:174
uint8 NumParms
Definition Class.h:2487
uint16 ParmsSize
Definition Class.h:2489
uint16 ReturnValueOffset
Definition Class.h:2491
UE_FORCEINLINE_HINT FString GetName() const
Definition UObjectBaseUtility.h:439
bool HasAnyFlags(EObjectFlags FlagsToCheck) const
Definition UObjectBaseUtility.h:93
FProperty * PropertyLink
Definition Class.h:530
Definition ConstraintsManager.h:14
TCallTraitsParamTypeHelper< T, PassByValue >::ParamType ParamType
Definition UnrealTypeTraits.h:275
UE::Core::Private::Decay::TDecayNonReference< typenameTRemoveReference< T >::Type >::Type Type
Definition Decay.h:45
Definition Optional.h:131
Definition WeakFieldPtr.h:65
T * Get(bool bEvenIfPendingKill) const
Definition WeakFieldPtr.h:214
Definition WeakObjectPtrTemplates.h:25
Definition TrackInstancePropertyBindings.h:23
FProperty * GetValidProperty() const
Definition TrackInstancePropertyBindings.h:30
TWeakFieldPtr< FProperty > Property
Definition TrackInstancePropertyBindings.h:24
ValueType * GetPropertyAddress() const
Definition TrackInstancePropertyBindings.h:41
void * ContainerAddress
Definition TrackInstancePropertyBindings.h:26
int32 ArrayIndex
Definition TrackInstancePropertyBindings.h:28
Definition TrackInstancePropertyBindings.h:64
void SetContainerOffset(uint32 InOffset)
Definition TrackInstancePropertyBindings.h:86
void SetCheckStruct(TWeakObjectPtr< UScriptStruct > InScriptStruct)
Definition TrackInstancePropertyBindings.h:88
void SetCheckArrayIndex(int32 InArrayIndex)
Definition TrackInstancePropertyBindings.h:87
void * ResolveAddress(void *ContainerAddress, bool &bNeedsRecaching) const
Definition TrackInstancePropertyBindings.cpp:333
Definition TrackInstancePropertyBindings.h:100
FProperty * GetValidProperty() const
Definition TrackInstancePropertyBindings.h:108
const UObject * RootContainer
Definition TrackInstancePropertyBindings.h:101
ValueType * GetPropertyAddress() const
Definition TrackInstancePropertyBindings.h:124
void * GetLeafContainerAddress() const
Definition TrackInstancePropertyBindings.h:118
TWeakFieldPtr< FProperty > LeafProperty
Definition TrackInstancePropertyBindings.h:105
FString PropertyPath
Definition TrackInstancePropertyBindings.h:102
TArray< FVolatilePropertyStep > PropertySteps
Definition TrackInstancePropertyBindings.h:104
int32 LeafContainerStepIndex
Definition TrackInstancePropertyBindings.h:106