[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4457] trunk/py/scripts/addons/ node_efficiency_tools.py: Better behavior of 'Swap Nodes'.
Bartek Skorupa
bartekskorupa at bartekskorupa.com
Mon Apr 8 23:38:30 CEST 2013
Revision: 4457
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4457
Author: bartekskorupa
Date: 2013-04-08 21:38:29 +0000 (Mon, 08 Apr 2013)
Log Message:
-----------
Better behavior of 'Swap Nodes'. More options passed from old node to new one.
Modified Paths:
--------------
trunk/py/scripts/addons/node_efficiency_tools.py
Modified: trunk/py/scripts/addons/node_efficiency_tools.py
===================================================================
--- trunk/py/scripts/addons/node_efficiency_tools.py 2013-04-08 10:28:57 UTC (rev 4456)
+++ trunk/py/scripts/addons/node_efficiency_tools.py 2013-04-08 21:38:29 UTC (rev 4457)
@@ -19,7 +19,7 @@
bl_info = {
'name': "Nodes Efficiency Tools",
'author': "Bartek Skorupa",
- 'version': (2, 23),
+ 'version': (2, 24),
'blender': (2, 6, 6),
'location': "Node Editor Properties Panel (Ctrl-SPACE)",
'description': "Nodes Efficiency Tools",
@@ -772,14 +772,27 @@
hide = True
new_node = nodes.new(new_type)
# if swap Mix to Math of vice-verca - try to set blend type or operation accordingly
- if new_node.type == 'MIX_RGB':
+ if new_node.type in {'MIX_RGB', 'ALPHAOVER'}:
+ new_node.inputs[0].default_value = 1.0
if node.type == 'MATH':
if node.operation in [entry[0] for entry in blend_types]:
- new_node.blend_type = node.operation
+ if hasattr(new_node, 'blend_type'):
+ new_node.blend_type = node.operation
+ for i in range(2):
+ new_node.inputs[i+1].default_value = [node.inputs[i].default_value] * 3 + [1.0]
+ elif node.type in {'MIX_RGB', 'ALPHAOVER'}:
+ for i in range(3):
+ new_node.inputs[i].default_value = node.inputs[i].default_value
elif new_node.type == 'MATH':
- if node.type == 'MIX_RGB':
- if node.blend_type in [entry[0] for entry in operations]:
- new_node.operation = node.blend_type
+ if node.type in {'MIX_RGB', 'ALPHAOVER'}:
+ if hasattr(node, 'blend_type'):
+ if node.blend_type in [entry[0] for entry in operations]:
+ new_node.operation = node.blend_type
+ for i in range(2):
+ channels = []
+ for c in range(3):
+ channels.append(node.inputs[i+1].default_value[c])
+ new_node.inputs[i].default_value = max(channels)
old_inputs_count = len(node.inputs)
new_inputs_count = len(new_node.inputs)
replace = [] # entries - pairs: old input index, new input index.
@@ -822,12 +835,10 @@
links.new(in_link.from_socket, new_node.inputs[new_i])
for out_link in node.outputs[0].links:
links.new(new_node.outputs[0], out_link.to_socket)
- new_node.location = node.location
- new_node.label = node.label
+ for attr in {'location', 'label', 'mute', 'show_preview', 'width_hidden', 'use_clamp'}:
+ if hasattr(node, attr) and hasattr(new_node, attr):
+ setattr(new_node, attr, getattr(node, attr))
new_node.hide = hide
- new_node.mute = node.mute
- new_node.show_preview = node.show_preview
- new_node.width_hidden = node.width_hidden
nodes.active = new_node
reselect.append(new_node)
bpy.ops.node.select_all(action="DESELECT")
More information about the Bf-extensions-cvs
mailing list