UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DataflowSimulationManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "UObject/Interface.h"
11
12#include "DataflowSimulationManager.generated.h"
13
14#define UE_API DATAFLOWSIMULATION_API
15
18
19namespace UE::Dataflow
20{
21 namespace Private
22 {
45 }
48}
49
50UCLASS(MinimalAPI)
52{
54
55public:
57 virtual ~UDataflowSimulationManager() override = default;
58
60 static UE_API void OnStartup();
61
63 static UE_API void OnShutdown();
64
65 // Begin FTickableGameObject overrides
66 UE_API virtual void Tick(float DeltaTime) override;
67 virtual bool IsTickableInEditor() const override { return true; }
68 UE_API virtual ETickableTickType GetTickableTickType() const override;
69 UE_API virtual bool DoesSupportWorldType(const EWorldType::Type WorldType) const override;
70 UE_API virtual TStatId GetStatId() const override;
71 // End FTickableGameObject overrides
72
73 // Begin USubsystem overrides
75 UE_API virtual void Deinitialize() override;
76 // End USubsystem overrides
77
79 UE_API void AdvanceSimulationProxies(const float DeltaTime, const float SimulationTime);
80
82 UE_API bool HasSimulationInterface(const IDataflowSimulationInterface* SimulationInterface) const;
83
85 UE_API void AddSimulationInterface(IDataflowSimulationInterface* SimulationInterface);
86
88 UE_API void RemoveSimulationInterface(const IDataflowSimulationInterface* SimulationInterface);
89
91 UE_API void ReadSimulationInterfaces(const float DeltaTime, const bool bAsyncTask);
92
94 UE_API void WriteSimulationInterfaces(const float DeltaTime, const bool bAsyncTask);
95
97 UE_API void ReadRestartData();
98
100 UE_API void InitSimulationInterfaces();
101
103 UE_API void ResetSimulationInterfaces();
104
106 UE_API void CompleteSimulationTasks();
107
109 UE_API void StartSimulationTasks(const float DeltaTime, const float SimulationTime);
110
112 bool GetSimulationEnabled() const { return bIsSimulationEnabled; }
113
115 void SetSimulationEnabled(const bool bSimulationEnabled) {bIsSimulationEnabled = bSimulationEnabled;}
116
118 void SetSimulationStepping(const bool bSimulationStepping) {bStepSimulationScene = bSimulationStepping;}
119
121 UE_API TSharedPtr<UE::Dataflow::FDataflowSimulationContext> GetSimulationContext(const TObjectPtr<UDataflow>& DataflowAsset) const;
122
123private :
124
126 UE_API void PreProcessSimulation(const float DeltaTime);
127
129 UE_API void PostProcessSimulation(const float DeltaTime);
130
132 static UE_API FDelegateHandle OnObjectPropertyChangedHandle;
133
135 static UE_API FDelegateHandle OnWorldPostActorTick;
136
138 static UE_API FDelegateHandle OnCreatePhysicsStateHandle;
139
141 static UE_API FDelegateHandle OnDestroyPhysicsStateHandle;
142
145
147 TArray<FGraphEventRef> SimulationTasks;
148
150 bool bIsSimulationEnabled = true;
151
153 bool bStepSimulationScene = false;
154};
155
157UINTERFACE(MinimalAPI, Blueprintable)
162
164{
166
167public:
169 UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="Dataflow")
170 void PreDataflowSimulationTick(const float SimulationTime, const float DeltaTime);
171
173 UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="Dataflow")
174 void PostDataflowSimulationTick(const float SimulationTime, const float DeltaTime);
175};
176
177#undef UE_API
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition DataflowSimulationManager.h:14
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UINTERFACE(...)
Definition ObjectMacros.h:780
#define UCLASS(...)
Definition ObjectMacros.h:776
ETickableTickType
Definition Tickable.h:20
Definition IDelegateInstance.h:14
Definition SubsystemCollection.h:15
Definition DataflowSimulationManager.h:164
void PreDataflowSimulationTick(const float SimulationTime, const float DeltaTime)
void PostDataflowSimulationTick(const float SimulationTime, const float DeltaTime)
Definition DataflowSimulationInterface.h:42
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition DataflowSimulationManager.h:159
Definition DataflowSimulationManager.h:52
void SetSimulationEnabled(const bool bSimulationEnabled)
Definition DataflowSimulationManager.h:115
virtual bool IsTickableInEditor() const override
Definition DataflowSimulationManager.h:67
virtual ~UDataflowSimulationManager() override=default
bool GetSimulationEnabled() const
Definition DataflowSimulationManager.h:112
void SetSimulationStepping(const bool bSimulationStepping)
Definition DataflowSimulationManager.h:118
Definition Interface.h:19
Definition WorldSubsystem.h:76
Type
Definition EngineTypes.h:1264
Definition OverriddenPropertySet.cpp:45
Definition DataflowAnyType.cpp:10
void RegisterSimulationInterface(const TObjectPtr< UObject > &SimulationObject)
Definition DataflowSimulationManager.cpp:135
void UnregisterSimulationInterface(const TObjectPtr< UObject > &SimulationObject)
Definition DataflowSimulationManager.cpp:155
Definition DataflowSimulationProxy.h:15
Definition ObjectPtr.h:488
Definition LightweightStats.h:416
Definition Tuple.h:652
Definition DataflowSimulationManager.h:25
bool IsEmpty() const
Definition DataflowSimulationManager.h:33
TSharedPtr< UE::Dataflow::FDataflowSimulationContext > SimulationContext
Definition DataflowSimulationManager.h:30
TMap< FString, TSet< IDataflowSimulationInterface * > > SimulationInterfaces
Definition DataflowSimulationManager.h:27