[Bf-blender-cvs] [2e5ab9640ee] functions: vectorize Map Range node

Jacques Lucke noreply at git.blender.org
Sun Feb 2 14:27:11 CET 2020


Commit: 2e5ab9640ee866a7ef95e1378a3f6890710fb20e
Author: Jacques Lucke
Date:   Sun Feb 2 12:26:11 2020 +0100
Branches: functions
https://developer.blender.org/rB2e5ab9640ee866a7ef95e1378a3f6890710fb20e

vectorize Map Range node

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

M	release/scripts/startup/nodes/function_nodes/math.py
M	source/blender/functions/intern/node_tree_multi_function_network/mappings_nodes.cc

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

diff --git a/release/scripts/startup/nodes/function_nodes/math.py b/release/scripts/startup/nodes/function_nodes/math.py
index 0ee40706542..b09cadbf403 100644
--- a/release/scripts/startup/nodes/function_nodes/math.py
+++ b/release/scripts/startup/nodes/function_nodes/math.py
@@ -98,13 +98,21 @@ class MapRangeNode(bpy.types.Node, FunctionNode):
         default=True,
     )
 
+    use_list__value: NodeBuilder.VectorizedProperty()
+    use_list__from_min: NodeBuilder.VectorizedProperty()
+    use_list__from_max: NodeBuilder.VectorizedProperty()
+    use_list__to_min: NodeBuilder.VectorizedProperty()
+    use_list__to_max: NodeBuilder.VectorizedProperty()
+
     def declaration(self, builder: NodeBuilder):
-        builder.fixed_input("value", "Value", "Float")
-        builder.fixed_input("from_min", "From Min", "Float", default=0)
-        builder.fixed_input("from_max", "From Max", "Float", default=1)
-        builder.fixed_input("to_min", "To Min", "Float", default=0)
-        builder.fixed_input("to_max", "To Max", "Float", default=1)
-        builder.fixed_output("value", "Value", "Float")
+        builder.vectorized_input("value", "use_list__value", "Value", "Values", "Float")
+        builder.vectorized_input("from_min", "use_list__from_min", "From Min", "From Min", "Float")
+        builder.vectorized_input("from_max", "use_list__from_max", "From Max", "From Max", "Float")
+        builder.vectorized_input("to_min", "use_list__to_min", "To Min", "To Min", "Float")
+        builder.vectorized_input("to_max", "use_list__to_max", "To Max", "To Max", "Float")
+        builder.vectorized_output("value", [
+            "use_list__value", "use_list__from_min", "use_list__from_max",
+            "use_list__to_min", "use_list__to_max"], "Value", "Values", "Float")
 
     def draw(self, layout):
         layout.prop(self, "clamp")
diff --git a/source/blender/functions/intern/node_tree_multi_function_network/mappings_nodes.cc b/source/blender/functions/intern/node_tree_multi_function_network/mappings_nodes.cc
index 2595b04097a..9aad67e94a8 100644
--- a/source/blender/functions/intern/node_tree_multi_function_network/mappings_nodes.cc
+++ b/source/blender/functions/intern/node_tree_multi_function_network/mappings_nodes.cc
@@ -446,7 +446,12 @@ static void INSERT_clamp_float(FNodeMFBuilder &builder)
 static void INSERT_map_range(FNodeMFBuilder &builder)
 {
   bool clamp = RNA_boolean_get(builder.rna(), "clamp");
-  builder.set_constructed_matching_fn<MF_MapRange>(clamp);
+  builder.set_vectorized_constructed_matching_fn<MF_MapRange>({"use_list__value",
+                                                               "use_list__from_min",
+                                                               "use_list__from_max",
+                                                               "use_list__to_min",
+                                                               "use_list__to_max"},
+                                                              clamp);
 }
 
 static void INSERT_random_float(FNodeMFBuilder &builder)



More information about the Bf-blender-cvs mailing list