[Bf-blender-cvs] [17d18351c66] functions: extract method to find callable trees
Jacques Lucke
noreply at git.blender.org
Wed Dec 18 13:53:58 CET 2019
Commit: 17d18351c66fcee64d23c503fbefc933d9b8e1e6
Author: Jacques Lucke
Date: Wed Dec 18 13:17:49 2019 +0100
Branches: functions
https://developer.blender.org/rB17d18351c66fcee64d23c503fbefc933d9b8e1e6
extract method to find callable trees
===================================================================
M release/scripts/startup/nodes/function_tree.py
M release/scripts/startup/nodes/node_operators.py
===================================================================
diff --git a/release/scripts/startup/nodes/function_tree.py b/release/scripts/startup/nodes/function_tree.py
index 227c6d8b8e8..ce53bd3d76a 100644
--- a/release/scripts/startup/nodes/function_tree.py
+++ b/release/scripts/startup/nodes/function_tree.py
@@ -26,6 +26,12 @@ class FunctionTree(bpy.types.NodeTree, BaseTree):
trees.update(node.iter_directly_used_trees())
return trees
+ def find_callable_trees(self):
+ used_by_trees = FunctionTree.BuildInvertedCallGraph().reachable(self)
+ trees = [tree for tree in bpy.data.node_groups
+ if isinstance(tree, FunctionTree) and tree not in used_by_trees]
+ return trees
+
@staticmethod
def BuildTreeCallGraph() -> DirectedGraph:
'''
diff --git a/release/scripts/startup/nodes/node_operators.py b/release/scripts/startup/nodes/node_operators.py
index 8463ed37341..05a8b362fee 100644
--- a/release/scripts/startup/nodes/node_operators.py
+++ b/release/scripts/startup/nodes/node_operators.py
@@ -70,13 +70,11 @@ class NodeGroupSelector(bpy.types.Operator, NodeOperatorBase):
def get_items(self, context):
tree = bpy.data.node_groups.get(self.tree_name)
- used_by_trees = FunctionTree.BuildInvertedCallGraph().reachable(tree)
+ possible_trees = tree.find_callable_trees()
items = []
- for tree in bpy.data.node_groups:
- if isinstance(tree, FunctionTree):
- if tree not in used_by_trees:
- items.append((tree.name, tree.name, ""))
+ for tree in possible_trees:
+ items.append((tree.name, tree.name, ""))
items.append(("NONE", "None", ""))
return items
More information about the Bf-blender-cvs
mailing list