diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2020-02-03 11:02:00 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2020-02-07 14:18:15 +0300 |
commit | ad489b71646a2e03e2ce9b0d193d541e3987b4cd (patch) | |
tree | 90c267c776585606c65156253ec3ce5b96101588 /intern/cycles/graph/node_type.cpp | |
parent | b1f1a1ca6035e23d66656c97c16fe081caafcae8 (diff) |
Cleanup: add type inheritance for Cycles nodes
Diffstat (limited to 'intern/cycles/graph/node_type.cpp')
-rw-r--r-- | intern/cycles/graph/node_type.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/intern/cycles/graph/node_type.cpp b/intern/cycles/graph/node_type.cpp index f46d4e48026..0283ed7c817 100644 --- a/intern/cycles/graph/node_type.cpp +++ b/intern/cycles/graph/node_type.cpp @@ -135,8 +135,13 @@ bool SocketType::is_float3(Type type) /* Node Type */ -NodeType::NodeType(Type type_) : type(type_) +NodeType::NodeType(Type type, const NodeType *base) : type(type), base(base) { + if (base) { + /* Inherit sockets. */ + inputs = base->inputs; + outputs = base->outputs; + } } NodeType::~NodeType() @@ -209,7 +214,7 @@ unordered_map<ustring, NodeType, ustringHash> &NodeType::types() return _types; } -NodeType *NodeType::add(const char *name_, CreateFunc create_, Type type_) +NodeType *NodeType::add(const char *name_, CreateFunc create_, Type type_, const NodeType *base_) { ustring name(name_); @@ -219,7 +224,7 @@ NodeType *NodeType::add(const char *name_, CreateFunc create_, Type type_) return NULL; } - types()[name] = NodeType(type_); + types()[name] = NodeType(type_, base_); NodeType *type = &types()[name]; type->name = name; |