UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DataflowObject.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "CoreMinimal.h"
11#include "EdGraph/EdGraph.h"
12#include "Templates/Function.h"
15#include "UObject/ObjectPtr.h"
17
20
21#include "DataflowObject.generated.h"
22
23class FArchive;
24struct FDataflowNode;
25class UDataflow;
26class UObject;
27class UDataflowEdNode;
29class UMaterial;
30namespace UE::Dataflow { class FGraph; }
31
32namespace UE::Dataflow
33{
35 {
36 Created,
37 Renamed,
39 Deleted,
41 };
42}
43
60
86
88UENUM()
90{
93
96};
97
104UCLASS(BlueprintType, customconstructor, MinimalAPI)
106{
108
110 TArray< TObjectPtr<const UDataflowEdNode> > RenderTargets; // Not Serialized
111 TArray< TObjectPtr<const UDataflowEdNode> > WireframeRenderTargets; // Not Serialized
113 DATAFLOWENGINE_API void PostEditCallback();
114
115public:
117
121 UE_DEPRECATED(5.1, "Use Blueprint library version of the function")
122 DATAFLOWENGINE_API void EvaluateTerminalNodeByName(FName NodeName, UObject* Asset);
123
124 virtual bool IsEditorOnly() const { return true; }
125
127 static const inline FString SimulationTag = TEXT("DataflowSimulationTag");
128
129 //~ Begin UObject interface
130 virtual void BeginDestroy() override;
131 //~ End UObject interface
132
133 //~ Begin IMeshDeformerProducer interface
134 virtual FMeshDeformerBeginDestroyEvent& OnBeginDestroy() override {return BeginDestroyEvent;};
135 //~ End IMeshDeformerProducer interface
136
137 //~ Begin IDataflowGraphInterface interface
138 virtual TSharedPtr<UE::Dataflow::FGraph> GetDataflowGraph() const override { return Dataflow; }
139 //~ End IDataflowGraphInterface interface
140
141public:
142 UPROPERTY(EditAnywhere, Category = "Evaluation")
143 bool bActive = true;
144
145 UPROPERTY(EditAnywhere, Category = "Evaluation", AdvancedDisplay )
147
148 UPROPERTY(EditAnywhere, Category = "Render")
150
151 UPROPERTY(EditAnywhere, Category = "Evaluation",meta=(EditConditionHides))
153
154 UPROPERTY()
156
157public:
159 static DATAFLOWENGINE_API void AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector);
160
161#if WITH_EDITOR
162 DATAFLOWENGINE_API virtual bool CanEditChange(const FProperty* InProperty) const override;
163 DATAFLOWENGINE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
164#endif
165 DATAFLOWENGINE_API virtual void PostLoad() override;
169
173
176 //ThisNC is a by-product of editing through the component.
177 UDataflow* ThisNC = const_cast<UDataflow*>(this);
178 return FDataflowAssetEdit(ThisNC, [ThisNC]() {ThisNC->PostEditCallback(); });
179 }
180
181 DATAFLOWENGINE_API TObjectPtr<const UDataflowEdNode> FindEdNodeByDataflowNodeGuid(const FGuid& Guid) const;
182 DATAFLOWENGINE_API TObjectPtr<UDataflowEdNode> FindEdNodeByDataflowNodeGuid(const FGuid& Guid);
183
184 //
185 // Render Targets
186 //
189 const TArray< TObjectPtr<const UDataflowEdNode> >& GetRenderTargets() const { return RenderTargets; }
190
191 DATAFLOWENGINE_API void AddWireframeRenderTarget(TObjectPtr<const UDataflowEdNode>);
192 DATAFLOWENGINE_API void RemoveWireframeRenderTarget(TObjectPtr<const UDataflowEdNode>);
193 const TArray< TObjectPtr<const UDataflowEdNode> >& GetWireframeRenderTargets() const { return WireframeRenderTargets; }
194
195 const UE::Dataflow::FTimestamp& GetRenderingTimestamp() const { return LastModifiedRenderTarget; }
196
200 DATAFLOWENGINE_API static UDataflow* GetDataflowAssetFromEdGraph(UEdGraph* EdGraph);
201 DATAFLOWENGINE_API static const UDataflow* GetDataflowAssetFromEdGraph(const UEdGraph* EdGraph);
202
204 DATAFLOWENGINE_API const UDataflowSubGraph* FindSubGraphByName(FName Name) const;
205 DATAFLOWENGINE_API UDataflowSubGraph* FindSubGraphByName(FName Name);
206
208 DATAFLOWENGINE_API const UDataflowSubGraph* FindSubGraphByGuid(const FGuid& SubGraphGuid) const;
209 DATAFLOWENGINE_API UDataflowSubGraph* FindSubGraphByGuid(const FGuid& SubGraphGuid);
210
213 DATAFLOWENGINE_API void RemoveSubGraph(UDataflowSubGraph* SubGraph);
214
215 DATAFLOWENGINE_API const TArray<TObjectPtr<UDataflowSubGraph>>& GetSubGraphs() const;
216
222 DATAFLOWENGINE_API void RefreshEdNodeByGuid(const FGuid NodeGuid);
223
224#if WITH_EDITORONLY_DATA
225
226 /*
227 * The following PreviewScene properties are modeled after PreviewSkeletalMesh in USkeleton
228 * - they are inside WITH_EDITORONLY_DATA because they are not used at game runtime
229 * - TSoftObjectPtrs since that will make it possible to avoid loading these assets until the PreviewScene asks for them
230 * - DuplicateTransient so that if you copy a ClothAsset it won't copy these preview properties
231 * - AssetRegistrySearchable makes it so that if the user searches the name of a PreviewScene asset in the Asset Browser
232 */
233
235 UPROPERTY(DuplicateTransient, AssetRegistrySearchable)
237
239 UPROPERTY(DuplicateTransient, AssetRegistrySearchable)
241
243 UPROPERTY(DuplicateTransient, AssetRegistrySearchable)
245
247 UPROPERTY(DuplicateTransient, AssetRegistrySearchable)
249
251 UPROPERTY(DuplicateTransient, AssetRegistrySearchable)
253
255 UPROPERTY(DuplicateTransient, AssetRegistrySearchable)
257
259 UPROPERTY(DuplicateTransient, AssetRegistrySearchable)
261#endif
262
263#if WITH_EDITOR
266private:
267
270#endif
271
272private:
277 UPROPERTY()
278 TArray<TObjectPtr<UDataflowSubGraph>> DataflowSubGraphs;
279
280private:
282 FMeshDeformerBeginDestroyEvent BeginDestroyEvent;
283};
284
285
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EDataflowType
Definition DataflowObject.h:90
return true
Definition ExternalRpcRegistry.cpp:601
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Archive.h:1208
Definition DataflowObject.h:69
TFunctionRef< void()> FPostEditFunctionCallback
Definition DataflowObject.h:71
DATAFLOWENGINE_API ~FDataflowAssetEdit()
Definition DataflowObject.cpp:117
friend UDataflow
Definition DataflowObject.h:72
DATAFLOWENGINE_API UE::Dataflow::FGraph * GetGraph()
Definition DataflowObject.cpp:122
Definition NameTypes.h:617
Definition UObjectGlobals.h:1292
static COREUOBJECT_API FObjectInitializer & Get()
Definition UObjectGlobals.cpp:5001
Definition UnrealType.h:174
Definition UObjectGlobals.h:2492
Definition DataflowGraph.h:29
Definition MeshDeformerProducer.h:19
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition SharedPointer.h:692
Definition SubclassOf.h:30
Definition DataflowEdNode.h:27
Definition DataflowSubGraph.h:23
Definition DataflowObject.h:106
const UE::Dataflow::FTimestamp & GetRenderingTimestamp() const
Definition DataflowObject.h:195
FDataflowAssetEdit EditDataflow() const
Definition DataflowObject.h:175
TSharedPtr< const UE::Dataflow::FGraph, ESPMode::ThreadSafe > GetDataflow() const
Definition DataflowObject.h:171
virtual FMeshDeformerBeginDestroyEvent & OnBeginDestroy() override
Definition DataflowObject.h:134
virtual bool IsEditorOnly() const
Definition DataflowObject.h:124
const TArray< TObjectPtr< const UDataflowEdNode > > & GetRenderTargets() const
Definition DataflowObject.h:189
TSharedPtr< UE::Dataflow::FGraph, ESPMode::ThreadSafe > GetDataflow()
Definition DataflowObject.h:172
const TArray< TObjectPtr< const UDataflowEdNode > > & GetWireframeRenderTargets() const
Definition DataflowObject.h:193
virtual TSharedPtr< UE::Dataflow::FGraph > GetDataflowGraph() const override
Definition DataflowObject.h:138
Definition DataflowGraph.h:71
Definition EdGraph.h:68
Definition Material.h:432
Definition Object.h:95
Definition DataflowAnyType.cpp:10
ESubGraphChangedReason
Definition DataflowObject.h:35
Definition DataflowObject.h:45
static DATAFLOWENGINE_API FOnNodeInvalidated OnNodeInvalidated
Definition DataflowObject.h:58
DECLARE_MULTICAST_DELEGATE_TwoParams(FOnVariablesChanged, const UDataflow *, FName)
DECLARE_MULTICAST_DELEGATE_ThreeParams(FOnSubGraphsChanged, const UDataflow *, const FGuid &, UE::Dataflow::ESubGraphChangedReason)
static DATAFLOWENGINE_API FOnSubGraphsChanged OnSubGraphsChanged
Definition DataflowObject.h:55
DECLARE_MULTICAST_DELEGATE_TwoParams(FOnNodeInvalidated, UDataflow &, FDataflowNode &)
DECLARE_MULTICAST_DELEGATE_ThreeParams(FOnVariablesOverrideStateChanged, const UDataflow *, FName, bool)
static DATAFLOWENGINE_API FOnVariablesOverrideStateChanged OnVariablesOverrideStateChanged
Definition DataflowObject.h:51
static DATAFLOWENGINE_API FOnVariablesChanged OnVariablesChanged
Definition DataflowObject.h:48
Definition DataflowNode.h:52
Definition DataflowPreview.h:17
Definition Guid.h:109
Definition PropertyBag.h:418
Definition UnrealType.h:6865
Definition ObjectPtr.h:488
Definition SoftObjectPtr.h:174
Definition DataflowContextCache.h:40
static DATAFLOWCORE_API Type Invalid
Definition DataflowContextCache.h:52
static CORE_API const TTransform< double > Identity
Definition TransformNonVectorized.h:58