Polyphase Game Engine
Loading...
Searching...
No Matches
GraphDomain.h
Go to the documentation of this file.
1#pragma once
2
3#include "EngineTypes.h"
4#include "Maths.h"
5
6#include <string>
7#include <vector>
8
9class NodeGraph;
10
12{
14 std::string mTypeName;
15 std::string mCategory;
16 glm::vec4 mColor = glm::vec4(0.3f, 0.3f, 0.3f, 1.0f);
17};
18
20{
21public:
22
24 virtual ~GraphDomain();
25
26 virtual const char* GetDomainName() const = 0;
27 virtual void RegisterNodeTypes() = 0;
28 virtual void OnGraphEvaluated(NodeGraph* graph) {}
29 virtual TypeId GetDefaultOutputNodeType() const { return 0; }
30
31 void AddNodeType(TypeId typeId, const char* typeName, const char* category, const glm::vec4& color);
32 const std::vector<GraphNodeTypeInfo>& GetNodeTypes() const { return mNodeTypes; }
33
34protected:
35
36 std::vector<GraphNodeTypeInfo> mNodeTypes;
37};
uint32_t TypeId
Definition EngineTypes.h:64
Definition GraphDomain.h:20
std::vector< GraphNodeTypeInfo > mNodeTypes
Definition GraphDomain.h:36
virtual TypeId GetDefaultOutputNodeType() const
Definition GraphDomain.h:29
virtual void OnGraphEvaluated(NodeGraph *graph)
Definition GraphDomain.h:28
const std::vector< GraphNodeTypeInfo > & GetNodeTypes() const
Definition GraphDomain.h:32
virtual void RegisterNodeTypes()=0
virtual ~GraphDomain()
Definition GraphDomain.cpp:7
GraphDomain()
Definition GraphDomain.cpp:3
virtual const char * GetDomainName() const =0
void AddNodeType(TypeId typeId, const char *typeName, const char *category, const glm::vec4 &color)
Definition GraphDomain.cpp:11
Definition NodeGraph.h:17
Definition GraphDomain.h:12
glm::vec4 mColor
Definition GraphDomain.h:16
std::string mTypeName
Definition GraphDomain.h:14
TypeId mTypeId
Definition GraphDomain.h:13
std::string mCategory
Definition GraphDomain.h:15