diff options
author | Jacques Lucke <jacques@blender.org> | 2020-07-12 13:38:30 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-07-12 13:38:30 +0300 |
commit | ebf9082e1c1e7887143295f8590634188f0efcb2 (patch) | |
tree | 2523e24e66852a8dd1e4464b977452f5da695bf6 | |
parent | 838b1742fb99f7d0eba203313b6faa3cfc89ef8d (diff) |
Nodes: support more implicit conversions in simulation node tree
-rw-r--r-- | source/blender/blenkernel/intern/node_tree_multi_function.cc | 17 |
1 files changed, 16 insertions, 1 deletions
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; } } |