UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DirectLinkSceneGraphNode.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"
7#include "DirectLinkCommon.h"
8#include "HAL/Platform.h"
9#include "Misc/Guid.h"
11#include "UObject/NameTypes.h"
12
13#define UE_API DIRECTLINK_API
14
15
16namespace DirectLink
17{
18class FParameterStore;
19class FSnapshotProxy;
20class IReferenceProxy;
21struct FReferenceSnapshot;
22
23
32{
33public:
35 const FGuid& GetGuid() const { return SceneId.SceneGuid; }
36 const FSceneIdentifier& GetSceneId() const { return SceneId; }
37
38protected:
41};
42
43
54{
55public:
56 virtual ~ISceneGraphNode() = default;
57
60 virtual TSharedPtr<FSceneGraphSharedState> GetSharedState() const { return SharedState; }
62
64 virtual const FParameterStore& GetStore() const = 0;
65 virtual FParameterStore& GetStore() = 0; // protected ?
66
67 virtual void CustomSerialize(class FSnapshotProxy& Ar) {}
68 void CustomSerialize(class FSnapshotProxy& Ar) const { const_cast<ISceneGraphNode*>(this)->CustomSerialize(Ar); }
69
71 // This Id is unique within a SceneGraph
72 FSceneGraphId GetNodeId() const { return SceneGraphId; }
73 //private: friend class ... #ue_directlink_design -> only accessible from the scene that owns the dep graph
74 void SetNodeId(FSceneGraphId Id) { SceneGraphId = Id; }
75
80
83 // #ue_directlink_design is node responsible for ref serialization?
84
85private:
86 FSceneGraphId SceneGraphId = 0;
88
89 struct FNamedReferenceProxy
90 {
91 FName Name;
92 IReferenceProxy* View;
93 };
94 TArray<FNamedReferenceProxy> ReferenceProxies;
95};
96
97class IReferenceResolutionProvider // #ue_directlink_design: improve: ClaimRef in the ds shared state
98{
99public:
100 virtual ~IReferenceResolutionProvider() = default;
101 virtual TSharedPtr<ISceneGraphNode> AsSharedPtr(FSceneGraphId NodeId) { return nullptr; }
102};
103
105{
106public:
107 virtual ~IReferenceProxy() = default;
108 virtual int32 Num() const = 0;
109 virtual ISceneGraphNode* GetNode(int32 Index) const = 0;
111};
112
113} // namespace DirectLink
114
115#undef UE_API
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition SColorGradingComponentViewer.h:12
Definition NameTypes.h:617
Definition Array.h:670
Definition SharedPointer.h:692
U16 Index
Definition radfft.cpp:71
Definition Guid.h:109
static CORE_API FGuid NewGuid()
Definition Guid.cpp:236