[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