14#include "AttributeCurve.generated.h"
16namespace UE {
namespace Anim {
class IAttributeBlendOperator;
struct Attributes; } }
34 const AttributeType& GetValue()
const
36 return Value.GetRef<AttributeType>();
39 template<
typename AttributeType>
42 return Value.GetPtr<AttributeType>();
89 template<
typename AttributeType>
107 template<
typename AttributeType>
118 template<
typename AttributeType>
147 template<
typename AttributeType>
152 OutKeys.Add(Key.Value.GetPtr<AttributeType>());
174 UPROPERTY(EditAnywhere, Category =
"Custom Attributes")
202 WithSerializer =
true,
#define check(expr)
Definition AssertionMacros.h:314
UE::Anim::TWrappedAttribute< FDefaultAllocator > FWrappedAttribute
Definition AttributeCurve.h:19
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
Definition Archive.h:1208
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition AnimSequence.h:203
Definition AnimSequence.h:44
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition AttributeCurve.h:61
ENGINE_API FKeyHandle FindKeyBeforeOrAt(float KeyTime) const
Definition AttributeCurve.cpp:258
FKeyHandle AddTypedKey(float InTime, const AttributeType &InValue, FKeyHandle InKeyHandle=FKeyHandle())
Definition AttributeCurve.h:108
const UScriptStruct * GetScriptStruct() const
Definition AttributeCurve.h:83
FAttributeCurve()
Definition AttributeCurve.h:64
virtual ~FAttributeCurve()
Definition AttributeCurve.h:70
virtual int32 GetNumKeys() const override final
Definition AttributeCurve.h:75
AttributeType Evaluate(float Time) const
Definition AttributeCurve.h:90
ENGINE_API FKeyHandle UpdateOrAddKey(float InTime, const void *InValue, float KeyTimeTolerance=UE_KINDA_SMALL_NUMBER)
Definition AttributeCurve.cpp:194
ENGINE_API FKeyHandle AddKey(float InTime, const void *InValue, FKeyHandle InKeyHandle=FKeyHandle())
Definition AttributeCurve.cpp:170
ENGINE_API void SetKeys(TArrayView< const float > InTimes, TArrayView< const void * > InValues)
Definition AttributeCurve.cpp:385
ENGINE_API TArray< FAttributeKey > GetCopyOfKeys() const
Definition AttributeCurve.cpp:543
TObjectPtr< UScriptStruct > ScriptStruct
Definition AttributeCurve.h:183
ENGINE_API FAttributeKey & GetKey(FKeyHandle KeyHandle)
Definition AttributeCurve.cpp:218
virtual FAttributeCurve * Duplicate() const final
Definition AttributeCurve.h:76
ENGINE_API void SetScriptStruct(UScriptStruct *InScriptStruct)
Definition AttributeCurve.cpp:20
ENGINE_API void DeleteKey(FKeyHandle KeyHandle)
Definition AttributeCurve.cpp:185
FKeyHandle UpdateOrAddTypedKey(float InTime, const AttributeType &InValue, float KeyTimeTolerance=UE_KINDA_SMALL_NUMBER)
Definition AttributeCurve.h:119
ENGINE_API FKeyHandle FindKey(float KeyTime, float KeyTimeTolerance=UE_KINDA_SMALL_NUMBER) const
Definition AttributeCurve.cpp:230
FAttributeCurve(UScriptStruct *InScriptStruct)
Definition AttributeCurve.h:65
const UE::Anim::IAttributeBlendOperator * Operator
Definition AttributeCurve.h:190
ENGINE_API void ReadjustTimeRange(float NewMinTimeRange, float NewMaxTimeRange, bool bInsert, float OldStartTime, float OldEndTime)
Definition AttributeCurve.cpp:402
ENGINE_API bool CanEvaluate() const
Definition AttributeCurve.cpp:33
TArray< FAttributeKey > Keys
Definition AttributeCurve.h:175
bool bShouldInterpolate
Definition AttributeCurve.h:187
void GetTypedKeys(TArray< const AttributeType * > &OutKeys) const
Definition AttributeCurve.h:148
ENGINE_API TArray< FAttributeKey >::TConstIterator GetKeyIterator() const
Definition AttributeCurve.cpp:165
friend struct UE::Anim::Attributes
Definition AttributeCurve.h:193
FSoftObjectPath ScriptStructPath
Definition AttributeCurve.h:179
ENGINE_API const TArray< FAttributeKey > & GetConstRefOfKeys() const
Definition AttributeCurve.cpp:548
ENGINE_API bool HasAnyData() const
Definition AttributeCurve.cpp:160
ENGINE_API void EvaluateToPtr(const UScriptStruct *InScriptStruct, float Time, uint8 *InOutDataPtr) const
Definition AttributeCurve.cpp:64
FKeyHandle UpdateOrAddTypedKey(float InTime, const void *InValue, const UScriptStruct *ValueType, float KeyTimeTolerance=UE_KINDA_SMALL_NUMBER)
Definition AttributeCurve.h:126
virtual ENGINE_API void SetKeyTime(FKeyHandle KeyHandle, float NewTime) override final
Definition AttributeCurve.cpp:38
ENGINE_API void RemoveRedundantKeys()
Definition AttributeCurve.cpp:300
Definition AttributeCurve.h:23
FAttributeKey(float InTime=0.f)
Definition AttributeCurve.h:27
const AttributeType * GetValuePtr() const
Definition AttributeCurve.h:40
FWrappedAttribute Value
Definition AttributeCurve.h:54
friend FArchive & operator<<(FArchive &Ar, FAttributeKey &P)
Definition AttributeCurve.h:46
Definition IndexedCurve.h:18
virtual void virtual SetKeyTime(FKeyHandle KeyHandle, float NewTime) PURE_VIRTUAL(FIndexedCurve float GetKeyTime(FKeyHandle KeyHandle) const PURE_VIRTUAL(FIndexedCurve
Definition IndexedCurve.h:47
Definition KeyHandle.h:15
Definition SoftObjectPath.h:56
Definition ObjectPtr.h:488
Definition StructOpsTypeTraits.h:11
Definition StructOpsTypeTraits.h:46
Definition WrappedAttribute.h:16