[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