15template<
typename TimeType>
33 KeyHandleLUT = &TemporaryKeyHandleLUT;
42 : KeyTimes(Rhs.KeyTimes)
43 , KeyHandleLUT(Rhs.KeyHandleLUT == &Rhs.TemporaryKeyHandleLUT ? &TemporaryKeyHandleLUT : Rhs.KeyHandleLUT)
44 , TemporaryKeyHandleLUT(Rhs.TemporaryKeyHandleLUT)
51 KeyTimes = Rhs.KeyTimes;
52 KeyHandleLUT = Rhs.KeyHandleLUT == &Rhs.TemporaryKeyHandleLUT ? &TemporaryKeyHandleLUT : Rhs.KeyHandleLUT;
53 TemporaryKeyHandleLUT = Rhs.TemporaryKeyHandleLUT;
59 : KeyTimes(Rhs.KeyTimes)
60 , KeyHandleLUT(Rhs.KeyHandleLUT == &Rhs.TemporaryKeyHandleLUT ? &TemporaryKeyHandleLUT : Rhs.KeyHandleLUT)
61 , TemporaryKeyHandleLUT(
MoveTemp(Rhs.TemporaryKeyHandleLUT))
68 KeyTimes = Rhs.KeyTimes;
69 KeyHandleLUT = Rhs.KeyHandleLUT == &Rhs.TemporaryKeyHandleLUT ? &TemporaryKeyHandleLUT : Rhs.KeyHandleLUT;
70 TemporaryKeyHandleLUT =
MoveTemp(Rhs.TemporaryKeyHandleLUT);
82 virtual void OnKeyRelocated(
int32 OldIndex,
int32 NewIndex) {}
86 virtual void OnReset() {}
110 OnKeyAdded(InsertIndex);
154 OnKeyRemoved(RemoveAtIndex);
164 KeyHandleLUT->
Reset();
236 return (*KeyTimes)[KeyIndex];
244 return KeyHandleLUT->
GetIndex(KeyHandle);
260 if (OldIndex == NewIndex || OldIndex < 0 || NewIndex < 0)
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition IKeyFrameManipulator.h:17
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_FORCEINLINE_HINT void RemoveAtSwap(SizeType Index, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2185
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
SizeType Insert(std::initializer_list< ElementType > InitList, const SizeType InIndex)
Definition Array.h:1875
void Empty(SizeType Slack=0)
Definition Array.h:2273
Definition AssetRegistryState.h:50
Definition KeyFrameManipulator.h:17
TKeyFrameManipulator(TKeyFrameManipulator &&Rhs)
Definition KeyFrameManipulator.h:58
TimeType GetKeyTimeChecked(int32 KeyIndex) const
Definition KeyFrameManipulator.h:234
FKeyHandle GetKeyHandleFromIndex(int32 Index) const
Definition KeyFrameManipulator.h:250
TKeyFrameManipulator(TArray< TimeType > *KeyTimesParam, FKeyHandleLookupTable *ExternalKeyHandleLUT=nullptr)
Definition KeyFrameManipulator.h:25
FKeyHandle AddKey(TimeTypeRef InTime)
Definition KeyFrameManipulator.h:105
void Reset()
Definition KeyFrameManipulator.h:161
TOptional< FKeyHandle > FindKey(const TFunctionRef< bool(TimeTypeRef)> &InPredicate) const
Definition KeyFrameManipulator.h:188
void RemoveKey(FKeyHandle KeyHandle)
Definition KeyFrameManipulator.h:146
int32 GetIndex(FKeyHandle KeyHandle) const
Definition KeyFrameManipulator.h:242
void RelocateKeyImpl(int32 OldIndex, int32 NewIndex)
Definition KeyFrameManipulator.h:258
TKeyFrameManipulator(const TKeyFrameManipulator &Rhs)
Definition KeyFrameManipulator.h:41
FKeyHandle InsertKeyImpl(TimeTypeRef Time, int32 InsertIndex) const
Definition KeyFrameManipulator.h:225
TKeyFrameManipulator & operator=(TKeyFrameManipulator &&Rhs)
Definition KeyFrameManipulator.h:64
int32 ComputeInsertIndex(TimeTypeRef InTime, int32 StartAtIndex=0) const
Definition KeyFrameManipulator.h:216
virtual ~TKeyFrameManipulator()
Definition KeyFrameManipulator.h:75
TKeyTimeIterator< TimeType > IterateKeys() const
Definition KeyFrameManipulator.h:206
TOptional< TimeType > GetKeyTime(FKeyHandle KeyHandle) const
Definition KeyFrameManipulator.h:176
TCallTraits< TimeType >::ParamType TimeTypeRef
Definition KeyFrameManipulator.h:20
void SetKeyTime(FKeyHandle KeyHandle, TimeTypeRef NewTime)
Definition KeyFrameManipulator.h:121
TKeyFrameManipulator & operator=(const TKeyFrameManipulator &Rhs)
Definition KeyFrameManipulator.h:47
U16 Index
Definition radfft.cpp:71
Definition KeyHandle.h:138
ENGINE_API void Reset()
Definition KeyHandle.cpp:266
ENGINE_API void DeallocateHandle(int32 Index)
Definition KeyHandle.cpp:244
ENGINE_API void MoveHandle(int32 OldIndex, int32 NewIndex)
Definition KeyHandle.cpp:209
ENGINE_API FKeyHandle FindOrAddKeyHandle(int32 Index)
Definition KeyHandle.cpp:193
ENGINE_API int32 GetIndex(FKeyHandle KeyHandle)
Definition KeyHandle.cpp:187
ENGINE_API FKeyHandle AllocateHandle(int32 Index)
Definition KeyHandle.cpp:229
Definition KeyHandle.h:15
TCallTraitsParamTypeHelper< T, PassByValue >::ParamType ParamType
Definition UnrealTypeTraits.h:275
Definition IKeyFrameManipulator.h:135
Definition Optional.h:131