[Bf-blender-cvs] [d81273eaed6] functions: cleanup
Jacques Lucke
noreply at git.blender.org
Thu Nov 21 15:20:02 CET 2019
Commit: d81273eaed6f86c3acd99f65f993f15fd3c2ea85
Author: Jacques Lucke
Date: Thu Nov 21 14:46:26 2019 +0100
Branches: functions
https://developer.blender.org/rBd81273eaed6f86c3acd99f65f993f15fd3c2ea85
cleanup
===================================================================
M source/blender/functions/FN_multi_function_network.h
M source/blender/functions/intern/multi_functions/network.cc
===================================================================
diff --git a/source/blender/functions/FN_multi_function_network.h b/source/blender/functions/FN_multi_function_network.h
index 399b6943a10..51d859bd7c7 100644
--- a/source/blender/functions/FN_multi_function_network.h
+++ b/source/blender/functions/FN_multi_function_network.h
@@ -199,6 +199,9 @@ class MFNode : BLI::NonCopyable, BLI::NonMovable {
StringRefNull name() const;
+ const MFInputSocket &input(uint index) const;
+ const MFOutputSocket &output(uint index) const;
+
ArrayRef<const MFInputSocket *> inputs() const;
ArrayRef<const MFOutputSocket *> outputs() const;
@@ -224,6 +227,9 @@ class MFFunctionNode final : public MFNode {
ArrayRef<uint> input_param_indices() const;
ArrayRef<uint> output_param_indices() const;
+
+ const MFInputSocket &input_for_param(uint param_index) const;
+ const MFOutputSocket &output_for_param(uint param_index) const;
};
class MFDummyNode final : public MFNode {
@@ -464,6 +470,16 @@ inline ArrayRef<const MFOutputSocket *> MFNode::outputs() const
return m_outputs;
}
+inline const MFInputSocket &MFNode::input(uint index) const
+{
+ return *m_inputs[index];
+}
+
+inline const MFOutputSocket &MFNode::output(uint index) const
+{
+ return *m_outputs[index];
+}
+
inline uint MFNode::id() const
{
return m_id;
@@ -516,6 +532,16 @@ inline ArrayRef<uint> MFFunctionNode::output_param_indices() const
return m_output_param_indices;
}
+inline const MFInputSocket &MFFunctionNode::input_for_param(uint param_index) const
+{
+ return this->input(m_input_param_indices.index(param_index));
+}
+
+inline const MFOutputSocket &MFFunctionNode::output_for_param(uint param_index) const
+{
+ return this->output(m_output_param_indices.index(param_index));
+}
+
inline const MFNode &MFSocket::node() const
{
return *m_node;
diff --git a/source/blender/functions/intern/multi_functions/network.cc b/source/blender/functions/intern/multi_functions/network.cc
index 948766bdb45..5375983c14a 100644
--- a/source/blender/functions/intern/multi_functions/network.cc
+++ b/source/blender/functions/intern/multi_functions/network.cc
@@ -144,22 +144,19 @@ BLI_NOINLINE void MF_EvaluateNetwork::compute_and_forward_outputs(
MFParamType param_type = function.param_type(param_index);
switch (param_type.type()) {
case MFParamType::SingleInput: {
- uint input_socket_index = function_node.input_param_indices().first_index(param_index);
- const MFInputSocket &input_socket = *function_node.inputs()[input_socket_index];
+ const MFInputSocket &input_socket = function_node.input_for_param(param_index);
GenericVirtualListRef values = storage.get_virtual_list_for_input(input_socket);
params_builder.add_readonly_single_input(values);
break;
}
case MFParamType::VectorInput: {
- uint input_socket_index = function_node.input_param_indices().first_index(param_index);
- const MFInputSocket &input_socket = *function_node.inputs()[input_socket_index];
+ const MFInputSocket &input_socket = function_node.input_for_param(param_index);
GenericVirtualListListRef values = storage.get_virtual_list_list_for_input(input_socket);
params_builder.add_readonly_vector_input(values);
break;
}
case MFParamType::SingleOutput: {
- uint output_socket_index = function_node.output_param_indices().first_index(param_index);
- const MFOutputSocket &output_socket = *function_node.outputs()[output_socket_index];
+ const MFOutputSocket &output_socket = function_node.output_for_param(param_index);
GenericMutableArrayRef values_destination = this->allocate_array(
output_socket.data_type().single__cpp_type(), array_size);
params_builder.add_single_output(values_destination);
@@ -167,8 +164,7 @@ BLI_NOINLINE void MF_EvaluateNetwork::compute_and_forward_outputs(
break;
}
case MFParamType::VectorOutput: {
- uint output_socket_index = function_node.output_param_indices().first_index(param_index);
- const MFOutputSocket &output_socket = *function_node.outputs()[output_socket_index];
+ const MFOutputSocket &output_socket = function_node.output_for_param(param_index);
auto *values_destination = new GenericVectorArray(
output_socket.data_type().vector__cpp_base_type(), array_size);
params_builder.add_vector_output(*values_destination);
@@ -176,11 +172,8 @@ BLI_NOINLINE void MF_EvaluateNetwork::compute_and_forward_outputs(
break;
}
case MFParamType::MutableVector: {
- uint input_socket_index = function_node.input_param_indices().first_index(param_index);
- const MFInputSocket &input_socket = *function_node.inputs()[input_socket_index];
-
- uint output_socket_index = function_node.output_param_indices().first_index(param_index);
- const MFOutputSocket &output_socket = *function_node.outputs()[output_socket_index];
+ const MFInputSocket &input_socket = function_node.input_for_param(param_index);
+ const MFOutputSocket &output_socket = function_node.output_for_param(param_index);
GenericVectorArray &values = storage.get_vector_array_for_input(input_socket);
params_builder.add_mutable_vector(values);
@@ -188,11 +181,8 @@ BLI_NOINLINE void MF_EvaluateNetwork::compute_and_forward_outputs(
break;
}
case MFParamType::MutableSingle: {
- uint input_socket_index = function_node.input_param_indices().first_index(param_index);
- const MFInputSocket &input_socket = *function_node.inputs()[input_socket_index];
-
- uint output_socket_index = function_node.output_param_indices().first_index(param_index);
- const MFOutputSocket &output_socket = *function_node.outputs()[output_socket_index];
+ const MFInputSocket &input_socket = function_node.input_for_param(param_index);
+ const MFOutputSocket &output_socket = function_node.output_for_param(param_index);
GenericMutableArrayRef values = storage.get_array_ref_for_input(input_socket);
params_builder.add_mutable_single(values);
More information about the Bf-blender-cvs
mailing list