Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-07-12 13:38:30 +0300
committerJacques Lucke <jacques@blender.org>2020-07-12 13:38:30 +0300
commitebf9082e1c1e7887143295f8590634188f0efcb2 (patch)
tree2523e24e66852a8dd1e4464b977452f5da695bf6 /source/blender
parent838b1742fb99f7d0eba203313b6faa3cfc89ef8d (diff)
Nodes: support more implicit conversions in simulation node tree
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/intern/node_tree_multi_function.cc17
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;
}
}