[Bf-blender-cvs] [c6e593d] object_nodes: New utility module for socket types.

Lukas Tönne noreply at git.blender.org
Sun Dec 6 13:44:43 CET 2015


Commit: c6e593d2695ebb8a67385c73ba8b9d73b6eb5289
Author: Lukas Tönne
Date:   Sun Dec 6 12:55:10 2015 +0100
Branches: object_nodes
https://developer.blender.org/rBc6e593d2695ebb8a67385c73ba8b9d73b6eb5289

New utility module for socket types.

===================================================================

M	release/scripts/nodes/common_nodes.py
M	release/scripts/nodes/geometry_nodes.py
M	release/scripts/nodes/group_nodes.py
A	release/scripts/nodes/socket_types.py

===================================================================

diff --git a/release/scripts/nodes/common_nodes.py b/release/scripts/nodes/common_nodes.py
index 69e8080..ded9e7e 100644
--- a/release/scripts/nodes/common_nodes.py
+++ b/release/scripts/nodes/common_nodes.py
@@ -23,36 +23,7 @@ import nodeitems_utils
 from bpy.types import Operator, ObjectNode, NodeTree, Node, NodeSocket
 from bpy.props import *
 from node_compiler import NodeCompiler, NodeWrapper, InputWrapper, OutputWrapper, StringDict
-
-bvm_type_items = [
-    ("FLOAT", "Float", "Floating point number", 0, 0),
-    ("INT", "Int", "Integer number", 0, 1),
-    ("VECTOR", "Vector", "3D vector", 0, 2),
-    ("COLOR", "Color", "RGBA color", 0, 3),
-    ("MESH", "Mesh", "Mesh data", 0, 4),
-    ]
-
-def bvm_type_to_socket(base_type):
-    types = {
-        "FLOAT" : bpy.types.NodeSocketFloat,
-        "INT" : bpy.types.NodeSocketInt,
-        "VECTOR" : bpy.types.NodeSocketVector,
-        "COLOR" : bpy.types.NodeSocketColor,
-        "MESH" : bpy.types.GeometrySocket,
-        }
-    return types.get(base_type, None)
-
-def socket_type_to_bvm(socket):
-    if isinstance(socket, bpy.types.NodeSocketFloat):
-        return 'FLOAT'
-    elif isinstance(socket, bpy.types.NodeSocketVector):
-        return 'FLOAT3'
-    elif isinstance(socket, bpy.types.NodeSocketColor):
-        return 'FLOAT4'
-    elif isinstance(socket, bpy.types.NodeSocketInt):
-        return 'INT'
-    elif isinstance(socket, bpy.types.GeometrySocket):
-        return 'MESH'
+from socket_types import socket_type_to_bvm
 
 class NodeTreeBase():
     def bvm_compile(self, context, graph):
diff --git a/release/scripts/nodes/geometry_nodes.py b/release/scripts/nodes/geometry_nodes.py
index a9b691b..8a162d3 100644
--- a/release/scripts/nodes/geometry_nodes.py
+++ b/release/scripts/nodes/geometry_nodes.py
@@ -20,7 +20,7 @@
 
 import bpy
 import nodeitems_utils
-from bpy.types import Operator, ObjectNode, NodeTree, Node, NodeSocket
+from bpy.types import Operator, ObjectNode, NodeTree, Node
 from bpy.props import *
 from nodeitems_utils import NodeCategory, NodeItem
 from mathutils import *
@@ -28,25 +28,6 @@ from common_nodes import NodeTreeBase
 import group_nodes
 
 ###############################################################################
-# Socket Types
-
-class GeometrySocket(NodeSocket):
-    '''Geometry data socket'''
-    bl_idname = 'GeometrySocket'
-    bl_label = 'Geometry'
-
-    is_placeholder = BoolProperty(name="Is Placeholder",
-                                  default=False)
-
-    def draw(self, context, layout, node, text):
-        layout.label(text)
-
-    def draw_color(self, context, node):
-        alpha = 0.4 if self.is_placeholder else 1.0
-        return (1.0, 0.4, 0.216, alpha)
-
-
-###############################################################################
 
 
 # our own base class with an appropriate poll function,
diff --git a/release/scripts/nodes/group_nodes.py b/release/scripts/nodes/group_nodes.py
index 61d1ed6..61cd500 100644
--- a/release/scripts/nodes/group_nodes.py
+++ b/release/scripts/nodes/group_nodes.py
@@ -22,7 +22,7 @@ import bpy
 import nodeitems_utils
 from bpy.types import Operator, Panel, UIList, NodeTree, Node, NodeSocket, ObjectNode, PropertyGroup, BVMTypeDesc
 from bpy.props import *
-from common_nodes import bvm_type_items, bvm_type_to_socket
+from socket_types import bvm_type_items, bvm_type_to_socket
 
 ###############################################################################
 # Group Interface
diff --git a/release/scripts/nodes/socket_types.py b/release/scripts/nodes/socket_types.py
new file mode 100644
index 0000000..89d2aa1
--- /dev/null
+++ b/release/scripts/nodes/socket_types.py
@@ -0,0 +1,81 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+#  This program is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License
+#  as published by the Free Software Foundation; either version 2
+#  of the License, or (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software Foundation,
+#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8-80 compliant>
+
+import bpy
+from bpy.types import NodeSocket
+from bpy.props import *
+
+###############################################################################
+# Socket Types
+
+class GeometrySocket(NodeSocket):
+    '''Geometry data socket'''
+    bl_idname = 'GeometrySocket'
+    bl_label = 'Geometry'
+
+    is_placeholder = BoolProperty(name="Is Placeholder",
+                                  default=False)
+
+    def draw(self, context, layout, node, text):
+        layout.label(text)
+
+    def draw_color(self, context, node):
+        alpha = 0.4 if self.is_placeholder else 1.0
+        return (1.0, 0.4, 0.216, alpha)
+
+###############################################################################
+
+bvm_type_items = [
+    ("FLOAT", "Float", "Floating point number", 0, 0),
+    ("INT", "Int", "Integer number", 0, 1),
+    ("VECTOR", "Vector", "3D vector", 0, 2),
+    ("COLOR", "Color", "RGBA color", 0, 3),
+    ("MESH", "Mesh", "Mesh data", 0, 4),
+    ]
+
+def bvm_type_to_socket(base_type):
+    types = {
+        "FLOAT" : bpy.types.NodeSocketFloat,
+        "INT" : bpy.types.NodeSocketInt,
+        "VECTOR" : bpy.types.NodeSocketVector,
+        "COLOR" : bpy.types.NodeSocketColor,
+        "MESH" : bpy.types.GeometrySocket,
+        }
+    return types.get(base_type, None)
+
+def socket_type_to_bvm(socket):
+    if isinstance(socket, bpy.types.NodeSocketFloat):
+        return 'FLOAT'
+    elif isinstance(socket, bpy.types.NodeSocketVector):
+        return 'FLOAT3'
+    elif isinstance(socket, bpy.types.NodeSocketColor):
+        return 'FLOAT4'
+    elif isinstance(socket, bpy.types.NodeSocketInt):
+        return 'INT'
+    elif isinstance(socket, bpy.types.GeometrySocket):
+        return 'MESH'
+
+###############################################################################
+
+def register():
+    bpy.utils.register_module(__name__)
+
+def unregister():
+    bpy.utils.unregister_module(__name__)




More information about the Bf-blender-cvs mailing list