[Bf-blender-cvs] [ebf9082e1c1] master: Nodes: support more implicit conversions in simulation node tree

Jacques Lucke noreply at git.blender.org
Sun Jul 12 12:54:27 CEST 2020


Commit: ebf9082e1c1e7887143295f8590634188f0efcb2
Author: Jacques Lucke
Date:   Sun Jul 12 12:38:30 2020 +0200
Branches: master
https://developer.blender.org/rBebf9082e1c1e7887143295f8590634188f0efcb2

Nodes: support more implicit conversions in simulation node tree

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

M	source/blender/blenkernel/intern/node_tree_multi_function.cc

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

diff --git a/source/blender/blenkernel/intern/node_tree_multi_function.cc b/source/blender/blenkernel/intern/node_tree_multi_function.cc
index 1aaefd4a301..4e505db9b9d 100644
--- a/source/blender/blenkernel/intern/node_tree_multi_function.cc
+++ b/source/blender/blenkernel/intern/node_tree_multi_function.cc
@@ -158,6 +158,10 @@ static fn::MFOutputSocket *try_find_origin(CommonMFNetworkBuilderData &common,
 static const fn::MultiFunction *try_get_conversion_function(fn::MFDataType from, fn::MFDataType to)
 {
   if (from == fn::MFDataType::ForSingle<float>()) {
+    if (to == fn::MFDataType::ForSingle<int32_t>()) {
+      static fn::CustomMF_Convert<float, int32_t> function;
+      return &function;
+    }
     if (to == fn::MFDataType::ForSingle<float3>()) {
       static fn::CustomMF_Convert<float, float3> function;
       return &function;
@@ -170,6 +174,18 @@ static const fn::MultiFunction *try_get_conversion_function(fn::MFDataType from,
       return &function;
     }
   }
+  if (from == fn::MFDataType::ForSingle<int32_t>()) {
+    if (to == fn::MFDataType::ForSingle<float>()) {
+      static fn::CustomMF_Convert<int32_t, float> function;
+      return &function;
+    }
+    if (to == fn::MFDataType::ForSingle<float3>()) {
+      static fn::CustomMF_SI_SO<int32_t, float3> function{
+          "int32 to float3", [](int32_t a) { return float3((float)a); }};
+      return &function;
+    }
+  }
+
   return nullptr;
 }
 
@@ -223,7 +239,6 @@ static void insert_links(CommonMFNetworkBuilderData &common)
       }
       else {
         from_socket = &insert_default_value_for_type(common, to_type);
-        continue;
       }
     }



More information about the Bf-blender-cvs mailing list