UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Dataflow::TSimulationContext< Base > Class Template Reference

#include <DataflowSimulationContext.h>

+ Inheritance diagram for UE::Dataflow::TSimulationContext< Base >:

Public Member Functions

 DATAFLOW_CONTEXT_INTERNAL (UE::Dataflow::TEngineContext< Base >, TSimulationContext)
 
 TSimulationContext (const TObjectPtr< UObject > &InOwner)
 
virtual ~TSimulationContext () override
 
void SetTimingInfos (const float DeltaSeconds, const float TimeSeconds)
 
float GetDeltaTime () const
 
float GetSimulationTime () const
 
template<typename ProxyType >
void GetTypedProxies (TArray< ProxyType * > &FilteredProxies) const
 
DATAFLOWSIMULATION_API void GetSimulationProxies (const FString &ProxyType, const TArray< FString > &SimulationGroups, TArray< FDataflowSimulationProxy * > &FilteredProxies) const
 
DATAFLOWSIMULATION_API void AddSimulationProxy (const FString &ProxyType, FDataflowSimulationProxy *SimulationProxy)
 
DATAFLOWSIMULATION_API void RemoveSimulationProxy (const FString &ProxyType, const FDataflowSimulationProxy *SimulationProxy)
 
DATAFLOWSIMULATION_API void ResetSimulationProxies ()
 
DATAFLOWSIMULATION_API int32 NumSimulationProxies (const FString &ProxyType) const
 
DATAFLOWSIMULATION_API void RegisterProxyGroups ()
 
DATAFLOWSIMULATION_API void BuildGroupBits (const TArray< FString > &SimulationGroups, TBitArray<> &GroupBits) const
 
void PushIterationIndex ()
 
void PopIterationIndex ()
 
void SetIterationIndex (const int32 IterationIndex)
 
int32 GetIterationIndex ()
 
- Public Member Functions inherited from UE::Dataflow::TEngineContext< Base >
 DATAFLOW_CONTEXT_INTERNAL (Base, TEngineContext)
 
 TEngineContext (const TObjectPtr< UObject > &InOwner)
 
virtual ~TEngineContext ()
 
int32 GetKeys (TSet< FContextCacheKey > &InKeys) const
 
const TUniquePtr< FContextCacheElementBase > * GetBaseData (FContextCacheKey Key) const
 
virtual void Serialize (FArchive &Ar)
 
- Public Member Functions inherited from UE::Dataflow::FContextSingle
 DATAFLOW_CONTEXT_INTERNAL (FContext, FContextSingle)
 
- Public Member Functions inherited from UE::Dataflow::FContext
 FContext ()
 
virtual ~FContext ()=default
 
virtual bool IsA (FName InType) const
 
virtual FName GetType () const
 
template<class T >
const T * AsType () const
 
template<class T >
T * AsType ()
 
bool IsThreaded () const
 
DATAFLOWCORE_API void SetThreaded (bool bValue)
 
DATAFLOWCORE_API bool IsAsyncEvaluating () const
 
DATAFLOWCORE_API void CancelAsyncEvaluation ()
 
DATAFLOWCORE_API void GetAsyncEvaluationStats (int32 &OutNumPendingTasks, int32 &OutNumRunningTasks, int32 &OutNumCompletedTasks) const
 
virtual DATAFLOWCORE_API void SetDataImpl (FContextCacheKey Key, TUniquePtr< FContextCacheElementBase > &&DataStoreEntry)
 
virtual DATAFLOWCORE_API const TUniquePtr< FContextCacheElementBase > * GetDataImpl (FContextCacheKey Key) const
 
virtual DATAFLOWCORE_API bool HasDataImpl (FContextCacheKey Key, FTimestamp InTimestamp=FTimestamp::Invalid) const
 
virtual DATAFLOWCORE_API bool IsEmptyImpl () const
 
DATAFLOWCORE_API void Evaluate (const FDataflowNode *Node, const FDataflowOutput *Output, FOnPostEvaluationFunction PostEvaluationFunction)
 
virtual DATAFLOWCORE_API void Evaluate (const FDataflowNode *Node, const FDataflowOutput *Output)
 
virtual DATAFLOWCORE_API bool Evaluate (const FDataflowOutput &Connection)
 
DATAFLOWCORE_API void ClearAllData ()
 
template<typename T >
void SetData (FContextCacheKey InKey, const FProperty *InProperty, T &&InValue, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API void SetDataFromStructView (FContextCacheKey InKey, const FProperty *InProperty, const FConstStructView &StructView, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API void SetDataFromStructArrayView (FContextCacheKey InKey, const FProperty *InProperty, const FConstStructArrayView &StructArrayView, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API void SetDataReference (FContextCacheKey Key, const FProperty *Property, FContextCacheKey ReferenceKey, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API void SetNullData (FContextCacheKey InKey, const FProperty *InProperty, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API int32 GetArraySizeFromData (const FContextCacheKey InKey) const
 
DATAFLOWCORE_API void SetArrayElementFromData (const FContextCacheKey InArrayKey, int32 Index, const FContextCacheKey InElementKey, const FProperty *InProperty, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API bool CopyDataToAnotherContext (const FContextCacheKey InSourceKey, FContext &TargetContext, const FContextCacheKey InTargetKey, const FProperty *InProperty, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp) const
 
template<class T >
const T & GetData (FContextCacheKey Key, const FProperty *InProperty, const T &Default=T()) const
 
DATAFLOWCORE_API const voidGetUntypedData (FContextCacheKey Key, const FProperty *InProperty) const
 
DATAFLOWCORE_API bool HasData (FContextCacheKey Key, FTimestamp InTimestamp=FTimestamp::Invalid) const
 
DATAFLOWCORE_API bool IsEmpty () const
 
virtual DATAFLOWCORE_API const TUniquePtr< FContextCacheElementBase > * FindCacheElement (FContextCacheKey InKey) const override
 
virtual DATAFLOWCORE_API bool HasCacheElement (FContextCacheKey InKey, FTimestamp InTimestamp=FTimestamp::Invalid) const override
 
virtual DATAFLOWCORE_API UObjectAddAsset (const FString &AssetPath, const UClass *AssetClass) override
 
virtual DATAFLOWCORE_API UObjectCommitAsset (const FString &AssetPath) override
 
virtual DATAFLOWCORE_API void ClearAssets () override
 
DATAFLOWCORE_API FTimestamp GetTimestamp (FContextCacheKey Key) const
 
DATAFLOWCORE_API void PushToCallstack (const FDataflowConnection *Connection)
 
DATAFLOWCORE_API void PopFromCallstack (const FDataflowConnection *Connection)
 
DATAFLOWCORE_API bool IsInCallstack (const FDataflowConnection *Connection) const
 
DATAFLOWCORE_API FContextPerfData::FData GetPerfDataForNode (const FDataflowNode &Node) const
 
DATAFLOWCORE_API void ResetPerfDataForNode (const FDataflowNode &Node)
 
DATAFLOWCORE_API void AddExternalPerfData (const FContextPerfData &InPerfData)
 
DATAFLOWCORE_API void ClearAllPerfData ()
 
DATAFLOWCORE_API void EnablePerfData (bool bEnable)
 
DATAFLOWCORE_API bool IsPerfDataEnabled () const
 
DATAFLOWCORE_API bool IsCacheEntryAfterTimestamp (FContextCacheKey InKey, const FTimestamp InTimestamp) const
 
DATAFLOWCORE_API void Info (const FString &InInfo, const FDataflowNode *InNode=nullptr, const FDataflowOutput *InOutput=nullptr)
 
DATAFLOWCORE_API int32 GetNumInfo () const
 
DATAFLOWCORE_API void Warning (const FString &InWarning, const FDataflowNode *InNode=nullptr, const FDataflowOutput *InOutput=nullptr)
 
DATAFLOWCORE_API int32 GetNumWarnings () const
 
DATAFLOWCORE_API void Error (const FString &InError, const FDataflowNode *InNode=nullptr, const FDataflowOutput *InOutput=nullptr)
 
DATAFLOWCORE_API int32 GetNumErrors () const
 
bool NodeHasWarning (const FDataflowNode *InNode)
 
bool NodeHasError (const FDataflowNode *InNode)
 
bool NodeFailed (const FDataflowNode *InNode)
 
DATAFLOWCORE_API void ClearNodesData ()
 
DATAFLOWCORE_API void ClearNodeData (const FDataflowNode *InNode)
 
 DECLARE_MULTICAST_DELEGATE_TwoParams (FOnNodeBeginEvaluateMulticast, const FDataflowNode *Node, const FDataflowOutput *Output)
 
 DECLARE_MULTICAST_DELEGATE_TwoParams (FOnNodeFinishEvaluateMulticast, const FDataflowNode *Node, const FDataflowOutput *Output)
 
 DECLARE_MULTICAST_DELEGATE_ThreeParams (FOnContextHasInfoMulticast, const FDataflowNode *Node, const FDataflowOutput *Output, const FString &Info)
 
 DECLARE_MULTICAST_DELEGATE_ThreeParams (FOnContextHasWarningMulticast, const FDataflowNode *Node, const FDataflowOutput *Output, const FString &Info)
 
 DECLARE_MULTICAST_DELEGATE_ThreeParams (FOnContextHasErrorMulticast, const FDataflowNode *Node, const FDataflowOutput *Output, const FString &Info)
 
- Public Member Functions inherited from UE::Dataflow::IContextAssetStoreInterface
template<typename T >
T * AddAssetTyped (const FString &AssetPath)
 

Additional Inherited Members

- Static Public Member Functions inherited from UE::Dataflow::FContext
static FName StaticType ()
 
- Public Attributes inherited from UE::Dataflow::TEngineContext< Base >
TObjectPtr< UObjectOwner = nullptr
 
- Public Attributes inherited from UE::Dataflow::FContext
FOnNodeBeginEvaluateMulticast OnNodeBeginEvaluateMulticast
 
FOnNodeFinishEvaluateMulticast OnNodeFinishEvaluateMulticast
 
FOnContextHasInfoMulticast OnContextHasInfo
 
FOnContextHasWarningMulticast OnContextHasWarning
 
FOnContextHasErrorMulticast OnContextHasError
 
- Protected Member Functions inherited from UE::Dataflow::FContext
 FContext (FContext &&)=delete
 
FContextoperator= (FContext &&)=delete
 
 FContext (const FContext &)=delete
 
FContextoperator= (const FContext &)=delete
 
DATAFLOWCORE_API void BeginContextEvaluation (const FDataflowNode *Node, const FDataflowOutput *Output)
 
DATAFLOWCORE_API const FContextPerfDataGetPerfData () const
 
- Protected Attributes inherited from UE::Dataflow::FContext
FContextCache DataStore
 
TUniquePtr< FCriticalSectionDataLock
 
FContextEvaluator AsyncEvaluator
 

Detailed Description

template<typename Base = UE::Dataflow::FContextSingle>
class UE::Dataflow::TSimulationContext< Base >

Simulation context that will be used by all the simulation nodes

Constructor & Destructor Documentation

◆ TSimulationContext()

template<typename Base = UE::Dataflow::FContextSingle>
UE::Dataflow::TSimulationContext< Base >::TSimulationContext ( const TObjectPtr< UObject > &  InOwner)
inlineexplicit

◆ ~TSimulationContext()

template<typename Base = UE::Dataflow::FContextSingle>
virtual UE::Dataflow::TSimulationContext< Base >::~TSimulationContext ( )
inlineoverridevirtual

Member Function Documentation

◆ AddSimulationProxy()

template<typename Base >
void UE::Dataflow::TSimulationContext< Base >::AddSimulationProxy ( const FString &  ProxyType,
FDataflowSimulationProxy SimulationProxy 
)

Add simulation proxy to the context

◆ BuildGroupBits()

template<typename Base >
void UE::Dataflow::TSimulationContext< Base >::BuildGroupBits ( const TArray< FString > &  SimulationGroups,
TBitArray<> &  GroupBits 
) const

Build group bits based on the string array

◆ DATAFLOW_CONTEXT_INTERNAL()

template<typename Base = UE::Dataflow::FContextSingle>
UE::Dataflow::TSimulationContext< Base >::DATAFLOW_CONTEXT_INTERNAL ( UE::Dataflow::TEngineContext< Base >  ,
TSimulationContext< Base >   
)

◆ GetDeltaTime()

template<typename Base = UE::Dataflow::FContextSingle>
float UE::Dataflow::TSimulationContext< Base >::GetDeltaTime ( ) const
inline

Get the delta time in seconds

◆ GetIterationIndex()

template<typename Base = UE::Dataflow::FContextSingle>
int32 UE::Dataflow::TSimulationContext< Base >::GetIterationIndex ( )
inline

Get the last iteration index

◆ GetSimulationProxies()

template<typename Base >
void UE::Dataflow::TSimulationContext< Base >::GetSimulationProxies ( const FString &  ProxyType,
const TArray< FString > &  SimulationGroups,
TArray< FDataflowSimulationProxy * > &  FilteredProxies 
) const

Filter the physics solvers matching the groups

◆ GetSimulationTime()

template<typename Base = UE::Dataflow::FContextSingle>
float UE::Dataflow::TSimulationContext< Base >::GetSimulationTime ( ) const
inline

Get the simulation time in seconds

◆ GetTypedProxies()

template<typename Base >
template<typename ProxyType >
void UE::Dataflow::TSimulationContext< Base >::GetTypedProxies ( TArray< ProxyType * > &  FilteredProxies) const

Get the typed proxies

◆ NumSimulationProxies()

template<typename Base >
int32 UE::Dataflow::TSimulationContext< Base >::NumSimulationProxies ( const FString &  ProxyType) const

Return the number of physics solvers

◆ PopIterationIndex()

template<typename Base = UE::Dataflow::FContextSingle>
void UE::Dataflow::TSimulationContext< Base >::PopIterationIndex ( )
inline

Pop the last level of iteration indices

◆ PushIterationIndex()

template<typename Base = UE::Dataflow::FContextSingle>
void UE::Dataflow::TSimulationContext< Base >::PushIterationIndex ( )
inline

Push another level of iteration indices

◆ RegisterProxyGroups()

template<typename Base >
void UE::Dataflow::TSimulationContext< Base >::RegisterProxyGroups ( )

Register all the proxy groups used in the proxy

◆ RemoveSimulationProxy()

template<typename Base >
void UE::Dataflow::TSimulationContext< Base >::RemoveSimulationProxy ( const FString &  ProxyType,
const FDataflowSimulationProxy SimulationProxy 
)

Remove simulation proxy from the context

◆ ResetSimulationProxies()

template<typename Base >
void UE::Dataflow::TSimulationContext< Base >::ResetSimulationProxies ( )

Reset all the simulation proxies

◆ SetIterationIndex()

template<typename Base = UE::Dataflow::FContextSingle>
void UE::Dataflow::TSimulationContext< Base >::SetIterationIndex ( const int32  IterationIndex)
inline

Set the last iteration index

◆ SetTimingInfos()

template<typename Base = UE::Dataflow::FContextSingle>
void UE::Dataflow::TSimulationContext< Base >::SetTimingInfos ( const float  DeltaSeconds,
const float  TimeSeconds 
)
inline

Set the timing infos


The documentation for this class was generated from the following files: