diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-06-11 14:11:31 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-06-11 14:11:31 +0400 |
commit | 9a92b0c5c42ff5960efea18bf83526dd815aa64b (patch) | |
tree | 4a00c50c039a1b8d58e450fd1d9d76c2016424f9 /release | |
parent | a18b303a7656c446b41d7b75d7d512e0f8a87040 (diff) |
template for python node operators
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/templates/operator_node.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/release/scripts/templates/operator_node.py b/release/scripts/templates/operator_node.py new file mode 100644 index 00000000000..bed2a1300a4 --- /dev/null +++ b/release/scripts/templates/operator_node.py @@ -0,0 +1,58 @@ +import bpy + +def main(operator, context): + space = context.space_data + node_tree = space.node_tree + node_active = context.active_node + node_selected = context.selected_nodes + + # now we have the context, perform a simple operation + if node_active in node_selected: + node_selected.remove(node_active) + if len(node_selected) != 1: + operator.report({'ERROR'}, "2 nodes must be selected") + return + + node_other, = node_selected + + # now we have 2 nodes to operate on + if not node_active.inputs: + operator.report({'ERROR'}, "Active node has no inputs") + return + + if not node_other.outputs: + operator.report({'ERROR'}, "Selected node has no outputs") + return + + socket_in = node_active.inputs[0] + socket_out = node_other.outputs[0] + + # add a link between the two nodes + node_link = node_tree.links.new(socket_in, socket_out) + + +class NodeOperator(bpy.types.Operator): + '''Tooltip''' + bl_idname = "node.simple_operator" + bl_label = "Simple Node Operator" + + @classmethod + def poll(cls, context): + space = context.space_data + return space.type == 'NODE_EDITOR' + + def execute(self, context): + main(context) + return {'FINISHED'} + + +def register(): + bpy.utils.register_class(NodeOperator) + + +def unregister(): + bpy.utils.unregister_class(NodeOperator) + + +if __name__ == "__main__": + register() |