14#include "AnimCurveTypes.generated.h"
40UENUM(BlueprintType, meta=(Bitflags))
86 bool IsValidToEvaluate()
const {
return false; }
96#if WITH_EDITORONLY_DATA
120 int32 CurveTypeFlags;
126#if WITH_EDITORONLY_DATA
127 Color = MakeColor(CurveName);
135#if WITH_EDITORONLY_DATA
136 Color = MakeColor(CurveName);
140 UE_DEPRECATED(5.3,
"Please use the cosntructor that takes an FName.")
142 : CurveName(InName.DisplayName)
145#if WITH_EDITORONLY_DATA
146 Color = MakeColor(CurveName);
193#if WITH_EDITORONLY_DATA
223 UE_DEPRECATED(5.3,
"Please use the constructor that takes an FName.")
239 ENGINE_API void UpdateOrAddKey(
float NewKey,
float CurrentTime);
273 UE_DEPRECATED(5.3,
"Please use the constructor that takes an FName.")
291 bool DoesContainKey()
const {
return (FloatCurves[0].GetNumKeys() > 0 || FloatCurves[1].GetNumKeys() > 0 || FloatCurves[2].GetNumKeys() > 0);}
327 UE_DEPRECATED(5.3,
"Please use the constructor that takes an FName.")
367 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Curve Settings")
377 UE_DEPRECATED(5.3, "Please
just use CurveName.")
384struct UE_DEPRECATED(5.3,
"FCurveElement in the global namespace is no longer used.") FCurveElement
464 UE_DEPRECATED(5.3,
"Direct access to CurveWeights is no longer allowed as it is no longer used.")
492 template<
typename OtherAllocator,
typename OtherElementType>
504 UE_DEPRECATED(5.3,
"InitFrom can no longer be called with a LUT, please use another initialization method or just dont initialize the curve.")
507 Super::Elements.Reset();
509 Super::bSorted =
false;
513 template <
typename OtherAllocator,
typename OtherElementType>
520 Super::Elements.Reset();
521 Super::bSorted =
false;
526 UE_DEPRECATED(5.3,
"Please use InvalidateCurveWeight with a curve name")
534 const int32 ElementIndex = Super::IndexOf(InName);
537 Super::Elements.RemoveAt(ElementIndex);
541 UE_DEPRECATED(5.3,
"Please use Set with a curve name or consider using one of the bulk APIs (e.g. UE::Anim::FCurveUtils::BulkSet).")
585 UE_DEPRECATED(5.3,
"Please use Get with a curve name or consider using one of the bulk APIs (e.g. UE::Anim::FCurveUtils::BulkGet)")
622 UE_DEPRECATED(5.3,
"Please use Get with a curve name or consider using one of the bulk APIs (e.g. UE::Anim::FCurveUtils::BulkGet).")
671 Super::bSorted =
false;
677 Super::bSorted =
false;
687 UE_DEPRECATED(5.3,
"Element validity/enabled state is now handled via UE::Anim::FCurveFilter.")
693 UE_DEPRECATED(5.3,
"Element validity/enabled state is now handled via UE::Anim::FCurveFilter.")
703 template<
typename AllocatorA,
typename ElementTypeA,
typename AllocatorB,
typename ElementTypeB>
732 template<
typename OtherAllocator,
typename OtherElementType>
760 template<
typename AllocatorA,
typename ElementTypeA,
typename AllocatorB,
typename ElementTypeB>
789 template<
typename OtherAllocator,
typename OtherElementType>
813 template<
typename OtherAllocator,
typename OtherElementType>
828 template<
typename OtherAllocator,
typename OtherElementType>
846 template<
typename OtherAllocator,
typename OtherElementType>
869 template<
typename OtherAllocator,
typename OtherElementType>
893 template<
typename OtherAllocator,
typename OtherElementType>
912 template<
typename OtherAllocator,
typename OtherElementType>
930 template<
typename OtherAllocator,
typename OtherElementType>
950 template<
typename OtherAllocator,
typename OtherElementType>
972 UE_DEPRECATED(5.3,
"Please use Num(). Element validity/enabled state is now handled via UE::Anim::FCurveFilter.")
973 int32 NumValid()
const {
return Super::Elements.Num(); }
976 template <
typename OtherAllocator,
typename OtherElementType>
981 if constexpr(std::is_same<ElementType, OtherElementType>::value)
988 Super::Elements.Reset();
1035template<
typename AllocatorType>
1076#if WITH_EDITORONLY_DATA
1109 UE_DEPRECATED(5.3,
"Please use AddFloatCurveKey that takes a FName.")
1119 UE_DEPRECATED(5.3, "Please use GetCurveData that takes an FName.")
1122 UE_DEPRECATED(5.3,
"Please use GetCurveData that takes an FName.")
1137 UE_DEPRECATED(5.3,
"Please use AddCurveData that takes a FName.")
1145 UE_DEPRECATED(5.3,
"Please use DeleteCurveData that takes a FName.")
1158 UE_DEPRECATED(5.3,
"Please use DuplicateCurveData that takes FNames as curve parameters.")
1165 void PostSerializeFixup(
FArchive& Ar);
1176 FloatCurves.Empty();
1177#if WITH_EDITORONLY_DATA
1178 VectorCurves.
Empty();
1179 TransformCurves.Empty();
1187 FloatCurves.Reset();
1188#if WITH_EDITORONLY_DATA
1189 VectorCurves.
Reset();
1190 TransformCurves.Reset();
1202 template <
typename DataType>
1208 template <
typename DataType>
1215 template <
typename DataType>
1220 template <
typename DataType>
1226 template <
typename DataType>
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
ERawCurveTrackTypes
Definition AnimCurveTypes.h:1058
constexpr EAnimAssetCurveFlags AACF_DefaultCurve
Definition AnimCurveTypes.h:59
SmartName::UID_Type SkeletonAnimCurveUID
Definition AnimCurveTypes.h:16
EAnimCurveType
Definition AnimCurveTypes.h:29
EAnimAssetCurveFlags
Definition AnimCurveTypes.h:42
@ AACF_DriveAttribute_DEPRECATED
Definition AnimCurveTypes.h:47
@ AACF_NONE
Definition AnimCurveTypes.h:43
@ AACF_Editable
Definition AnimCurveTypes.h:49
@ AACF_DriveTrack
Definition AnimCurveTypes.h:55
@ AACF_Disabled
Definition AnimCurveTypes.h:57
@ AACF_Metadata
Definition AnimCurveTypes.h:53
@ AACF_DriveMorphTarget_DEPRECATED
Definition AnimCurveTypes.h:45
@ AACF_DriveMaterial_DEPRECATED
Definition AnimCurveTypes.h:51
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
constexpr bool EnumHasAllFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:28
#define ENUM_RANGE_BY_FIRST_AND_LAST(EnumType, First, Last)
Definition EnumRange.h:47
#define ENUM_RANGE_BY_COUNT(EnumType, Count)
Definition EnumRange.h:25
return true
Definition ExternalRpcRegistry.cpp:601
#define CURVE_PROFILE_CYCLE_COUNTER(Stat)
Definition NamedValueArray.h:17
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UMETA(...)
Definition ObjectMacros.h:747
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition Archive.h:1208
Definition NameTypes.h:617
void Reset(SizeType NewSize=0)
Definition Array.h:2246
void Empty(SizeType Slack=0)
Definition Array.h:2273
Definition BitArray.h:350
Definition UnrealString.h.inl:34
Definition MemStack.h:391
Definition ContainerAllocationPolicies.h:830
Definition AnimSequenceBase.h:37
Definition Skeleton.h:295
IAnalyticsPropertyStore::EStatusCode SetValue(TGetter &&GetterFn, TSetter &&SetterFn, const T &ProposedValue, TCompare &&ConditionFn)
Definition AnalyticsPropertyStore.cpp:34
FExpressionResult Evaluate(const CharType *InExpression, const TTokenDefinitions< CharType > &InTokenDefinitions, const FExpressionGrammar &InGrammar, const TIOperatorEvaluationEnvironment< CharType > &InEnvironment)
Definition ExpressionParser.cpp:728
Definition AnimationAsset.h:38
uint16 UID_Type
Definition AnimationAsset.h:39
Definition AnimationAsset.h:42
ENamedValueUnionFlags
Definition NamedValueArray.h:237
ECurveElementFlags
Definition AnimCurveElementFlags.h:13
Definition AdvancedWidgetsModule.cpp:13
FStringBuilderBase & operator<<(FStringBuilderBase &Builder, const FDerivedData &Data)
Definition DerivedData.cpp:255
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition AnimCurveTypes.h:93
FAnimCurveBase(FName InName, int32 InCurveTypeFlags)
Definition AnimCurveTypes.h:131
void SetName(FName InName)
Definition AnimCurveTypes.h:188
FName GetName() const
Definition AnimCurveTypes.h:182
FAnimCurveBase()
Definition AnimCurveTypes.h:123
Definition AnimCurveTypes.h:66
static bool IsRelevant(float InWeight)
Definition AnimTypes.h:666
Definition AnimCurveTypes.h:1041
Definition AnimCurveTypes.h:1049
Definition BoneContainer.h:192
Definition AnimCurveTypes.h:363
Definition AnimCurveTypes.h:214
Definition FrameRate.h:21
static UE_FORCEINLINE_HINT bool IsNearlyEqual(float A, float B, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:388
static constexpr UE_FORCEINLINE_HINT T Lerp(const T &A, const T &B, const U &Alpha)
Definition UnrealMathUtility.h:1116
Definition AnimCurveTypes.h:1070
FAnimCurveBase * GetCurveData(SmartName::UID_Type Uid, ERawCurveTrackTypes SupportedCurveType=ERawCurveTrackTypes::RCT_Float)
Definition AnimCurveTypes.h:1120
bool DeleteCurveData(const FSmartName &CurveToDelete, ERawCurveTrackTypes SupportedCurveType=ERawCurveTrackTypes::RCT_Float)
Definition AnimCurveTypes.h:1146
void Empty()
Definition AnimCurveTypes.h:1174
void Reset()
Definition AnimCurveTypes.h:1185
bool DuplicateCurveData(const FSmartName &CurveToCopy, const FSmartName &NewCurve, ERawCurveTrackTypes SupportedCurveType=ERawCurveTrackTypes::RCT_Float)
Definition AnimCurveTypes.h:1159
bool AddCurveData(const FSmartName &NewCurve, int32 CurveFlags=AACF_DefaultCurve, ERawCurveTrackTypes SupportedCurveType=ERawCurveTrackTypes::RCT_Float)
Definition AnimCurveTypes.h:1138
Definition RichCurve.h:200
Definition SmartName.h:20
Definition SmartName.h:211
Definition AnimCurveTypes.h:256
bool DoesContainKey() const
Definition AnimCurveTypes.h:291
EIndex
Definition AnimCurveTypes.h:260
Definition AnimCurveTypes.h:487
void OverrideMove(TBaseBlendedCurve &CurveToOverrideFrom)
Definition AnimCurveTypes.h:961
void UseMaxValue(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &CurveToCombine)
Definition AnimCurveTypes.h:847
float Get(FName InName, bool &OutHasElement, float InDefaultValue=0.0f) const
Definition AnimCurveTypes.h:637
void Reserve(int32 InNumElements)
Definition AnimCurveTypes.h:1010
void MoveFrom(TBaseBlendedCurve &CurveToMoveFrom)
Definition AnimCurveTypes.h:1002
void SetFilter(const UE::Anim::FCurveFilter *InFilter)
Definition AnimCurveTypes.h:1023
void SetFlags(FName InName, UE::Anim::ECurveElementFlags InFlags)
Definition AnimCurveTypes.h:573
void Accumulate(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &AdditiveCurve, float Weight)
Definition AnimCurveTypes.h:829
void Combine(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &CurveToCombine)
Definition AnimCurveTypes.h:913
void LerpToValid(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &Other, float Alpha)
Definition AnimCurveTypes.h:790
void Override(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &CurveToOverrideFrom, float Weight)
Definition AnimCurveTypes.h:931
void LerpTo(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &Other, float Alpha)
Definition AnimCurveTypes.h:733
void ConvertToAdditive(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &BaseCurve)
Definition AnimCurveTypes.h:814
UE::Anim::ECurveElementFlags GetFlags(FName InName) const
Definition AnimCurveTypes.h:613
void InvalidateCurveWeight(FName InName)
Definition AnimCurveTypes.h:532
void CombinePreserved(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &CurveToCombine)
Definition AnimCurveTypes.h:894
InElementType ElementType
Definition AnimCurveTypes.h:490
const UE::Anim::FCurveFilter * GetFilter() const
Definition AnimCurveTypes.h:1029
void CopyFrom(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &InCurveToCopyFrom)
Definition AnimCurveTypes.h:977
void Override(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &CurveToOverrideFrom)
Definition AnimCurveTypes.h:951
void InitFrom(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &InCurveToInitFrom)
Definition AnimCurveTypes.h:514
void LerpValid(const TBaseBlendedCurve< AllocatorA, ElementTypeA > &A, const TBaseBlendedCurve< AllocatorB, ElementTypeB > &B, float Alpha)
Definition AnimCurveTypes.h:761
UE::Anim::TNamedValueArray< AllocatorType, ElementType > Super
Definition AnimCurveTypes.h:497
void Set(FName InName, float InValue)
Definition AnimCurveTypes.h:553
float Get(FName InName) const
Definition AnimCurveTypes.h:598
void UseMinValue(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &CurveToCombine)
Definition AnimCurveTypes.h:870
InAllocatorType AllocatorType
Definition AnimCurveTypes.h:489
void Mirror(FName InName0, FName InName1)
Definition AnimCurveTypes.h:656
void Lerp(const TBaseBlendedCurve< AllocatorA, ElementTypeA > &A, const TBaseBlendedCurve< AllocatorB, ElementTypeB > &B, float Alpha)
Definition AnimCurveTypes.h:704
Definition StructOpsTypeTraits.h:11
@ WithSerializer
Definition StructOpsTypeTraits.h:23
@ WithPostSerialize
Definition StructOpsTypeTraits.h:25
Definition StructOpsTypeTraits.h:46
Definition AnimCurveTypes.h:463
static ENGINE_API TBitArray ValidCurveWeights
Definition AnimCurveTypes.h:468
static ENGINE_API bool bInitialized
Definition AnimCurveTypes.h:477
static ENGINE_API TArray< float > CurveWeights
Definition AnimCurveTypes.h:465
static ENGINE_API TArray< uint16 > const * UIDToArrayIndexLUT
Definition AnimCurveTypes.h:471
static ENGINE_API uint16 NumValidCurveCount
Definition AnimCurveTypes.h:474
Definition AnimCurveTypes.h:449
FCurveElementIndexed(FName InName, int32 InIndex)
Definition AnimCurveTypes.h:452
FCurveElementIndexed()=default
Definition AnimCurveTypes.h:418
FCurveElement(FName InName, ECurveElementFlags InFlags)
Definition AnimCurveTypes.h:430
FName Name
Definition AnimCurveTypes.h:441
FCurveElement(FName InName, float InValue, ECurveElementFlags InFlags)
Definition AnimCurveTypes.h:435
FCurveElement(FName InName)
Definition AnimCurveTypes.h:421
FCurveElement(FName InName, float InValue)
Definition AnimCurveTypes.h:425
float Value
Definition AnimCurveTypes.h:442
ECurveElementFlags Flags
Definition AnimCurveTypes.h:443
Definition AnimCurveFilter.h:68
Definition AnimCurveUtils.h:14
static void Union(TNamedValueArray< AllocatorTypeResult, ElementTypeResult > &InOutValueArray0, const TNamedValueArray< AllocatorTypeParam, ElementTypeParam > &InValueArray1, PredicateType InPredicate)
Definition NamedValueArray.h:261
Definition NamedValueArray.h:35