UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DataflowSimulationNodes.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8
9#include "DataflowSimulationNodes.generated.h"
10
11#define UE_API DATAFLOWSIMULATION_API
12
16USTRUCT(BlueprintType)
18{
20
21 /* Simulation proxy used to pass information in between nodes */
22 FDataflowSimulationProxy* SimulationProxy;
23};
24
31USTRUCT()
33{
35
37 : Super() { }
38
42
45
46 static FName StaticType() { return FName("FDataflowSimulationNode"); }
47
48 virtual bool IsA(FName InType) const override
49 {
50 return InType.ToString().Equals(StaticType().ToString())
51 || Super::IsA(InType);
52 }
53
55 virtual void Evaluate(UE::Dataflow::FContext& Context, const FDataflowOutput* Output) const override
56 {
58 {
60 EvaluateSimulation(SimulationContext, Output);
61
62 }
63 }
64
66
68 virtual void EvaluateSimulation(UE::Dataflow::FDataflowSimulationContext& SimulationContext, const FDataflowOutput* Output) const {};
69};
70
77USTRUCT()
79{
81
83 : Super() { }
84
88
91
92 static FName StaticType() { return FName("FDataflowInvalidNode"); }
93
94 virtual bool IsA(FName InType) const override
95 {
96 return InType.ToString().Equals(StaticType().ToString())
97 || Super::IsA(InType);
98 }
99};
100
107USTRUCT()
109{
111
113 : Super() { }
114
118
121
122 static FName StaticType() { return FName("FDataflowExecutionNode"); }
123
124 virtual bool IsA(FName InType) const override
125 {
126 return InType.ToString().Equals(StaticType().ToString())
127 || Super::IsA(InType);
128 }
129};
130
132USTRUCT()
134{
136
137public:
138 FDataflowSimulationTime(): DeltaTime(0.0f), CurrentTime(0.0f)
139 {}
140
141 FDataflowSimulationTime(const float InDeltaTime, const float InCurrentTime) : DeltaTime(InDeltaTime), CurrentTime(InCurrentTime)
142 {}
143
145 UPROPERTY(Transient, SkipSerialization)
146 float DeltaTime = 0.0f;
147
149 UPROPERTY(Transient, SkipSerialization)
150 float CurrentTime = 0.0f;
151
153 UPROPERTY(Transient, SkipSerialization)
154 float TimeOffset = 0.0f;
155};
156
158USTRUCT(meta = (DataflowSimulation))
160{
163
164public:
165
168 {
169 RegisterOutputConnection(&SimulationTime);
170 }
171
173 UPROPERTY(Transient, SkipSerialization, Meta = (DataflowOutput))
175
177 UE_API virtual void EvaluateSimulation(UE::Dataflow::FDataflowSimulationContext& SimulationContext, const FDataflowOutput* Output) const override;
178};
179
181USTRUCT(meta = (DataflowSimulation))
183{
186
187public:
188
191 {
192 RegisterOutputConnection(&PhysicsSolvers);
193 }
194
196 UPROPERTY(Transient, SkipSerialization, Meta = (DataflowOutput))
198
200 UPROPERTY(EditAnywhere, Category="Simulation")
201 TArray<FString> SimulationGroups;
202
204 virtual void EvaluateSimulation(UE::Dataflow::FDataflowSimulationContext& SimulationContext, const FDataflowOutput* Output) const override;
205};
206
208USTRUCT(meta = (DataflowSimulation))
210{
213
214public:
215
218 {
219 RegisterInputConnection(&SimulationTime);
220 RegisterInputConnection(&PhysicsSolvers);
221 RegisterOutputConnection(&PhysicsSolvers, &PhysicsSolvers);
222 }
223
225 UPROPERTY(Transient, SkipSerialization, Meta = (DataflowInput))
227
229 UPROPERTY(Transient, SkipSerialization, Meta = (DataflowInput, DataflowOutput, DataflowPassthrough = "PhysicsSolvers"))
231
233 virtual void EvaluateSimulation(UE::Dataflow::FDataflowSimulationContext& SimulationContext, const FDataflowOutput* Output) const override;
234};
235
237USTRUCT(meta = (DataflowSimulation))
239{
242
243public:
244
247 {
248 RegisterInputConnection(&SimulationProxies);
249 RegisterOutputConnection(&FilteredProxies);
250 }
251
253 UPROPERTY(Transient, SkipSerialization, Meta = (DataflowInput))
255
257 UPROPERTY(Transient, SkipSerialization, Meta = (DataflowOutput))
259
261 UPROPERTY(EditAnywhere, Category="Simulation")
262 TArray<FString> SimulationGroups;
263
265 virtual void EvaluateSimulation(UE::Dataflow::FDataflowSimulationContext& SimulationContext, const FDataflowOutput* Output) const override;
266};
267
269USTRUCT(meta = (DataflowSimulation))
271{
274
275public:
276
279 {
280 RegisterInputConnection(&SimulationProxies);
281 }
282
284 UPROPERTY(Transient, SkipSerialization, Meta = (DataflowInput))
286
288 virtual void EvaluateSimulation(UE::Dataflow::FDataflowSimulationContext& SimulationContext, const FDataflowOutput* Output) const override;
289};
290
291namespace UE::Dataflow
292{
293 void RegisterDataflowSimulationNodes();
294}
295
296
297#undef UE_API
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DATAFLOW_NODE_DEFINE_INTERNAL(TYPE, DISPLAY_NAME, CATEGORY, TAGS)
Definition DataflowNode.h:951
#define UE_API
Definition DataflowSimulationNodes.h:11
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
Definition NameTypes.h:617
Definition Array.h:670
static const FString SimulationTag
Definition DataflowObject.h:127
Definition DataflowNodeParameters.h:134
static FName StaticType()
Definition DataflowNodeParameters.h:151
Definition DataflowSimulationContext.h:15
Definition AdvancedWidgetsModule.cpp:13
Definition DataflowSimulationNodes.h:210
FAdvancePhysicsSolversDataflowNode(const UE::Dataflow::FNodeParameters &InParam, FGuid InGuid=FGuid::NewGuid())
Definition DataflowSimulationNodes.h:216
Definition DataflowSimulationNodes.h:109
virtual bool IsA(FName InType) const override
Definition DataflowSimulationNodes.h:124
static FName StaticType()
Definition DataflowSimulationNodes.h:122
FDataflowExecutionNode(const UE::Dataflow::FNodeParameters &Param, FGuid InGuid=FGuid::NewGuid())
Definition DataflowSimulationNodes.h:115
virtual ~FDataflowExecutionNode()
Definition DataflowSimulationNodes.h:120
Definition DataflowSimulationNodes.h:79
static FName StaticType()
Definition DataflowSimulationNodes.h:92
virtual ~FDataflowInvalidNode()
Definition DataflowSimulationNodes.h:90
virtual bool IsA(FName InType) const override
Definition DataflowSimulationNodes.h:94
FDataflowInvalidNode(const UE::Dataflow::FNodeParameters &Param, FGuid InGuid=FGuid::NewGuid())
Definition DataflowSimulationNodes.h:85
Definition DataflowNode.h:52
Definition DataflowInputOutput.h:149
Definition DataflowSimulationNodes.h:33
virtual bool IsA(FName InType) const override
Definition DataflowSimulationNodes.h:48
static FName StaticType()
Definition DataflowSimulationNodes.h:46
virtual void EvaluateSimulation(UE::Dataflow::FDataflowSimulationContext &SimulationContext, const FDataflowOutput *Output) const
Definition DataflowSimulationNodes.h:68
FDataflowSimulationNode(const UE::Dataflow::FNodeParameters &Param, FGuid InGuid=FGuid::NewGuid())
Definition DataflowSimulationNodes.h:39
virtual ~FDataflowSimulationNode()
Definition DataflowSimulationNodes.h:44
virtual void Evaluate(UE::Dataflow::FContext &Context, const FDataflowOutput *Output) const override
Definition DataflowSimulationNodes.h:55
Definition DataflowSimulationNodes.h:18
Definition DataflowSimulationProxy.h:15
Definition DataflowSimulationNodes.h:134
FDataflowSimulationTime()
Definition DataflowSimulationNodes.h:138
FDataflowSimulationTime(const float InDeltaTime, const float InCurrentTime)
Definition DataflowSimulationNodes.h:141
Definition DataflowSimulationNodes.h:239
FFilterSimulationProxiesDataflowNode(const UE::Dataflow::FNodeParameters &InParam, FGuid InGuid=FGuid::NewGuid())
Definition DataflowSimulationNodes.h:245
Definition DataflowSimulationNodes.h:183
FGetPhysicsSolversDataflowNode(const UE::Dataflow::FNodeParameters &InParam, FGuid InGuid=FGuid::NewGuid())
Definition DataflowSimulationNodes.h:189
Definition DataflowSimulationNodes.h:160
FGetSimulationTimeDataflowNode(const UE::Dataflow::FNodeParameters &InParam, FGuid InGuid=FGuid::NewGuid())
Definition DataflowSimulationNodes.h:166
Definition Guid.h:109
static CORE_API FGuid NewGuid()
Definition Guid.cpp:236
Definition DataflowSimulationNodes.h:271
FSimulationProxiesTerminalDataflowNode(const UE::Dataflow::FNodeParameters &InParam, FGuid InGuid=FGuid::NewGuid())
Definition DataflowSimulationNodes.h:277
Definition DataflowNode.h:22