diff options
author | Wannes Malfait <Wannes> | 2021-05-17 12:11:25 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-05-17 12:11:25 +0300 |
commit | ba698f081270f807820a63355a3c7bb83f5f5a38 (patch) | |
tree | 32c38e44a97bde97b17e4efe66f7f7fd95fe1927 /source/blender/nodes/geometry | |
parent | 7e552b356d833107289c942295c3ddcb0cbf9dae (diff) |
Geometry Nodes: update callbacks with 2 new socket types
Diffstat (limited to 'source/blender/nodes/geometry')
-rw-r--r-- | source/blender/nodes/geometry/node_geometry_tree.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/source/blender/nodes/geometry/node_geometry_tree.cc b/source/blender/nodes/geometry/node_geometry_tree.cc index f13ddabbf2c..f4cd00b88ed 100644 --- a/source/blender/nodes/geometry/node_geometry_tree.cc +++ b/source/blender/nodes/geometry/node_geometry_tree.cc @@ -86,12 +86,13 @@ static void foreach_nodeclass(Scene *UNUSED(scene), void *calldata, bNodeClassCa static bool geometry_node_tree_validate_link(bNodeTree *UNUSED(ntree), bNodeLink *link) { - /* Geometry, string, object and collection sockets can only be connected to themselves. */ - if (ELEM(link->fromsock->type, SOCK_GEOMETRY, SOCK_STRING, SOCK_OBJECT, SOCK_COLLECTION) || - ELEM(link->tosock->type, SOCK_GEOMETRY, SOCK_STRING, SOCK_OBJECT, SOCK_COLLECTION)) { - return (link->tosock->type == link->fromsock->type); + /* Geometry, string, object, material, texture and collection sockets can only be connected to + * themselves. The other types can be converted between each other. */ + if (ELEM(link->fromsock->type, SOCK_FLOAT, SOCK_VECTOR, SOCK_RGBA, SOCK_BOOLEAN, SOCK_INT) && + ELEM(link->tosock->type, SOCK_FLOAT, SOCK_VECTOR, SOCK_RGBA, SOCK_BOOLEAN, SOCK_INT)) { + return true; } - return true; + return (link->tosock->type == link->fromsock->type); } static bool geometry_node_tree_socket_type_valid(eNodeSocketDatatype socket_type, @@ -106,7 +107,9 @@ static bool geometry_node_tree_socket_type_valid(eNodeSocketDatatype socket_type SOCK_STRING, SOCK_OBJECT, SOCK_GEOMETRY, - SOCK_COLLECTION); + SOCK_COLLECTION, + SOCK_TEXTURE, + SOCK_MATERIAL); } void register_node_tree_type_geo(void) |