UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes > Struct Template Reference

#include <MovieSceneOverlappingEntityTracker.h>

Classes

struct  FOutput
 

Public Types

using KeyType = TOverlappingEntityInput< InputKeyTypes... >
 
using ParamType = typename TCallTraits< KeyType >::ParamType
 

Public Member Functions

bool IsInitialized () const
 
void Update (UMovieSceneEntitySystemLinker *Linker, TComponentTypeID< InputKeyTypes >... InKeyComponents, const FEntityComponentFilter &InFilter)
 
template<typename ... ComponentTypes>
void UpdateFromComponents (UMovieSceneEntitySystemLinker *Linker, const FEntityComponentFilter &InFilter, TComponentTypeID< ComponentTypes >... InKeyComponents)
 
template<typename ... ComponentTypes>
void UpdateUnlinkedOnly (UMovieSceneEntitySystemLinker *Linker, TComponentTypeID< ComponentTypes >... InKeyComponent, const FEntityComponentFilter &InFilter)
 
template<typename ... ComponentTypes>
void VisitActiveAllocation (const FEntityAllocation *Allocation, TComponentPtr< const ComponentTypes >... ReadKeys)
 
template<typename ... ComponentTypes>
void VisitLinkedAllocation (const FEntityAllocation *Allocation, TComponentPtr< const ComponentTypes >... ReadKeys)
 
void VisitUnlinkedAllocation (const FEntityAllocation *Allocation)
 
template<typename HandlerType >
void ProcessInvalidatedOutputs (UMovieSceneEntitySystemLinker *Linker, HandlerType &&InHandler)
 
bool IsEmpty () const
 
template<typename HandlerType >
void Destroy (HandlerType &&InHandler)
 
void FindEntityIDs (ParamType Key, TArray< FMovieSceneEntityID > &OutEntityIDs) const
 
const OutputType * FindOutput (FMovieSceneEntityID EntityID) const
 
const OutputType * FindOutput (ParamType Key) const
 
bool NeedsRestoration (ParamType Key, bool bEnsureOutput=false) const
 
void SetNeedsRestoration (ParamType Key, bool bNeedsRestoration, bool bEnsureOutput=false)
 

Protected Member Functions

template<typename ... ComponentTypes>
void VisitActiveAllocationImpl (const FEntityAllocation *Allocation, TComponentPtr< const ComponentTypes >... Keys)
 
void VisitUnlinkedAllocationImpl (const FEntityAllocation *Allocation)
 
uint16 MakeOutput (FMovieSceneEntityID EntityID, ParamType InKey, bool bAlwaysInvalidate)
 
uint16 CreateOutputByKey (ParamType Key)
 
uint16 FindOutputByKey (ParamType Key) const
 
uint16 FindOutputByEntity (FMovieSceneEntityID EntityID) const
 
void ClearOutputByEntity (FMovieSceneEntityID EntityID)
 
bool IsOutputValid (uint16 OutputIndex)
 

Protected Attributes

TMap< FMovieSceneEntityID, uint16EntityToOutput
 
TMultiMap< uint16, FMovieSceneEntityIDOutputToEntity
 
TMap< KeyType, uint16KeyToOutput
 
TSparseArray< FOutputOutputs
 
TBitArray InvalidatedOutputs
 
TBitArray NewOutputs
 
bool bIsInitialized = false
 

Static Protected Attributes

static constexpr uint16 NO_OUTPUT = MAX_uint16
 

Detailed Description

template<typename OutputType, typename... InputKeyTypes>
struct UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >

Templated utility class that assists in tracking the state of many -> one data relationships in an FEntityManager. InputKeyTypes defines the component type(s) which defines the key that determines whether an entity animates the same output. OutputType defines the user-specfied data to be associated with the multiple inputs (ie, its output)

Member Typedef Documentation

◆ KeyType

template<typename OutputType , typename... InputKeyTypes>
using UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::KeyType = TOverlappingEntityInput<InputKeyTypes...>

◆ ParamType

template<typename OutputType , typename... InputKeyTypes>
using UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::ParamType = typename TCallTraits<KeyType>::ParamType

Member Function Documentation

◆ ClearOutputByEntity()

template<typename OutputType , typename... InputKeyTypes>
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::ClearOutputByEntity ( FMovieSceneEntityID  EntityID)
inlineprotected

◆ CreateOutputByKey()

template<typename OutputType , typename... InputKeyTypes>
uint16 UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::CreateOutputByKey ( ParamType  Key)
inlineprotected

◆ Destroy()

template<typename OutputType , typename... InputKeyTypes>
template<typename HandlerType >
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::Destroy ( HandlerType &&  InHandler)
inline

Destroy all the outputs currently being tracked

◆ FindEntityIDs()

template<typename OutputType , typename... InputKeyTypes>
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::FindEntityIDs ( ParamType  Key,
TArray< FMovieSceneEntityID > &  OutEntityIDs 
) const
inline

◆ FindOutput() [1/2]

template<typename OutputType , typename... InputKeyTypes>
const OutputType * UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::FindOutput ( FMovieSceneEntityID  EntityID) const
inline

◆ FindOutput() [2/2]

template<typename OutputType , typename... InputKeyTypes>
const OutputType * UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::FindOutput ( ParamType  Key) const
inline

◆ FindOutputByEntity()

template<typename OutputType , typename... InputKeyTypes>
uint16 UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::FindOutputByEntity ( FMovieSceneEntityID  EntityID) const
inlineprotected

◆ FindOutputByKey()

template<typename OutputType , typename... InputKeyTypes>
uint16 UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::FindOutputByKey ( ParamType  Key) const
inlineprotected

◆ IsEmpty()

template<typename OutputType , typename... InputKeyTypes>
bool UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::IsEmpty ( ) const
inline

◆ IsInitialized()

template<typename OutputType , typename... InputKeyTypes>
bool UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::IsInitialized ( ) const
inline

◆ IsOutputValid()

template<typename OutputType , typename... InputKeyTypes>
bool UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::IsOutputValid ( uint16  OutputIndex)
inlineprotected

◆ MakeOutput()

template<typename OutputType , typename... InputKeyTypes>
uint16 UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::MakeOutput ( FMovieSceneEntityID  EntityID,
ParamType  InKey,
bool  bAlwaysInvalidate 
)
inlineprotected

◆ NeedsRestoration()

template<typename OutputType , typename... InputKeyTypes>
bool UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::NeedsRestoration ( ParamType  Key,
bool  bEnsureOutput = false 
) const
inline

◆ ProcessInvalidatedOutputs()

template<typename OutputType , typename... InputKeyTypes>
template<typename HandlerType >
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::ProcessInvalidatedOutputs ( UMovieSceneEntitySystemLinker Linker,
HandlerType &&  InHandler 
)
inline

Process any outputs that were invalidated as a result of Update being called using a custom handler.

InHandler Any user-defined handler type that contains the following named functions: // Called when an output is first created void InitializeOutput(InputKeyTypes... Inputs, TArrayView<const FMovieSceneEntityID> Inputs, OutputType* Output, FEntityOutputAggregate Aggregate);

// Called when an output has been updated with new inputs void UpdateOutput(InputKeyTypes... Inputs, TArrayView<const FMovieSceneEntityID> Inputs, OutputType* Output, FEntityOutputAggregate Aggregate);

// Called when all an output's inputs are no longer relevant, and as such the output should be destroyed (or restored) void DestroyOutput(InputKeyTypes... Inputs, OutputType* Output, FEntityOutputAggregate Aggregate);

◆ SetNeedsRestoration()

template<typename OutputType , typename... InputKeyTypes>
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::SetNeedsRestoration ( ParamType  Key,
bool  bNeedsRestoration,
bool  bEnsureOutput = false 
)
inline

◆ Update()

template<typename OutputType , typename... InputKeyTypes>
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::Update ( UMovieSceneEntitySystemLinker Linker,
TComponentTypeID< InputKeyTypes >...  InKeyComponents,
const FEntityComponentFilter InFilter 
)
inline

Update this tracker by iterating any entity that contains InKeyComponent, and matches the additional optional filter Only entities tagged as NeedsLink or NeedsUnlink are iterated, invalidating their outputs

◆ UpdateFromComponents()

template<typename OutputType , typename... InputKeyTypes>
template<typename ... ComponentTypes>
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::UpdateFromComponents ( UMovieSceneEntitySystemLinker Linker,
const FEntityComponentFilter InFilter,
TComponentTypeID< ComponentTypes >...  InKeyComponents 
)
inline

Update this tracker by iterating any entity that contains InKeyComponent, and matches the additional optional filter Only entities tagged as NeedsLink or NeedsUnlink are iterated, invalidating their outputs

◆ UpdateUnlinkedOnly()

template<typename OutputType , typename... InputKeyTypes>
template<typename ... ComponentTypes>
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::UpdateUnlinkedOnly ( UMovieSceneEntitySystemLinker Linker,
TComponentTypeID< ComponentTypes >...  InKeyComponent,
const FEntityComponentFilter InFilter 
)
inline

Update this tracker by iterating any entity that contains InKeyComponent, and matches the additional optional filter Only entities tagged as NeedsUnlink are iterated, invalidating their outputs

◆ VisitActiveAllocation()

template<typename OutputType , typename... InputKeyTypes>
template<typename ... ComponentTypes>
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::VisitActiveAllocation ( const FEntityAllocation Allocation,
TComponentPtr< const ComponentTypes >...  ReadKeys 
)
inline

Update this tracker by (re)linking the specified allocation

◆ VisitActiveAllocationImpl()

template<typename OutputType , typename... InputKeyTypes>
template<typename ... ComponentTypes>
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::VisitActiveAllocationImpl ( const FEntityAllocation Allocation,
TComponentPtr< const ComponentTypes >...  Keys 
)
inlineprotected

◆ VisitLinkedAllocation()

template<typename OutputType , typename... InputKeyTypes>
template<typename ... ComponentTypes>
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::VisitLinkedAllocation ( const FEntityAllocation Allocation,
TComponentPtr< const ComponentTypes >...  ReadKeys 
)
inline

Update this tracker by (re)linking the specified allocation

◆ VisitUnlinkedAllocation()

template<typename OutputType , typename... InputKeyTypes>
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::VisitUnlinkedAllocation ( const FEntityAllocation Allocation)
inline

Update this tracker by unlinking the specified allocation

◆ VisitUnlinkedAllocationImpl()

template<typename OutputType , typename... InputKeyTypes>
void UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::VisitUnlinkedAllocationImpl ( const FEntityAllocation Allocation)
inlineprotected

Member Data Documentation

◆ bIsInitialized

template<typename OutputType , typename... InputKeyTypes>
bool UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::bIsInitialized = false
protected

◆ EntityToOutput

template<typename OutputType , typename... InputKeyTypes>
TMap<FMovieSceneEntityID, uint16> UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::EntityToOutput
protected

◆ InvalidatedOutputs

template<typename OutputType , typename... InputKeyTypes>
TBitArray UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::InvalidatedOutputs
protected

◆ KeyToOutput

template<typename OutputType , typename... InputKeyTypes>
TMap<KeyType, uint16> UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::KeyToOutput
protected

◆ NewOutputs

template<typename OutputType , typename... InputKeyTypes>
TBitArray UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::NewOutputs
protected

◆ NO_OUTPUT

template<typename OutputType , typename... InputKeyTypes>
constexpr uint16 UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::NO_OUTPUT = MAX_uint16
staticconstexprprotected

◆ Outputs

template<typename OutputType , typename... InputKeyTypes>
TSparseArray< FOutput > UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::Outputs
protected

◆ OutputToEntity

template<typename OutputType , typename... InputKeyTypes>
TMultiMap<uint16, FMovieSceneEntityID> UE::MovieScene::TOverlappingEntityTrackerImpl< OutputType, InputKeyTypes >::OutputToEntity
protected

The documentation for this struct was generated from the following file: