Polyphase Game Engine
Loading...
Searching...
No Matches
GraphNode.h File Reference
#include "Factory.h"
#include "Object.h"
#include "NodeGraph/GraphTypes.h"
#include "NodeGraph/GraphPin.h"
#include "Maths.h"
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  PinEnumOption
 
class  GraphNode
 

Macros

#define DECLARE_GRAPH_NODE(Class, Parent)
 
#define DEFINE_GRAPH_NODE(Class)
 
#define REGISTER_GRAPH_NODE(Class, TypeName, Category, DomainName, Color)
 
#define REGISTER_GRAPH_NODE_MULTI(Class, TypeName, Category, Color, ...)
 

Functions

void RegisterExternalGraphNode (uint32_t typeId, const char *typeName, const char *category, const char *domainName, const glm::vec4 &color)
 
void RegisterExternalGraphNodeMulti (uint32_t typeId, const char *typeName, const char *category, const char **domainNames, uint32_t domainCount, const glm::vec4 &color)
 

Macro Definition Documentation

◆ DECLARE_GRAPH_NODE

#define DECLARE_GRAPH_NODE (   Class,
  Parent 
)
Value:
DECLARE_OBJECT(Class, Parent); \
typedef Parent Super;
#define DECLARE_FACTORY(Class, BaseClass)
Definition Factory.h:90
Definition GraphNode.h:73

◆ DEFINE_GRAPH_NODE

#define DEFINE_GRAPH_NODE (   Class)
Value:
DEFINE_OBJECT(Class);
#define DEFINE_FACTORY(Class, BaseClass)
Definition Factory.h:109

◆ REGISTER_GRAPH_NODE

#define REGISTER_GRAPH_NODE (   Class,
  TypeName,
  Category,
  DomainName,
  Color 
)
Value:
namespace { struct AutoRegGraphNode_##Class { AutoRegGraphNode_##Class() { \
RegisterExternalGraphNode(OctHashString(#Class), TypeName, Category, DomainName, Color); \
}} s_autoRegGraphNode_##Class; }
uint32_t OctHashString(const char *key)
Definition Utilities.cpp:377

◆ REGISTER_GRAPH_NODE_MULTI

#define REGISTER_GRAPH_NODE_MULTI (   Class,
  TypeName,
  Category,
  Color,
  ... 
)
Value:
namespace { struct AutoRegGraphNodeMulti_##Class { AutoRegGraphNodeMulti_##Class() { \
static const char* sDomains[] = { __VA_ARGS__ }; \
RegisterExternalGraphNodeMulti(OctHashString(#Class), TypeName, Category, \
sDomains, sizeof(sDomains)/sizeof(sDomains[0]), Color); \
}} s_autoRegGraphNodeMulti_##Class; }

Function Documentation

◆ RegisterExternalGraphNode()

void RegisterExternalGraphNode ( uint32_t  typeId,
const char *  typeName,
const char *  category,
const char *  domainName,
const glm::vec4 &  color 
)

◆ RegisterExternalGraphNodeMulti()

void RegisterExternalGraphNodeMulti ( uint32_t  typeId,
const char *  typeName,
const char *  category,
const char **  domainNames,
uint32_t  domainCount,
const glm::vec4 &  color 
)