[Bf-blender-cvs] [9e8babf885c] functions: vectorize Float Math node

Jacques Lucke noreply at git.blender.org
Sun Apr 7 00:02:06 CEST 2019


Commit: 9e8babf885c6b801d33e402f082c7511683d5ba7
Author: Jacques Lucke
Date:   Sat Apr 6 23:54:06 2019 +0200
Branches: functions
https://developer.blender.org/rB9e8babf885c6b801d33e402f082c7511683d5ba7

vectorize Float Math node

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

M	release/scripts/startup/function_nodes/nodes/float_math.py
M	source/blender/functions/frontends/data_flow_nodes/inserters/nodes.cpp

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

diff --git a/release/scripts/startup/function_nodes/nodes/float_math.py b/release/scripts/startup/function_nodes/nodes/float_math.py
index 2f9b60bbf7e..aacd929b070 100644
--- a/release/scripts/startup/function_nodes/nodes/float_math.py
+++ b/release/scripts/startup/function_nodes/nodes/float_math.py
@@ -1,6 +1,7 @@
 import bpy
 from bpy.props import *
 from .. base import FunctionNode
+from .. socket_builder import SocketBuilder
 
 operation_items = [
     ("ADD", "Add", "", "", 1),
@@ -29,11 +30,20 @@ class FloatMathNode(bpy.types.Node, FunctionNode):
         update=FunctionNode.refresh,
     )
 
-    def declaration(self, builder):
-        builder.fixed_input("a", "A", "Float")
-        if self.operation not in single_value_operations:
-            builder.fixed_input("b", "B", "Float")
-        builder.fixed_output("result", "Result", "Float")
+    use_list__a: SocketBuilder.VectorizedProperty()
+    use_list__b: SocketBuilder.VectorizedProperty()
+
+    def declaration(self, builder: SocketBuilder):
+        builder.vectorized_input(
+            "a", "use_list__a",
+            "A", "A", "Float")
+        builder.vectorized_input(
+            "b", "use_list__b",
+            "B", "B", "Float")
+
+        builder.vectorized_output(
+            "result", ["use_list__a", "use_list__b"],
+            "Result", "Result", "Float")
 
     def draw(self, layout):
         layout.prop(self, "operation", text="")
\ No newline at end of file
diff --git a/source/blender/functions/frontends/data_flow_nodes/inserters/nodes.cpp b/source/blender/functions/frontends/data_flow_nodes/inserters/nodes.cpp
index 8a19dde2b39..dbe9d31367d 100644
--- a/source/blender/functions/frontends/data_flow_nodes/inserters/nodes.cpp
+++ b/source/blender/functions/frontends/data_flow_nodes/inserters/nodes.cpp
@@ -61,9 +61,12 @@ namespace FN { namespace DataFlowNodes {
 
 	static void INSERT_float_math(GraphBuilder &builder, bNode *bnode)
 	{
-		PointerRNA ptr = builder.get_rna(bnode);
-		int operation = RNA_enum_get(&ptr, "operation");
-		SharedFunction &fn = get_float_math_function(operation);
+		PointerRNA rna = builder.get_rna(bnode);
+		int operation = RNA_enum_get(&rna, "operation");
+
+		SharedFunction fn = get_vectorized_function(
+			get_float_math_function(operation),
+			rna, {"use_list__a", "use_list__b"});
 		builder.insert_matching_function(fn, bnode);
 	}



More information about the Bf-blender-cvs mailing list