Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartek Skorupa <bartekskorupa@bartekskorupa.com>2013-05-19 16:41:21 +0400
committerBartek Skorupa <bartekskorupa@bartekskorupa.com>2013-05-19 16:41:21 +0400
commitd729dda1368ff0aa9a49c746d2c93ad943eca1f1 (patch)
tree022cc8ea19d259bd752200360b79d76662180880 /node_efficiency_tools.py
parenta237801d560bd31ec9555010fc54c2e7a83a3a1b (diff)
Fix in 'Merge Nodes' to prevent creating cyclic dependencies when nodes to be marged are linked between one another.
Diffstat (limited to 'node_efficiency_tools.py')
-rw-r--r--node_efficiency_tools.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/node_efficiency_tools.py b/node_efficiency_tools.py
index d6d9ed89..f2b90c4d 100644
--- a/node_efficiency_tools.py
+++ b/node_efficiency_tools.py
@@ -19,7 +19,7 @@
bl_info = {
'name': "Nodes Efficiency Tools",
'author': "Bartek Skorupa",
- 'version': (2, 30),
+ 'version': (2, 31),
'blender': (2, 6, 7),
'location': "Node Editor Properties Panel (Ctrl-SPACE)",
'description': "Nodes Efficiency Tools",
@@ -300,7 +300,12 @@ class MergeNodes(Operator, NodeToolBase):
last_add = nodes[count_before]
# add links from last_add to all links 'to_socket' of out links of first selected.
for fs_link in first_selected.outputs[0].links:
- links.new(last_add.outputs[0], fs_link.to_socket)
+ # Prevent cyclic dependencies when nodes to be marged are linked to one another.
+ # Create list of invalid indexes.
+ invalid_i = [n[0] for n in (selected_mix + selected_math + selected_shader)]
+ # Link only if "to_node" index not in invalid indexes list.
+ if fs_link.to_node not in [nodes[i] for i in invalid_i]:
+ links.new(last_add.outputs[0], fs_link.to_socket)
# add link from "first" selected and "first" add node
links.new(first_selected.outputs[0], nodes[count_after - 1].inputs[first])
# add links between added ADD nodes and between selected and ADD nodes