[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47732] trunk/blender/release/scripts/ templates/operator_node.py: template for python node operators
Campbell Barton
ideasman42 at gmail.com
Mon Jun 11 12:11:36 CEST 2012
Revision: 47732
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47732
Author: campbellbarton
Date: 2012-06-11 10:11:31 +0000 (Mon, 11 Jun 2012)
Log Message:
-----------
template for python node operators
Added Paths:
-----------
trunk/blender/release/scripts/templates/operator_node.py
Added: trunk/blender/release/scripts/templates/operator_node.py
===================================================================
--- trunk/blender/release/scripts/templates/operator_node.py (rev 0)
+++ trunk/blender/release/scripts/templates/operator_node.py 2012-06-11 10:11:31 UTC (rev 47732)
@@ -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()
Property changes on: trunk/blender/release/scripts/templates/operator_node.py
___________________________________________________________________
Added: svn:eol-style
+ native
More information about the Bf-blender-cvs
mailing list