Polyphase Game Engine
Loading...
Searching...
No Matches
VariableNodes.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <string>
6
8
9static const glm::vec4 kVariableNodeColor = glm::vec4(0.3f, 0.6f, 0.9f, 1.0f);
10
11// =============================================================================
12// GetVariableNode
13// Pure data node that reads a named variable's runtime value.
14// =============================================================================
16{
17public:
19
20 virtual void SetupPins() override;
21 virtual void Evaluate() override;
22 virtual void SaveStream(Stream& stream) override;
23 virtual void LoadStream(Stream& stream, uint32_t version) override;
24 virtual const char* GetNodeTypeName() const override;
25 virtual const char* GetNodeCategory() const override { return "Variable"; }
26 virtual glm::vec4 GetNodeColor() const override { return kVariableNodeColor; }
27
28 virtual void CopyCustomData(const GraphNode* src) override;
29
31
32 void SetVariableName(const std::string& name) { mVariableName = name; }
33 const std::string& GetVariableName() const { return mVariableName; }
34
35 void SetOwnerAsset(NodeGraphAsset* asset) { mOwnerAsset = asset; }
37
39
40protected:
41 std::string mVariableName;
42 NodeGraphAsset* mOwnerAsset = nullptr; // non-owning
44 mutable std::string mDisplayName;
45};
46
47// =============================================================================
48// SetVariableNode
49// Flow node that writes a value to a named variable's runtime value.
50// =============================================================================
52{
53public:
55
56 virtual void SetupPins() override;
57 virtual void Evaluate() override;
58 virtual void SaveStream(Stream& stream) override;
59 virtual void LoadStream(Stream& stream, uint32_t version) override;
60 virtual const char* GetNodeTypeName() const override;
61 virtual const char* GetNodeCategory() const override { return "Variable"; }
62 virtual glm::vec4 GetNodeColor() const override { return kVariableNodeColor; }
63 virtual bool IsFlowNode() const override { return true; }
64
65 virtual void CopyCustomData(const GraphNode* src) override;
66
68
69 void SetVariableName(const std::string& name) { mVariableName = name; }
70 const std::string& GetVariableName() const { return mVariableName; }
71
72 void SetOwnerAsset(NodeGraphAsset* asset) { mOwnerAsset = asset; }
74
76
77protected:
78 std::string mVariableName;
79 NodeGraphAsset* mOwnerAsset = nullptr; // non-owning
81 mutable std::string mDisplayName;
82};
DatumType
Definition Datum.h:28
Definition VariableNodes.h:16
DatumType mCachedType
Definition VariableNodes.h:43
virtual void SetupPins() override
Definition VariableNodes.cpp:18
virtual glm::vec4 GetNodeColor() const override
Definition VariableNodes.h:26
NodeGraphAsset * GetOwnerAsset() const
Definition VariableNodes.h:36
virtual void SaveStream(Stream &stream) override
Definition VariableNodes.cpp:39
std::string mDisplayName
Definition VariableNodes.h:44
DatumType GetCachedType() const
Definition VariableNodes.h:38
NodeGraphAsset * mOwnerAsset
Definition VariableNodes.h:42
virtual void LoadStream(Stream &stream, uint32_t version) override
Definition VariableNodes.cpp:46
DECLARE_GRAPH_NODE(GetVariableNode, GraphNode)
virtual void Evaluate() override
Definition VariableNodes.cpp:23
void SetVariableName(const std::string &name)
Definition VariableNodes.h:32
virtual void CopyCustomData(const GraphNode *src) override
Definition VariableNodes.cpp:122
const std::string & GetVariableName() const
Definition VariableNodes.h:33
virtual const char * GetNodeCategory() const override
Definition VariableNodes.h:25
std::string mVariableName
Definition VariableNodes.h:41
void RebuildPinFromVariable(NodeGraphAsset *asset)
Definition VariableNodes.cpp:146
virtual const char * GetNodeTypeName() const override
Definition VariableNodes.cpp:113
void SetOwnerAsset(NodeGraphAsset *asset)
Definition VariableNodes.h:35
Definition GraphNode.h:73
Definition NodeGraphAsset.h:12
Definition VariableNodes.h:52
virtual glm::vec4 GetNodeColor() const override
Definition VariableNodes.h:62
virtual void CopyCustomData(const GraphNode *src) override
Definition VariableNodes.cpp:316
virtual const char * GetNodeCategory() const override
Definition VariableNodes.h:61
void RebuildPinsFromVariable(NodeGraphAsset *asset)
Definition VariableNodes.cpp:350
const std::string & GetVariableName() const
Definition VariableNodes.h:70
virtual void Evaluate() override
Definition VariableNodes.cpp:188
void SetVariableName(const std::string &name)
Definition VariableNodes.h:69
DatumType GetCachedType() const
Definition VariableNodes.h:75
NodeGraphAsset * GetOwnerAsset() const
Definition VariableNodes.h:73
virtual void SetupPins() override
Definition VariableNodes.cpp:183
virtual bool IsFlowNode() const override
Definition VariableNodes.h:63
void SetOwnerAsset(NodeGraphAsset *asset)
Definition VariableNodes.h:72
DatumType mCachedType
Definition VariableNodes.h:80
NodeGraphAsset * mOwnerAsset
Definition VariableNodes.h:79
virtual void SaveStream(Stream &stream) override
Definition VariableNodes.cpp:218
virtual const char * GetNodeTypeName() const override
Definition VariableNodes.cpp:307
std::string mVariableName
Definition VariableNodes.h:78
virtual void LoadStream(Stream &stream, uint32_t version) override
Definition VariableNodes.cpp:225
std::string mDisplayName
Definition VariableNodes.h:81
DECLARE_GRAPH_NODE(SetVariableNode, GraphNode)
Definition Stream.h:21