[Bf-blender-cvs] [d103f7d] object_nodes: Use an explicit transform input in the array modifier node.

Lukas Tönne noreply at git.blender.org
Mon Dec 7 13:51:24 CET 2015


Commit: d103f7daabea2d927518a6eb67cceb8542c95d26
Author: Lukas Tönne
Date:   Mon Dec 7 13:50:03 2015 +0100
Branches: object_nodes
https://developer.blender.org/rBd103f7daabea2d927518a6eb67cceb8542c95d26

Use an explicit transform input in the array modifier node.

Transforms can only be created from translations atm.

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

M	release/scripts/nodes/common_nodes.py
M	release/scripts/nodes/geometry_nodes.py

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

diff --git a/release/scripts/nodes/common_nodes.py b/release/scripts/nodes/common_nodes.py
index 8ee2ef0..c27ef39 100644
--- a/release/scripts/nodes/common_nodes.py
+++ b/release/scripts/nodes/common_nodes.py
@@ -149,7 +149,7 @@ class MathNode(CommonNodeBase, ObjectNode):
 
 
 class VectorMathNode(CommonNodeBase, ObjectNode):
-    '''Vector Math '''
+    '''Vector Math'''
     bl_idname = 'ObjectVectorMathNode'
     bl_label = 'Vector Math'
 
@@ -252,6 +252,27 @@ class CombineVectorNode(CommonNodeBase, ObjectNode):
         compiler.map_input(2, node.inputs[2])
         compiler.map_output(0, node.outputs[0])
 
+
+class TranslationTransformNode(CommonNodeBase, ObjectNode):
+    '''Translation'''
+    bl_idname = 'ObjectTranslationTransformNode'
+    bl_label = 'Translation'
+
+    def init(self, context):
+        self.inputs.new('TransformSocket', "")
+        self.inputs.new('NodeSocketVector', "Vector")
+        self.outputs.new('TransformSocket', "")
+
+    def compile(self, compiler):
+        node = compiler.add_node("LOCROTSCALE_TO_MATRIX44")
+        compiler.map_input(1, node.inputs["loc"])
+        
+        node_mul = compiler.add_node("MUL_MATRIX44")
+        compiler.map_input(0, node_mul.inputs[0])
+        compiler.link(node.outputs[0], node_mul.inputs[1])
+        compiler.map_output(0, node_mul.outputs[0])
+
+
 ###############################################################################
 
 def register():
diff --git a/release/scripts/nodes/geometry_nodes.py b/release/scripts/nodes/geometry_nodes.py
index 9ff7432..c24b870 100644
--- a/release/scripts/nodes/geometry_nodes.py
+++ b/release/scripts/nodes/geometry_nodes.py
@@ -174,18 +174,14 @@ class GeometryMeshArrayNode(GeometryNodeBase, ObjectNode):
     def init(self, context):
         self.inputs.new('GeometrySocket', "")
         self.inputs.new('NodeSocketInt', "Count")
-        self.inputs.new('NodeSocketVector', "Offset")
+        self.inputs.new('TransformSocket', "Transform")
         self.outputs.new('GeometrySocket', "")
 
     def compile(self, compiler):
-        node = compiler.add_node("MESH_ARRAY", self.name+"MOD")
-        node_tfm = compiler.add_node("LOCROTSCALE_TO_MATRIX44", self.name+"TFM")
-
-        compiler.link(node_tfm.outputs[0], node.inputs["transform"])
-
+        node = compiler.add_node("MESH_ARRAY")
         compiler.map_input(0, node.inputs["mesh_in"])
         compiler.map_input(1, node.inputs["count"])
-        compiler.map_input(2, node_tfm.inputs["loc"])
+        compiler.map_input(2, node.inputs["transform"])
         compiler.map_output(0, node.outputs["mesh_out"])
 
 ###############################################################################
@@ -230,6 +226,7 @@ def register():
         GeometryNodeCategory("GEO_MATH", "Math", items=[
             NodeItem("ObjectMathNode"),
             NodeItem("ObjectVectorMathNode"),
+            NodeItem("ObjectTranslationTransformNode"),
             ]),
         GeometryNodeCategory("GEO_GROUP", "Group", items=[
             NodeItem(gnode.bl_idname),




More information about the Bf-blender-cvs mailing list