[Bf-blender-cvs] [0842654] object_nodes: Moved type conversion utility functions to the common_node module.
Lukas Tönne
noreply at git.blender.org
Sun Dec 6 13:44:39 CET 2015
Commit: 084265454e178ee3d76d8abda161ba0a9448a18d
Author: Lukas Tönne
Date: Sun Dec 6 11:37:43 2015 +0100
Branches: object_nodes
https://developer.blender.org/rB084265454e178ee3d76d8abda161ba0a9448a18d
Moved type conversion utility functions to the common_node module.
===================================================================
M release/scripts/nodes/common_nodes.py
M release/scripts/nodes/group_nodes.py
===================================================================
diff --git a/release/scripts/nodes/common_nodes.py b/release/scripts/nodes/common_nodes.py
index 126562e..e5ef476 100644
--- a/release/scripts/nodes/common_nodes.py
+++ b/release/scripts/nodes/common_nodes.py
@@ -24,20 +24,38 @@ 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'
+
class NodeTreeBase():
def bvm_compile(self, context, graph):
- 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'
-
comp = NodeCompiler(context, graph)
input_map = dict()
diff --git a/release/scripts/nodes/group_nodes.py b/release/scripts/nodes/group_nodes.py
index 821c434..61d1ed6 100644
--- a/release/scripts/nodes/group_nodes.py
+++ b/release/scripts/nodes/group_nodes.py
@@ -22,33 +22,16 @@ 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
###############################################################################
# Group Interface
-_base_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 _base_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 make_node_group_interface(prefix, treetype, tree_items_update):
_in_out_items = [('IN', "In", "Input"), ('OUT', "Out", "Output")]
prop_name = StringProperty(name="Name", default="Value", update=tree_items_update)
- prop_base_type = EnumProperty(name="Base Type", items=_base_type_items, default='FLOAT', update=tree_items_update)
+ prop_base_type = EnumProperty(name="Base Type", items=bvm_type_items, default='FLOAT', update=tree_items_update)
prop_in_out = EnumProperty(name="In/Out", items=_in_out_items, default='IN')
# XXX PropertyGroup does not have a bl_idname,
@@ -234,7 +217,7 @@ def make_node_group_types(prefix, treetype, node_base):
def find_match(s):
for i in free_items:
- if i.name == s.name and isinstance(s, _base_type_to_socket(i.base_type)):
+ if i.name == s.name and isinstance(s, bvm_type_to_socket(i.base_type)):
return i
def socket_index(s):
@@ -264,7 +247,7 @@ def make_node_group_types(prefix, treetype, node_base):
s = match.get(i, None)
if s is None:
# add socket for unmatched item
- stype = _base_type_to_socket(i.base_type)
+ stype = bvm_type_to_socket(i.base_type)
s = sockets.new(stype.bl_rna.identifier, i.name)
index = socket_index(s)
More information about the Bf-blender-cvs
mailing list