Commit: f4dac36c0563609534b3e16649f374b7f699f331
Author: Jacques Lucke
Date: Tue Jul 16 14:52:06 2019 +0200
Branches: functions
https://developer.blender.org/rBf4dac36c0563609534b3e16649f374b7f699f331
extract another function for linking
===================================================================
M source/blender/simulations/bparticles/inserters.cpp
===================================================================
diff --git a/source/blender/simulations/bparticles/inserters.cpp
b/source/blender/simulations/bparticles/inserters.cpp
index bd184b6c362..51630b92f50 100644
--- a/source/blender/simulations/bparticles/inserters.cpp
+++ b/source/blender/simulations/bparticles/inserters.cpp
@@ -271,33 +271,44 @@ static std::unique_ptr<Emitter>
BUILD_EMITTER_moving_point(BuildContext &ctx,
return std::unique_ptr<PointEmitter>(new PointEmitter(particle_type_name,
point, 10));
}
-static FN::FunctionGraph link_inputs_to_function(SharedFunction &main_fn,
- SharedFunction &inputs_fn,
- SharedFunction &reserved_fn)
+static void match_inputs_to_node_outputs(FN::DataFlowGraphBuilder &builder,
+ FN::DFGB_Node *target_node,
+ FN::DFGB_Node *origin_node_1,
+ FN::DFGB_Node *origin_node_2)
{
- FN::DataFlowGraphBuilder builder;
- auto *main_node = builder.insert_function(main_fn);
- auto *inputs_node = builder.insert_function(inputs_fn);
- auto *reserved_node = builder.insert_function(reserved_fn);
+ SharedFunction &target_fn = target_node->function();
+ SharedFunction &origin_fn_1 = origin_node_1->function();
uint offset = 0;
- for (uint i = 0; i < main_fn->input_amount(); i++) {
- StringRef input_name = main_fn->input_name(i);
- FN::SharedType &input_type = main_fn->input_type(i);
+ for (uint i = 0; i < target_fn->input_amount(); i++) {
+ StringRef input_name = target_fn->input_name(i);
+ FN::SharedType &input_type = target_fn->input_type(i);
bool is_reserved_input = false;
- for (uint j = 0; j < reserved_fn->output_amount(); j++) {
- if (reserved_fn->output_name(j) == input_name &&
reserved_fn->output_type(j) == input_type) {
- builder.insert_link(reserved_node->output(j), main_node->input(i));
+ for (uint j = 0; j < origin_fn_1->output_amount(); j++) {
+ if (origin_fn_1->output_name(j) == input_name &&
origin_fn_1->output_type(j) == input_type) {
+ builder.insert_link(origin_node_1->output(j), target_node->input(i));
is_reserved_input = true;
}
}
if (!is_reserved_input) {
- builder.insert_link(inputs_node->output(offset), main_node->input(i));
+ builder.insert_link(origin_node_2->output(offset),
target_node->input(i));
offset++;
}
}
+}
+
+static FN::FunctionGraph link_inputs_to_function(SharedFunction &main_fn,
+ SharedFunction &inputs_fn,
+ SharedFunction &reserved_fn)
+{
+ FN::DataFlowGraphBuilder builder;
+ auto *main_node = builder.insert_function(main_fn);
+ auto *inputs_node = builder.insert_function(inputs_fn);
+ auto *reserved_node = builder.insert_function(reserved_fn);
+
+ match_inputs_to_node_outputs(builder, main_node, reserved_node, inputs_node);
auto build_result = FN::DataFlowGraph::FromBuilder(builder);
auto final_inputs =
build_result.mapping.map_sockets(reserved_node->outputs());
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs