diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-01-27 13:17:56 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-01-27 13:19:27 +0400 |
commit | bee6c1779e9337fbc0b34d9747b4aeb647b44cfa (patch) | |
tree | be330663109d8224fb9e5af68dfa013b1451b1ef /source/blender/blenkernel/intern | |
parent | 2d3bd587fd26972495d939927513583be108aa4d (diff) |
Code Cleanup: de-duplicate nested node tree checking
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 34b016a08ba..79f77416639 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -2289,7 +2289,7 @@ void ntreeInterfaceTypeUpdate(bNodeTree *ntree) /* ************ find stuff *************** */ -int ntreeHasType(bNodeTree *ntree, int type) +bool ntreeHasType(const bNodeTree *ntree, int type) { bNode *node; @@ -2300,6 +2300,21 @@ int ntreeHasType(bNodeTree *ntree, int type) return 0; } +bool ntreeHasTree(const bNodeTree *ntree, const bNodeTree *lookup) +{ + bNode *node; + + if (ntree == lookup) + return true; + + for (node = ntree->nodes.first; node; node = node->next) + if (node->type == NODE_GROUP && node->id) + if (ntreeHasTree((bNodeTree *)node->id, lookup)) + return true; + + return false; +} + bNodeLink *nodeFindLink(bNodeTree *ntree, bNodeSocket *from, bNodeSocket *to) { bNodeLink *link; |