UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IAnimationDataController.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "UObject/Interface.h"
7#include "CurveIdentifier.h"
8#include "Misc/FrameRate.h"
10#include "IAnimationDataModel.h"
12#include "Algo/Transform.h"
14
15#if WITH_EDITOR
16#include "ChangeTransactor.h"
17#endif // WITH_EDITOR
18
19#include "IAnimationDataController.generated.h"
20
21#define LOCTEXT_NAMESPACE "IAnimationDataController"
22
23class FText;
24class UAssetUserData;
26
27struct FCurveAttributes;
30
31namespace UE {
32namespace Anim {
35}}
36
43UINTERFACE(BlueprintType, meta=(CannotImplementInterfaceInBlueprint), MinimalAPI)
48
50{
51public:
53
54#if WITH_EDITOR
56 struct FScopedBracket
57 {
60 {
62 }
63
66 {
68 }
69
72 {
74 }
75
77 {
78 Controller.CloseBracket(bShouldTransact);
79 }
80 private:
82 bool bShouldTransact;
83 };
84#endif // WITH_EDITOR
85
91 UFUNCTION(BlueprintCallable, Category = AnimationData)
93
97 UFUNCTION(BlueprintCallable, Category = AnimationData)
99
103 virtual const IAnimationDataModel* const GetModel() const = 0;
104
112 UFUNCTION(BlueprintCallable, Category = AnimationData)
114
120 UFUNCTION(BlueprintCallable, Category = AnimationData)
122
130 UFUNCTION(BlueprintCallable, Category = AnimationData)
132
133 UE_DEPRECATED(5.1, "SetPlayLength with length in seconds in deprecated use SetNumberOfFrames using FFrameNumber instead")
134 UFUNCTION(BlueprintCallable, Category = AnimationData, meta=(DeprecatedFunction, DeprecationMessage="SetPlayLength is deprecated use SetNumberOfFrames instead."))
136
137 /*** Sets the total play-able length in seconds. Broadcasts a EAnimDataModelNotifyType::SequenceLengthChanged notify if successful.
138 * T0 and T1 are expected to represent the window of time that was either added or removed. E.g. for insertion T0 indicates the time
139 * at which additional time starts and T1 were it ends. For removal T0 indicates the time at which time should be started to remove, and T1 indicates the end. Giving a total of T1 - T0 added or removed length.
140 * The number of frames and keys for the provided length is recalculated according to the current value of UAnimDataModel::FrameRate.
141 * @param NewLengthInFrames Total new play-able number of frames value (according to frame rate), has to be positive and non-zero
142 * @param T0 Point between 0 and NewLengthInFrames at which the change in length starts
143 * @param T1 Point between 0 and NewLengthInFrames at which the change in length ends
144 * @param bShouldTransact Whether or not any undo-redo changes should be generated
145 */
146 UFUNCTION(BlueprintCallable, Category = AnimationData)
148
149 UE_DEPRECATED(5.1, "ResizePlayLength with length in seconds in deprecated use ResizeNumberOfFrames using FFrameNumber instead")
150 UFUNCTION(BlueprintCallable, Category = AnimationData, meta=(DeprecatedFunction, DeprecationMessage="ResizePlayLength is deprecated use ResizeNumberOfFrames instead."))
151 virtual void ResizePlayLength(float NewLength, float T0, float T1, bool bShouldTransact = true) = 0;
152
165 UFUNCTION(BlueprintCallable, Category = AnimationData)
167
168 UE_DEPRECATED(5.1, "Resize with length in seconds in deprecated use ResizeInFrames using FFrameNumber instead")
169 UFUNCTION(BlueprintCallable, Category = AnimationData, meta=(DeprecatedFunction, DeprecationMessage="Resize is deprecated use ResizeInFrames instead."))
170 virtual void Resize(float Length, float T0, float T1, bool bShouldTransact = true) = 0;
171
179 UFUNCTION(BlueprintCallable, Category = AnimationData)
181
190 UE_DEPRECATED(5.2, "AddBoneTrack returning index is deprecated use AddBoneCurve returning bool instead.")
191 UFUNCTION(BlueprintCallable, Category = AnimationData, meta=(DeprecatedFunction, DeprecationMessage="AddBoneTrack returning index is deprecated use AddBoneCurve returning bool instead."))
193
194 UFUNCTION(BlueprintCallable, Category = AnimationData)
195 virtual bool AddBoneCurve(FName BoneName, bool bShouldTransact = true) = 0;
196
207 UE_DEPRECATED(5.1, "InsertBoneTrack has been deprecated, use AddBoneTrack instead")
208 UFUNCTION(BlueprintCallable, Category = AnimationData, meta=(DeprecatedFunction, DeprecationMessage="InsertBoneTrack is deprecated use AddBoneTrack instead."))
210
219 UFUNCTION(BlueprintCallable, Category = AnimationData)
221
227 UFUNCTION(BlueprintCallable, Category = AnimationData)
229
243
256 UFUNCTION(BlueprintCallable, Category = AnimationData)
257 virtual bool SetBoneTrackKeys(FName BoneName, const TArray<FVector>& PositionalKeys, const TArray<FQuat>& RotationalKeys, const TArray<FVector>& ScalingKeys, bool bShouldTransact = true) = 0;
258
273
288
298 UFUNCTION(BlueprintCallable, Category = CurveData)
300
310 UFUNCTION(BlueprintCallable, Category = CurveData)
312
313
322 UFUNCTION(BlueprintCallable, Category = CurveData)
324
331 UFUNCTION(BlueprintCallable, Category = CurveData)
333
344 UFUNCTION(BlueprintCallable, Category = CurveData)
346
356 UFUNCTION(BlueprintCallable, Category = CurveData)
358
369 UFUNCTION(BlueprintCallable, Category = CurveData)
370 virtual bool SetTransformCurveKeys(const FAnimationCurveIdentifier& CurveId, const TArray<FTransform>& TransformValues, const TArray<float>& TimeKeys, bool bShouldTransact = true) = 0;
371
383 UFUNCTION(BlueprintCallable, Category = CurveData)
385
395 UFUNCTION(BlueprintCallable, Category = CurveData)
397
407 UFUNCTION(BlueprintCallable, Category = CurveData)
409
420 UFUNCTION(BlueprintCallable, Category = CurveData)
422
433 UFUNCTION(BlueprintCallable, Category = CurveData)
435
446 UFUNCTION(BlueprintCallable, Category = CurveData)
447 virtual bool ScaleCurve(const FAnimationCurveIdentifier& CurveId, float Origin, float Factor, bool bShouldTransact = true) = 0;
448
459 UFUNCTION(BlueprintCallable, Category = CurveData)
461
471 UFUNCTION(BlueprintCallable, Category = CurveData)
473
483 UFUNCTION(BlueprintCallable, Category = CurveData)
485
496
504 UE_DEPRECATED(5.3, "This function is no longer used.")
505 UFUNCTION(BlueprintCallable, Category = CurveData, meta=(DeprecatedFunction, DeprecationMessage="This function is no longer used."))
507
515 UE_DEPRECATED(5.3, "This function is no longer used.")
516 UFUNCTION(BlueprintCallable, Category = CurveData, meta=(DeprecatedFunction, DeprecationMessage="This function is no longer used."))
518
526
534 virtual void UpdateAttributesFromSkeleton(const USkeleton* Skeleton, bool bShouldTransact = true) = 0;
535
539 virtual void NotifyPopulated() = 0;
540
550 virtual void ResetModel(bool bShouldTransact = true) = 0;
551
560 UFUNCTION(BlueprintCallable, Category = AttributeData)
562
571 UFUNCTION(BlueprintCallable, Category = AttributeData)
573
582 UFUNCTION(BlueprintCallable, Category = AttributeData)
584
592 UFUNCTION(BlueprintCallable, Category = AttributeData)
594
606 template<typename AttributeType>
608 {
609 return SetAttributeKey(AttributeIdentifier, Time, static_cast<const void*>(&KeyValue), AttributeType::StaticStruct(), bShouldTransact);
610 }
611
625
638
649 template<typename AttributeType>
651 {
653 Algo::Transform(KeyValues, KeyValuePtrs, [](const AttributeType& Value)
654 {
655 return static_cast<const void*>(&Value);
656 });
657
658 return SetAttributeKeys(AttributeIdentifier, Times, MakeArrayView(KeyValuePtrs), AttributeType::StaticStruct(), bShouldTransact);
659 }
660
670 UFUNCTION(BlueprintCallable, Category = AttributeData)
672
682 UFUNCTION(BlueprintCallable, Category = AttributeData)
684
691 virtual void UpdateWithSkeleton(USkeleton* TargetSkeleton, bool bShouldTransact = true) = 0;
692
695
698
701 {
703
705
709
710 const FFrameTime FrameTime = ModelFrameRate.AsFrameTime(Seconds);
711 // Check for either small sub-frame value or near zero seconds representation (of sub-frame only)
712 if (!FMath::IsNearlyZero(FrameTime.GetSubFrame(), UE_KINDA_SMALL_NUMBER) &&
713 !FMath::IsNearlyZero(ModelFrameRate.AsSeconds(FFrameTime(0, FrameTime.GetSubFrame())), UE_DOUBLE_KINDA_SMALL_NUMBER))
714 {
715 ReportWarningf(LOCTEXT("SecondsToFrameNumberPrecisionWarning", "Insufficient precision while converting seconds to frames: {0} seconds {1} frames using {2} (sub-frame in seconds {3})"), FText::AsNumber(Seconds), FText::AsNumber(FrameTime.AsDecimal(), &DurationFormatOptions), ModelFrameRate.ToPrettyText(), FText::AsNumber(ModelFrameRate.AsSeconds(FFrameTime(0, FrameTime.GetSubFrame())), &DurationFormatOptions));
716 }
717
718 return FrameTime.GetFrame();
719 }
720protected:
722 virtual void NotifyBracketOpen() = 0;
723 virtual void NotifyBracketClosed() = 0;
724
725 template <typename FmtType, typename... Types>
726 void ReportWarningf(const FmtType& Fmt, Types... Args) const
727 {
729 }
730
731 template <typename FmtType, typename... Types>
732 void ReportErrorf(const FmtType& Fmt, Types... Args) const
733 {
734 ReportError(FText::Format(Fmt, Args...));
735 }
736
737 void Report(ELogVerbosity::Type Verbosity, const FText& Message) const
738 {
739 ReportMessage(GetModelInterface().GetObject(), Message, Verbosity);
740 }
741
742 template <typename FmtType, typename... Types>
743 void Reportf(ELogVerbosity::Type Verbosity, const FmtType& Fmt, Types... Args) const
744 {
745 ReportMessage(GetModelInterface().GetObject(), FText::Format(Fmt, Args...), Verbosity);
746 }
747
748 void ReportWarning(const FText& Message) const
749 {
751 }
752
753 void ReportError(const FText& Message) const
754 {
756 }
757
760 {
761 const TArray<ERawCurveTrackTypes> SupportedTypes = { ERawCurveTrackTypes::RCT_Float, ERawCurveTrackTypes::RCT_Transform };
762 return SupportedTypes.Contains(CurveType);
763 }
764
766 void ValidateModel() const
767 {
768 checkf(GetModel() != nullptr, TEXT("Invalid Model"));
769 }
770
773 {
775
776 if (const UObject* ModelOuter = GetModelInterface().GetObject()->GetOuter())
777 {
778 if (const UClass* OuterClass = ModelOuter->GetClass())
779 {
780 if (OuterClass == InClass || OuterClass->IsChildOf(InClass))
781 {
782 return true;
783 }
784 else
785 {
786 ReportErrorf(NSLOCTEXT("IAnimationDataController", "NoValidOuterClassError", "Incorrect outer object class found for Animation Data Model {0}, expected {1} actual {2}"), FText::FromString(GetModelInterface().GetObject()->GetName()), FText::FromString(InClass->GetName()), FText::FromString(OuterClass->GetName()));
787 }
788 }
789 }
790 else
791 {
792 ReportErrorf(NSLOCTEXT("IAnimationDataController", "NoValidOuterObjectFoundError", "No valid outer object found for Animation Data Model {0}"), FText::FromString(GetModelInterface().GetObject()->GetName()));
793 }
794
795 return false;
796 }
797
800 {
801 FString ValueString;
802 if (const UEnum* Enum = FindObject<UEnum>(nullptr, TEXT("/Script/Engine.ERawCurveTrackTypes")))
803 {
804 ValueString = Enum->GetNameStringByValue(static_cast<int64>(InType));
805 }
806
807 return ValueString;
808 }
809
811
812#if WITH_EDITOR
814 FTransaction ConditionalTransaction(const FText& Description, bool bCondition)
815 {
816 if (UE::FChangeTransactor::CanTransactChanges() && bCondition)
817 {
819 }
820
821 return nullptr;
822 }
823
825 FBracket ConditionalBracket(const FText& Description, bool bCondition)
826 {
827 return MakeUnique<IAnimationDataController::FScopedBracket>(this, Description, UE::FChangeTransactor::CanTransactChanges() && bCondition);
828 }
829
830 template<typename ActionClass, class... ActionArguments>
831 void ConditionalAction(bool bCondition, ActionArguments&&... Arguments)
832 {
833 if (UE::FChangeTransactor::CanTransactChanges() && bCondition) \
834 {
835 ChangeTransactor.AddTransactionChange<ActionClass>(Forward<ActionArguments>(Arguments)...); \
836 }
837 }
838protected:
839 UE::FChangeTransactor ChangeTransactor;
840#endif // WITH_EDITOR
841
842public:
843 template <typename FmtType, typename... Types>
844 static void ReportObjectWarningf(const UObject* ErrorObject, const FmtType& Fmt, Types... Args)
845 {
847 }
848
849 template <typename FmtType, typename... Types>
850 static void ReportObjectErrorf(const UObject* ErrorObject, const FmtType& Fmt, Types... Args)
851 {
853 }
854
855 template <typename FmtType, typename... Types>
856 static void Reportf(ELogVerbosity::Type LogVerbosity, const UObject* ErrorObject, const FmtType& Fmt, Types... Args)
857 {
859 }
860
861 static ENGINE_API void ReportMessage(const UObject* ErrorObject, const FText& InMessage, ELogVerbosity::Type LogVerbosity);
862private:
864 friend UE::Anim::FOpenBracketAction;
865 friend UE::Anim::FCloseBracketAction;
866};
867
868#define CONDITIONAL_TRANSACTION(Text) FTransaction Transaction = ConditionalTransaction(Test, bShouldTransact);
869#define CONDITIONAL_BRACKET(Text) FBracket Bracket = ConditionalBracket(Text, bShouldTransact);
870#define CONDITIONAL_ACTION(ActionClass, ...) ConditionalAction<ActionClass>(bShouldTransact, __VA_ARGS__);
871
872#undef LOCTEXT_NAMESPACE // "IAnimationDataController"
OODEFFUNC typedef const int const char * function
Definition oodle2.h:710
ERawCurveTrackTypes
Definition AnimCurveTypes.h:1058
EAnimAssetCurveFlags
Definition AnimCurveTypes.h:42
@ AACF_Editable
Definition AnimCurveTypes.h:49
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
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
return true
Definition ExternalRpcRegistry.cpp:601
#define LOCTEXT(InKey, InTextLiteral)
Definition Internationalization.h:295
#define NSLOCTEXT(InNamespace, InKey, InTextLiteral)
Definition Internationalization.h:300
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UINTERFACE(...)
Definition ObjectMacros.h:780
#define UE_DOUBLE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:140
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition Text.h:385
static CORE_API FText FromString(const ANSICHAR *String)
Definition Text.cpp:1081
static CORE_API FText AsNumber(float Val, const FNumberFormattingOptions *const Options=NULL, const FCulturePtr &TargetCulture=NULL)
static CORE_API FText Format(FTextFormat Fmt, const FFormatNamedArguments &InArguments)
Definition Text.cpp:469
Definition IAnimationDataController.h:50
virtual bool RemoveCurveKey(const FAnimationCurveIdentifier &CurveId, float Time, bool bShouldTransact=true)=0
static ENGINE_API void ReportMessage(const UObject *ErrorObject, const FText &InMessage, ELogVerbosity::Type LogVerbosity)
Definition IAnimationDataController.cpp:8
virtual int32 InsertBoneTrack(FName BoneName, int32 DesiredIndex, bool bShouldTransact=true)=0
void ValidateModel() const
Definition IAnimationDataController.h:766
void ReportError(const FText &Message) const
Definition IAnimationDataController.h:753
void Reportf(ELogVerbosity::Type Verbosity, const FmtType &Fmt, Types... Args) const
Definition IAnimationDataController.h:743
virtual bool SetAttributeKey(const FAnimationAttributeIdentifier &AttributeIdentifier, float Time, const void *KeyValue, const UScriptStruct *TypeStruct, bool bShouldTransact=true)=0
virtual bool SetCurveColor(const FAnimationCurveIdentifier &CurveId, FLinearColor Color, bool bShouldTransact=true)=0
virtual const IAnimationDataModel *const GetModel() const =0
virtual void RemoveAllBoneTracks(bool bShouldTransact=true)=0
virtual bool SetAttributeKeys(const FAnimationAttributeIdentifier &AttributeIdentifier, TArrayView< const float > Times, TArrayView< const void * > KeyValues, const UScriptStruct *TypeStruct, bool bShouldTransact=true)=0
virtual bool SetBoneTrackKeys(FName BoneName, const TArray< FVector3f > &PositionalKeys, const TArray< FQuat4f > &RotationalKeys, const TArray< FVector3f > &ScalingKeys, bool bShouldTransact=true)=0
virtual bool SetCurveFlag(const FAnimationCurveIdentifier &CurveId, EAnimAssetCurveFlags Flag, bool bState=true, bool bShouldTransact=true)=0
virtual int32 RemoveAllAttributes(bool bShouldTransact=true)=0
virtual void InitializeModel()=0
virtual bool DuplicateCurve(const FAnimationCurveIdentifier &CopyCurveId, const FAnimationCurveIdentifier &NewCurveId, bool bShouldTransact=true)=0
virtual bool ScaleCurve(const FAnimationCurveIdentifier &CurveId, float Origin, float Factor, bool bShouldTransact=true)=0
static void ReportObjectErrorf(const UObject *ErrorObject, const FmtType &Fmt, Types... Args)
Definition IAnimationDataController.h:850
void ReportWarning(const FText &Message) const
Definition IAnimationDataController.h:748
virtual void NotifyBracketOpen()=0
virtual void ResizeNumberOfFrames(FFrameNumber NewLengthInFrames, FFrameNumber T0, FFrameNumber T1, bool bShouldTransact=true)=0
virtual void ResizeInFrames(FFrameNumber NewLengthInFrames, FFrameNumber T0, FFrameNumber T1, bool bShouldTransact=true)=0
bool SetTypedAttributeKey(const FAnimationAttributeIdentifier &AttributeIdentifier, float Time, const AttributeType &KeyValue, bool bShouldTransact=true)
Definition IAnimationDataController.h:607
virtual bool SetCurveFlags(const FAnimationCurveIdentifier &CurveId, int32 Flags, bool bShouldTransact=true)=0
virtual bool UpdateBoneTrackKeys(FName BoneName, const FInt32Range &KeyRangeToSet, const TArray< FVector3f > &PositionalKeys, const TArray< FQuat4f > &RotationalKeys, const TArray< FVector3f > &ScalingKeys, bool bShouldTransact=true)=0
virtual bool RemoveBoneTracksMissingFromSkeleton(const USkeleton *Skeleton, bool bShouldTransact=true)=0
virtual bool RemoveAttribute(const FAnimationAttributeIdentifier &AttributeIdentifier, bool bShouldTransact=true)=0
virtual void Resize(float Length, float T0, float T1, bool bShouldTransact=true)=0
virtual bool SetTransformCurveKeys(const FAnimationCurveIdentifier &CurveId, const TArray< FTransform > &TransformValues, const TArray< float > &TimeKeys, bool bShouldTransact=true)=0
virtual bool SetCurveKey(const FAnimationCurveIdentifier &CurveId, const FRichCurveKey &Key, bool bShouldTransact=true)=0
virtual bool AddCurve(const FAnimationCurveIdentifier &CurveId, int32 CurveFlags=0x00000004, bool bShouldTransact=true)=0
virtual TScriptInterface< IAnimationDataModel > GetModelInterface() const =0
void ReportErrorf(const FmtType &Fmt, Types... Args) const
Definition IAnimationDataController.h:732
static bool IsSupportedCurveType(ERawCurveTrackTypes CurveType)
Definition IAnimationDataController.h:759
virtual void ResizePlayLength(float NewLength, float T0, float T1, bool bShouldTransact=true)=0
virtual bool RemoveCurve(const FAnimationCurveIdentifier &CurveId, bool bShouldTransact=true)=0
static void ReportObjectWarningf(const UObject *ErrorObject, const FmtType &Fmt, Types... Args)
Definition IAnimationDataController.h:844
virtual bool SetCurveAttributes(const FAnimationCurveIdentifier &CurveId, const FCurveAttributes &Attributes, bool bShouldTransact=true)=0
virtual void SetNumberOfFrames(FFrameNumber NewLengthInFrames, bool bShouldTransact=true)=0
virtual bool SetTransformCurveKey(const FAnimationCurveIdentifier &CurveId, float Time, const FTransform &Value, bool bShouldTransact=true)=0
bool SetTypedAttributeKeys(const FAnimationAttributeIdentifier &AttributeIdentifier, TArrayView< const float > Times, TArrayView< const AttributeType > KeyValues, bool bShouldTransact=true)
Definition IAnimationDataController.h:650
virtual bool RenameCurve(const FAnimationCurveIdentifier &CurveToRenameId, const FAnimationCurveIdentifier &NewCurveId, bool bShouldTransact=true)=0
virtual void SetFrameRate(FFrameRate FrameRate, bool bShouldTransact=true)=0
static FString GetCurveTypeValueName(ERawCurveTrackTypes InType)
Definition IAnimationDataController.h:799
virtual bool DuplicateAttribute(const FAnimationAttributeIdentifier &AttributeIdentifier, const FAnimationAttributeIdentifier &NewAttributeIdentifier, bool bShouldTransact=true)=0
virtual bool AddBoneCurve(FName BoneName, bool bShouldTransact=true)=0
virtual bool SetCurveKeys(const FAnimationCurveIdentifier &CurveId, const TArray< FRichCurveKey > &CurveKeys, bool bShouldTransact=true)=0
virtual bool AddAttribute(const FAnimationAttributeIdentifier &AttributeIdentifier, bool bShouldTransact=true)=0
virtual void NotifyBracketClosed()=0
FFrameNumber ConvertSecondsToFrameNumber(double Seconds) const
Definition IAnimationDataController.h:700
virtual void NotifyPopulated()=0
virtual int32 AddBoneTrack(FName BoneName, bool bShouldTransact=true)
Definition IAnimationDataController.h:192
virtual void SetPlayLength(float Length, bool bShouldTransact=true)=0
virtual void OpenBracket(const FText &InTitle, bool bShouldTransact=true)=0
virtual void SetModel(TScriptInterface< IAnimationDataModel > InModel)=0
virtual void RemoveAllCurvesOfType(ERawCurveTrackTypes SupportedCurveType, bool bShouldTransact=true)=0
virtual void UpdateCurveNamesFromSkeleton(const USkeleton *Skeleton, ERawCurveTrackTypes SupportedCurveType, bool bShouldTransact=true)
Definition IAnimationDataController.h:506
virtual void PopulateWithExistingModel(TScriptInterface< IAnimationDataModel > InModel)=0
virtual bool RemoveTransformCurveKey(const FAnimationCurveIdentifier &CurveId, float Time, bool bShouldTransact=true)=0
friend class FAnimDataControllerTestBase
Definition IAnimationDataController.h:863
static void Reportf(ELogVerbosity::Type LogVerbosity, const UObject *ErrorObject, const FmtType &Fmt, Types... Args)
Definition IAnimationDataController.h:856
virtual int32 RemoveAllAttributesForBone(const FName &BoneName, bool bShouldTransact=true)=0
virtual void ResetModel(bool bShouldTransact=true)=0
bool CheckOuterClass(UClass *InClass) const
Definition IAnimationDataController.h:772
static constexpr int32 DefaultCurveFlags
Definition IAnimationDataController.h:810
void Report(ELogVerbosity::Type Verbosity, const FText &Message) const
Definition IAnimationDataController.h:737
virtual void UpdateWithSkeleton(USkeleton *TargetSkeleton, bool bShouldTransact=true)=0
virtual bool SetCurveComment(const FAnimationCurveIdentifier &CurveId, const FString &Comment, bool bShouldTransact=true)=0
virtual void CloseBracket(bool bShouldTransact=true)=0
virtual bool RemoveBoneTrack(FName BoneName, bool bShouldTransact=true)=0
virtual void UpdateAttributesFromSkeleton(const USkeleton *Skeleton, bool bShouldTransact=true)=0
void ReportWarningf(const FmtType &Fmt, Types... Args) const
Definition IAnimationDataController.h:726
virtual void FindOrAddCurveNamesOnSkeleton(USkeleton *Skeleton, ERawCurveTrackTypes SupportedCurveType, bool bShouldTransact=true)
Definition IAnimationDataController.h:517
virtual bool RemoveAttributeKey(const FAnimationAttributeIdentifier &AttributeIdentifier, float Time, bool bShouldTransact=true)=0
Definition IAnimationDataModel.h:127
virtual FFrameRate GetFrameRate() const =0
Definition ArrayView.h:139
Definition Array.h:670
bool Contains(const ComparisonType &Item) const
Definition Array.h:1518
Definition ScriptInterface.h:139
Definition UniquePtr.h:107
Definition IAnimationDataController.h:45
Definition AssetUserData.h:18
Definition Class.h:3793
Definition Class.h:2791
Definition Interface.h:19
FORCEINLINE UClass * GetClass() const
Definition UObjectBase.h:217
Definition Object.h:95
Definition Class.h:1720
Definition Skeleton.h:295
void Transform(const InT &Input, OutT &&Output, TransformT Trans)
Definition Transform.h:66
Type
Definition LogVerbosity.h:17
@ Warning
Definition LogVerbosity.h:34
@ Error
Definition LogVerbosity.h:28
Definition AdvancedWidgetsModule.cpp:13
Definition AttributeIdentifier.h:17
Definition CurveIdentifier.h:37
Definition RealCurve.h:47
Definition FrameNumber.h:18
Definition FrameRate.h:21
Definition FrameTime.h:16
Definition Color.h:48
static UE_FORCEINLINE_HINT bool IsNearlyZero(float Value, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:407
Definition Text.h:199
FNumberFormattingOptions & SetMaximumFractionalDigits(int32 InValue)
Definition Text.h:224
FNumberFormattingOptions & SetMinimumFractionalDigits(int32 InValue)
Definition Text.h:221
Definition RichCurve.h:81