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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Toenne <lukas.toenne@googlemail.com>2013-06-09 13:51:19 +0400
committerLukas Toenne <lukas.toenne@googlemail.com>2013-06-09 13:51:19 +0400
commit9c5729e67220c97f059f4a5825f6ba99b4b401d2 (patch)
tree83f71c854f8d9e71267d47c063c33a63a9802b8f /release/scripts/templates_py
parent3fe01ecfd9bb9cd9a2cff5cf27c32cdaace95400 (diff)
Fix for unintended commit of python template file ...
Diffstat (limited to 'release/scripts/templates_py')
-rw-r--r--release/scripts/templates_py/custom_nodes_groups.py178
1 files changed, 0 insertions, 178 deletions
diff --git a/release/scripts/templates_py/custom_nodes_groups.py b/release/scripts/templates_py/custom_nodes_groups.py
deleted file mode 100644
index 48dbfd4749a..00000000000
--- a/release/scripts/templates_py/custom_nodes_groups.py
+++ /dev/null
@@ -1,178 +0,0 @@
-import bpy
-from bpy_types import NodeTree, Node, NodeSocket
-
-# Implementation of custom nodes from Python
-
-
-# Shortcut for node type menu
-def add_nodetype(layout, type):
- layout.operator("node.add_node", text=type.bl_label).type = type.bl_rna.identifier
-
-# Derived from the NodeTree base type, similar to Menu, Operator, Panel, etc.
-class MyCustomTree(NodeTree):
- # Description string
- '''A custom node tree type that will show up in the node editor header'''
- # Optional identifier string. If not explicitly defined, the python class name is used.
- bl_idname = 'CustomTreeType'
- # Label for nice name display
- bl_label = 'Custom Node Tree'
- # Icon identifier
- # NOTE: If no icon is defined, the node tree will not show up in the editor header!
- # This can be used to make additional tree types for groups and similar nodes (see below)
- # Only one base tree class is needed in the editor for selecting the general category
- bl_icon = 'NODETREE'
-
- def draw_add_menu(self, context, layout):
- layout.label("Hello World!")
- add_nodetype(layout, bpy.types.CustomNodeType)
- add_nodetype(layout, bpy.types.MyCustomGroup)
-
-
-# Custom socket type
-class MyCustomSocket(NodeSocket):
- # Description string
- '''Custom node socket type'''
- # Optional identifier string. If not explicitly defined, the python class name is used.
- bl_idname = 'CustomSocketType'
- # Label for nice name display
- bl_label = 'Custom Node Socket'
-
- # Enum items list
- my_items = [
- ("DOWN", "Down", "Where your feet are"),
- ("UP", "Up", "Where your head should be"),
- ("LEFT", "Left", "Not right"),
- ("RIGHT", "Right", "Not left")
- ]
-
- myEnumProperty = bpy.props.EnumProperty(name="Direction", description="Just an example", items=my_items, default='UP')
-
- # Optional function for drawing the socket input value
- def draw(self, context, layout, node, text):
- if self.is_linked:
- layout.label(text)
- else:
- layout.prop(self, "myEnumProperty", text=text)
-
- # Socket color
- def draw_color(self, context, node):
- return (1.0, 0.4, 0.216, 0.5)
-
-# Mix-in class for all custom nodes in this tree type.
-# Defines a poll function to enable instantiation.
-class MyCustomTreeNode :
- @classmethod
- def poll(cls, ntree):
- return ntree.bl_idname == 'CustomTreeType'
-
-# Derived from the Node base type.
-class MyCustomNode(Node, MyCustomTreeNode):
- # === Basics ===
- # Description string
- '''A custom node'''
- # Optional identifier string. If not explicitly defined, the python class name is used.
- bl_idname = 'CustomNodeType'
- # Label for nice name display
- bl_label = 'Custom Node'
- # Icon identifier
- bl_icon = 'SOUND'
-
- # === Custom Properties ===
- # These work just like custom properties in ID data blocks
- # Extensive information can be found under
- # http://wiki.blender.org/index.php/Doc:2.6/Manual/Extensions/Python/Properties
- myStringProperty = bpy.props.StringProperty()
- myFloatProperty = bpy.props.FloatProperty(default=3.1415926)
-
- # === Optional Functions ===
- # Initialization function, called when a new node is created.
- # This is the most common place to create the sockets for a node, as shown below.
- # NOTE: this is not the same as the standard __init__ function in Python, which is
- # a purely internal Python method and unknown to the node system!
- def init(self, context):
- self.inputs.new('CustomSocketType', "Hello")
- self.inputs.new('NodeSocketFloat', "World")
- self.inputs.new('NodeSocketVector', "!")
-
- self.outputs.new('NodeSocketColor', "How")
- self.outputs.new('NodeSocketColor', "are")
- self.outputs.new('NodeSocketFloat', "you")
-
- # Copy function to initialize a copied node from an existing one.
- def copy(self, node):
- print("Copying from node ", node)
-
- # Free function to clean up on removal.
- def free(self):
- print("Removing node ", self, ", Goodbye!")
-
- # Additional buttons displayed on the node.
- def draw_buttons(self, context, layout):
- layout.label("Node settings")
- layout.prop(self, "myFloatProperty")
-
- # Detail buttons in the sidebar.
- # If this function is not defined, the draw_buttons function is used instead
- def draw_buttons_ext(self, context, layout):
- layout.prop(self, "myFloatProperty")
- # myStringProperty button will only be visible in the sidebar
- layout.prop(self, "myStringProperty")
-
-
-### Node Categories ###
-# Node categories are a python system for automatically
-# extending the Add menu, toolbar panels and search operator.
-# For more examples see release/scripts/startup/nodeitems_builtins.py
-
-import nodeitems_utils
-from nodeitems_utils import NodeCategory, NodeItem
-
-# our own base class with an appropriate poll function,
-# so the categories only show up in our own tree type
-class MyNodeCategory(NodeCategory):
- @classmethod
- def poll(cls, context):
- return context.space_data.tree_type == 'CustomTreeType'
-
-# all categories in a list
-node_categories = [
- # identifier, label, items list
- MyNodeCategory("SOMENODES", "Some Nodes", items=[
- # our basic node
- NodeItem("CustomNodeType"),
- ]),
- MyNodeCategory("OTHERNODES", "Other Nodes", items=[
- # the node item can have additional settings,
- # which are applied to new nodes
- # NB: settings values are stored as string expressions,
- # for this reason they should be converted to strings using repr()
- NodeItem("CustomNodeType", label="Node A", settings={
- "myStringProperty" : repr("Lorem ipsum dolor sit amet"),
- "myFloatProperty" : repr(1.0),
- }),
- NodeItem("CustomNodeType", label="Node B", settings={
- "myStringProperty" : repr("consectetur adipisicing elit"),
- "myFloatProperty" : repr(2.0),
- }),
- ]),
- ]
-
-
-def register():
- bpy.utils.register_class(MyCustomTree)
- bpy.utils.register_class(MyCustomSocket)
- bpy.utils.register_class(MyCustomNode)
-
- nodeitems_utils.register_node_categories("CUSTOM_NODES", node_categories)
-
-
-def unregister():
- nodeitems_utils.unregister_node_categories("CUSTOM_NODES")
-
- bpy.utils.unregister_class(MyCustomTree)
- bpy.utils.unregister_class(MyCustomSocket)
- bpy.utils.unregister_class(MyCustomNode)
-
-
-if __name__ == "__main__":
- register()