|
| | TPreAnimatedStateStorage () |
| |
| | TPreAnimatedStateStorage (StorageTraits &&InTraits) |
| |
| | TPreAnimatedStateStorage (const TPreAnimatedStateStorage &)=delete |
| |
| TPreAnimatedStateStorage & | operator= (const TPreAnimatedStateStorage &)=delete |
| |
| void | Initialize (FPreAnimatedStorageID InStorageID, FPreAnimatedStateExtension *InParentExtension) override |
| |
| FPreAnimatedStorageID | GetStorageType () const override |
| |
| EPreAnimatedStorageRequirement | RestorePreAnimatedStateStorage (FPreAnimatedStorageIndex StorageIndex, EPreAnimatedStorageRequirement SourceRequirement, EPreAnimatedStorageRequirement TargetRequirement, const FRestoreStateParams &Params) override |
| |
| EPreAnimatedStorageRequirement | DiscardPreAnimatedStateStorage (FPreAnimatedStorageIndex StorageIndex, EPreAnimatedStorageRequirement SourceRequirement) override |
| |
| void | SetRestoreMask (const IRestoreMask *InRestoreMask) |
| |
| void | AddReferencedObjects (FReferenceCollector &ReferenceCollector) override |
| |
| FPreAnimatedStorageIndex | GetOrCreateStorageIndex (const KeyType &InKey) |
| |
| FPreAnimatedStorageIndex | FindStorageIndex (const KeyType &InKey) const |
| |
| void | AssignPreAnimatedValue (FPreAnimatedStorageIndex StorageIndex, EPreAnimatedStorageRequirement StorageRequirement, StorageType &&InNewValue) |
| |
| bool | IsStorageRequirementSatisfied (FPreAnimatedStorageIndex StorageIndex, EPreAnimatedStorageRequirement StorageRequirement) const |
| |
| template<typename... KeyArgs> |
| FPreAnimatedStateEntry | FindEntry (KeyArgs &&... InKeyArgs) |
| |
| template<typename... KeyArgs> |
| FPreAnimatedStateEntry | MakeEntry (KeyArgs &&... InKeyArgs) |
| |
| bool | IsCapturingGlobalState () const |
| |
| void | ForciblyPersistStorage (FPreAnimatedStorageIndex StorageIndex) |
| |
| bool | IsStorageInitialized (FPreAnimatedStorageIndex StorageIndex) const |
| |
| bool | HasEverAnimated (FPreAnimatedStorageIndex StorageIndex) const |
| |
| const KeyType & | GetKey (FPreAnimatedStorageIndex StorageIndex) const |
| |
| void | ReplaceKey (FPreAnimatedStorageIndex StorageIndex, const KeyType &NewKey) |
| |
| const StorageType & | GetCachedValue (FPreAnimatedStorageIndex StorageIndex) const |
| |
| template<typename... ContributorTypes> |
| void | BeginTrackingEntities (UMovieSceneEntitySystemLinker *Linker, TComponentTypeID< ContributorTypes >... InComponentTypes) |
| |
| template<typename TaskType , typename... ContributorTypes> |
| void | BeginTrackingEntitiesTask (UMovieSceneEntitySystemLinker *Linker, const TaskType &InParams, TComponentTypeID< ContributorTypes >... InComponentTypes) |
| |
| template<typename... ContributorTypes> |
| void | BeginTrackingEntity (FMovieSceneEntityID EntityID, const bool bWantsRestoreState, FRootInstanceHandle RootInstanceHandle, ContributorTypes... InComponents) |
| |
| template<typename... ContributorTypes> |
| void | CachePreAnimatedValues (UMovieSceneEntitySystemLinker *Linker, TComponentTypeID< ContributorTypes >... InComponentTypes) |
| |
| template<typename TaskType , typename... ContributorTypes> |
| void | CachePreAnimatedValuesTask (UMovieSceneEntitySystemLinker *Linker, const TaskType &InParams, TComponentTypeID< ContributorTypes >... InComponentTypes) |
| |
| template<typename... ContributorTypes> |
| void | CachePreAnimatedValue (ContributorTypes... Values) |
| |
| template<typename... ContributorTypes> |
| void | CacheTrackedPreAnimatedValue (EPreAnimatedCaptureSourceTracking TrackingMode, ContributorTypes... Values) |
| |
| template<typename OnCacheValue > |
| void | CachePreAnimatedValue (const KeyType &InKey, OnCacheValue &&CacheCallback, EPreAnimatedCaptureSourceTracking TrackingMode=EPreAnimatedCaptureSourceTracking::CacheIfTracked) |
| |
| template<typename OnCacheValue > |
| void | CachePreAnimatedValue (FPreAnimatedStorageGroupHandle GroupHandle, const KeyType &InKey, OnCacheValue &&CacheCallback, EPreAnimatedCaptureSourceTracking TrackingMode=EPreAnimatedCaptureSourceTracking::CacheIfTracked) |
| |
| template<typename... ContributorTypes> |
| void | BeginTrackingAndCachePreAnimatedValues (UMovieSceneEntitySystemLinker *Linker, TComponentTypeID< ContributorTypes >... InComponentTypes) |
| |
| template<typename TaskType , typename... ContributorTypes> |
| void | BeginTrackingAndCachePreAnimatedValuesTask (UMovieSceneEntitySystemLinker *Linker, const TaskType &InParams, TComponentTypeID< ContributorTypes >... InComponentTypes) |
| |
| void | OnObjectReplaced (FPreAnimatedStorageIndex StorageIndex, const FObjectKey &OldObject, const FObjectKey &NewObject) override |
| |
| virtual | ~IPreAnimatedStorage () |
| |
| virtual IPreAnimatedObjectPropertyStorage * | AsPropertyStorage () |
| |
| virtual IPreAnimatedObjectEntityStorage * | AsObjectStorage () |
| |
| TSharedRef< IPreAnimatedStorage, Mode > | AsShared () |
| |
| TSharedRef< IPreAnimatedStorage const, Mode > | AsShared () const |
| |
| TSharedRef< SubobjectType, Mode > | AsSharedSubobject (SubobjectType *SubobjectPtr) const |
| |
| TWeakPtr< IPreAnimatedStorage, Mode > | AsWeak () |
| |
| TWeakPtr< IPreAnimatedStorage const, Mode > | AsWeak () const |
| |
| TWeakPtr< SubobjectType, Mode > | AsWeakSubobject (SubobjectType *SubobjectPtr) const |
| |
| void | UpdateWeakReferenceInternal (TSharedPtr< SharedPtrType, SharedPtrMode > const *InSharedPtr, OtherType *InObject) const |
| |
| void | UpdateWeakReferenceInternal (TSharedRef< SharedRefType, SharedPtrMode > const *InSharedRef, OtherType *InObject) const |
| |
| UE_FORCEINLINE_HINT bool | DoesSharedInstanceExist () const |
| |
template<
typename StorageTraits>
struct UE::MovieScene::TPreAnimatedStateStorage< StorageTraits >
Storage container for a specific type of pre-animated state as defined by the specified traits.
Reference collection for KeyType and StorageType is automatically provided by way of an optional AddReferencedObjectForComponent override
Traits must include a type definition or using alias for its KeyType and StorageType, defining the type of key to use for associating the pre-animated value and the storage value type respectively.
Additionally, traits must define a RestorePreAnimatedValue function that will be used by the storage container to restore data back to its previous value.
An example trait that maps an object and a name identifier to a string would look like this: struct FExampleTraits { using KeyType = TTuple<FObjectKey, FName>; using StorageType = FString;
static void RestorePreAnimatedValue(const KeyType& InKey, const FString& PreviousString, const FRestoreStateParams& Params) { if (UMyObjectType* Object = Cast<UMyObjectType>(InKey.Get<0>().ResolveObjectPtr())) { Object->SetStringValue(InKey.Get<1>(), PreviousString); } } }
Furthermore, if the CachePreAnimatedValuesTask is used, traits must implement a CachePreAnimatedValue function that receives the contributor component types, and returns the cached value:
static FString CachePreAnimatedValue(UObject* InObject, const FName& StringName) { UMyObjectType* Object = CastChecked<UMyObjectType>(InObject); return Object->GetStringValue(StringName); }
Traits may be stateful if desired. Stateful traits must be provided to the constructor in order to be valid.