diff options
author | Ray Molenkamp <github@lazydodo.com> | 2021-04-09 01:25:09 +0300 |
---|---|---|
committer | Ray Molenkamp <github@lazydodo.com> | 2021-04-09 01:25:09 +0300 |
commit | 3d7e3d5ad0b4a6b790eb95076394948f5a0e046e (patch) | |
tree | 4bfdf4fb57baab6c55a6852bf9ff5fdb58561de5 /source/blender/nodes | |
parent | 500045a0d3b57f4333527cb710f05f666acaf904 (diff) |
Fix: Missing GeometryNodeCustomGroup
This is a minor change to add some plumbing code
to support custom geo nodes. This is working the
same way as the custom cycles and compositor nodes.
An example add-in is attached to D10784
Reviewed By: JacquesLucke
Differential Revision: http://developer.blender.org/D10784
Diffstat (limited to 'source/blender/nodes')
-rw-r--r-- | source/blender/nodes/NOD_geometry.h | 3 | ||||
-rw-r--r-- | source/blender/nodes/NOD_node_tree_ref.hh | 2 | ||||
-rw-r--r-- | source/blender/nodes/geometry/nodes/node_geo_common.cc | 14 |
3 files changed, 18 insertions, 1 deletions
diff --git a/source/blender/nodes/NOD_geometry.h b/source/blender/nodes/NOD_geometry.h index 4ea4fe79504..b84c80e916c 100644 --- a/source/blender/nodes/NOD_geometry.h +++ b/source/blender/nodes/NOD_geometry.h @@ -20,11 +20,14 @@ extern "C" { #endif +#include "BKE_node.h" + extern struct bNodeTreeType *ntreeType_Geometry; void register_node_tree_type_geo(void); void register_node_type_geo_group(void); +void register_node_type_geo_custom_group(bNodeType *ntype); void register_node_type_geo_align_rotation_to_vector(void); void register_node_type_geo_attribute_clamp(void); diff --git a/source/blender/nodes/NOD_node_tree_ref.hh b/source/blender/nodes/NOD_node_tree_ref.hh index 84d56f1b27f..8b430ea1c48 100644 --- a/source/blender/nodes/NOD_node_tree_ref.hh +++ b/source/blender/nodes/NOD_node_tree_ref.hh @@ -528,7 +528,7 @@ inline bool NodeRef::is_reroute_node() const inline bool NodeRef::is_group_node() const { - return bnode_->type == NODE_GROUP; + return bnode_->type == NODE_GROUP || bnode_->type == NODE_CUSTOM_GROUP; } inline bool NodeRef::is_group_input_node() const diff --git a/source/blender/nodes/geometry/nodes/node_geo_common.cc b/source/blender/nodes/geometry/nodes/node_geo_common.cc index 441ad6bdc13..e2bb7e9f939 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_common.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_common.cc @@ -43,3 +43,17 @@ void register_node_type_geo_group(void) nodeRegisterType(&ntype); } + +void register_node_type_geo_custom_group(bNodeType *ntype) +{ + /* These methods can be overridden but need a default implementation otherwise. */ + if (ntype->poll == nullptr) { + ntype->poll = geo_node_poll_default; + } + if (ntype->insert_link == nullptr) { + ntype->insert_link = node_insert_link_default; + } + if (ntype->update_internal_links == nullptr) { + ntype->update_internal_links = node_update_internal_links_default; + } +} |