[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