6#include "Containers/Map.h"
13#include "Misc/Optional.h"
31template<
typename PropertyTraits>
struct TPropertyValueStorage;
94 template<
typename PropertyTraits>
113 template<
typename PropertyTraits>
128 template<
typename PropertyTraits>
148 template<
typename PropertyTraits>
164template<
typename PropertyTraits>
183 bLUTContainsInvalidEntries =
true;
260 CleanupStaleEntries();
270 CleanupStaleEntries();
281 CleanupStaleEntries();
292 return Index.IsSet() ? &PropertyValues[
Index.GetValue().Index] :
nullptr;
302 return Index.IsSet() ? &PropertyValues[
Index.GetValue().Index] :
nullptr;
313 return Index.IsSet() ? &PropertyValues[
Index.GetValue().Index] :
nullptr;
322 return PropertyValues[
Index.Index];
342 friend bool operator==(
const FKeyType&
A,
const FKeyType&
B)
344 if (
A.Object !=
B.Object ||
A.Property.GetIndex() !=
B.Property.GetIndex())
348 switch (
A.Property.GetIndex())
358 inline void CleanupStaleEntries()
360 if (!bLUTContainsInvalidEntries)
364 for (
auto It = KeyToPropertyIndex.CreateIterator(); It; ++It)
372 bLUTContainsInvalidEntries =
false;
377 CleanupStaleEntries();
401 bool bLUTContainsInvalidEntries =
false;
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
Definition NameTypes.h:617
Definition TrackInstancePropertyBindings.h:143
Definition MovieScene.Build.cs:6
Definition PropertyPath.Build.cs:6
Definition ArrayView.h:139
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
bool IsValidIndex(int32 Index) const
Definition SparseArray.h:481
void Shrink()
Definition SparseArray.h:256
Definition SparseArray.h:524
void RemoveAt(int32 Index, int32 Count=1)
Definition SparseArray.h:650
int32 Add(const ElementType &Element)
Definition SparseArray.h:564
Definition UniquePtr.h:107
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
Definition ObjectKey.h:19
Definition Optional.h:131
Definition MovieSceneEntityIDs.h:174
Definition MovieScenePropertySystemTypes.h:23
Definition MovieSceneInitialValueCache.h:56
TPropertyValueStorage< PropertyTraits > * GetStorage(FComponentTypeID InitialValueType)
Definition MovieSceneInitialValueCache.h:95
TPropertyValueStorage< PropertyTraits > * GetStorage(const TPropertyComponents< PropertyTraits > &PropertyComponents)
Definition MovieSceneInitialValueCache.h:114
static MOVIESCENE_API TSharedPtr< FInitialValueCache > GetGlobalInitialValues()
Definition MovieSceneInitialValueCache.cpp:18
static MOVIESCENE_API TEntitySystemLinkerExtensionID< FInitialValueCache > GetExtensionID()
Definition MovieSceneInitialValueCache.cpp:12
void Reset(FComponentTypeID InitialValueType, TArrayView< const FInitialValueIndex > InitialValueIndices)
Definition MovieSceneInitialValueCache.h:78
TPropertyValueStorage< PropertyTraits > * FindStorage(FComponentTypeID InitialValueType)
Definition MovieSceneInitialValueCache.h:129
TPropertyValueStorage< PropertyTraits > * FindStorage(const TPropertyComponents< PropertyTraits > &PropertyComponents)
Definition MovieSceneInitialValueCache.h:149
Definition MovieSceneInitialValueCache.h:36
uint16 Index
Definition MovieSceneInitialValueCache.h:37
Definition MovieSceneInitialValueCache.h:42
virtual ~IPropertyValueStorage()
Definition MovieSceneInitialValueCache.h:43
virtual void Reset(TArrayView< const FInitialValueIndex > Indices)=0
Definition MovieSceneEntitySystemLinkerExtension.h:21
Definition MovieScenePropertySystemTypes.h:299
Definition MovieSceneInitialValueCache.h:166
FInitialValueIndex AddInitialValue(UObject *BoundObject, const StorageType &InValue, FTrackInstancePropertyBindings *SlowBindings)
Definition MovieSceneInitialValueCache.h:230
TOptional< FInitialValueIndex > FindPropertyIndex(UObject *BoundObject, FCustomPropertyIndex AccessorIndex)
Definition MovieSceneInitialValueCache.h:268
const StorageType * FindCachedValue(UObject *BoundObject, FCustomPropertyIndex CustomIndex)
Definition MovieSceneInitialValueCache.h:299
FInitialValueIndex AddInitialValue(UObject *BoundObject, const StorageType &InValue, const FName &PropertyPath)
Definition MovieSceneInitialValueCache.h:247
const StorageType & GetCachedValue(FInitialValueIndex Index)
Definition MovieSceneInitialValueCache.h:320
typename PropertyTraits::StorageType StorageType
Definition MovieSceneInitialValueCache.h:167
FInitialValueIndex AddInitialValue(UObject *BoundObject, const StorageType &InValue, uint16 ResolvedPropertyOffset)
Definition MovieSceneInitialValueCache.h:196
TOptional< FInitialValueIndex > FindPropertyIndex(UObject *BoundObject, uint16 ResolvedPropertyOffset)
Definition MovieSceneInitialValueCache.h:258
const StorageType * FindCachedValue(UObject *BoundObject, const FName &PropertyPath)
Definition MovieSceneInitialValueCache.h:310
const StorageType * FindCachedValue(UObject *BoundObject, uint16 ResolvedPropertyOffset)
Definition MovieSceneInitialValueCache.h:289
TOptional< FInitialValueIndex > FindPropertyIndex(UObject *BoundObject, const FName &PropertyPath)
Definition MovieSceneInitialValueCache.h:279
FInitialValueIndex AddInitialValue(UObject *BoundObject, const StorageType &InValue, FCustomPropertyIndex AccessorIndex)
Definition MovieSceneInitialValueCache.h:213
virtual void Reset(TArrayView< const FInitialValueIndex > Indices) override
Definition MovieSceneInitialValueCache.h:174