Commit: b7c516a121e3acf725e5b65f1fda3085de1e4bdc
Author: Jacques Lucke
Date:   Thu Oct 31 12:55:23 2019 +0100
Branches: functions-experimental-refactor
https://developer.blender.org/rBb7c516a121e3acf725e5b65f1fda3085de1e4bdc

add more primitive conversions

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

M       source/blender/modifiers/intern/MOD_functiondeform_cxx.cc

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

diff --git a/source/blender/modifiers/intern/MOD_functiondeform_cxx.cc 
b/source/blender/modifiers/intern/MOD_functiondeform_cxx.cc
index 2365f4bc253..c06b62bfec2 100644
--- a/source/blender/modifiers/intern/MOD_functiondeform_cxx.cc
+++ b/source/blender/modifiers/intern/MOD_functiondeform_cxx.cc
@@ -74,6 +74,9 @@ static MFDataType get_type_by_socket(const VirtualSocket 
&vsocket)
   else if (idname == "fn_IntegerSocket") {
     return MFDataType::ForSingle<int32_t>();
   }
+  else if (idname == "fn_BooleanSocket") {
+    return MFDataType::ForSingle<bool>();
+  }
   else if (idname == "fn_FloatListSocket") {
     return MFDataType::ForVector<float>();
   }
@@ -83,6 +86,9 @@ static MFDataType get_type_by_socket(const VirtualSocket 
&vsocket)
   else if (idname == "fn_IntegerListSocket") {
     return MFDataType::ForVector<int32_t>();
   }
+  else if (idname == "fn_BooleanListSocket") {
+    return MFDataType::ForVector<bool>();
+  }
   return MFDataType();
 }
 
@@ -97,6 +103,9 @@ static const CPPType &get_cpp_type_by_name(StringRef name)
   else if (name == "Integer") {
     return BKE::GET_TYPE<int32_t>();
   }
+  else if (name == "Boolean") {
+    return BKE::GET_TYPE<bool>();
+  }
 
   BLI_assert(false);
   return BKE::GET_TYPE<float>();
@@ -610,7 +619,16 @@ static Map<std::pair<std::string, std::string>, 
InsertImplicitConversionFunction
 get_conversion_inserters()
 {
   Map<std::pair<std::string, std::string>, InsertImplicitConversionFunction> 
inserters;
+
   inserters.add_new({"fn_IntegerSocket", "fn_FloatSocket"}, 
INSERT_convert<int, float>);
+  inserters.add_new({"fn_FloatSocket", "fn_IntegerSocket"}, 
INSERT_convert<float, int>);
+
+  inserters.add_new({"fn_FloatSocket", "fn_BooleanSocket"}, 
INSERT_convert<float, bool>);
+  inserters.add_new({"fn_BooleanSocket", "fn_FloatSocket"}, 
INSERT_convert<bool, float>);
+
+  inserters.add_new({"fn_IntegerSocket", "fn_BooleanSocket"}, 
INSERT_convert<int, bool>);
+  inserters.add_new({"fn_BooleanSocket", "fn_IntegerSocket"}, 
INSERT_convert<bool, int>);
+
   return inserters;
 }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to