[Bf-blender-cvs] [e36da5e16e3] functions: cleanup

Jacques Lucke noreply at git.blender.org
Thu Nov 21 15:20:00 CET 2019


Commit: e36da5e16e39380c85e3ca118d24eb71b5518549
Author: Jacques Lucke
Date:   Thu Nov 21 14:38:14 2019 +0100
Branches: functions
https://developer.blender.org/rBe36da5e16e39380c85e3ca118d24eb71b5518549

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 be7bfa35553..399b6943a10 100644
--- a/source/blender/functions/FN_multi_function_network.h
+++ b/source/blender/functions/FN_multi_function_network.h
@@ -242,6 +242,8 @@ class MFSocket : BLI::NonCopyable, BLI::NonMovable {
  public:
   const MFNode &node() const;
   MFDataType data_type() const;
+  uint param_index() const;
+  MFParamType param_type() const;
 
   uint index() const;
   uint id() const;
@@ -524,6 +526,23 @@ inline MFDataType MFSocket::data_type() const
   return m_data_type;
 }
 
+inline uint MFSocket::param_index() const
+{
+  const MFFunctionNode &node = m_node->as_function();
+  if (m_is_output) {
+    return node.output_param_indices()[m_index];
+  }
+  else {
+    return node.input_param_indices()[m_index];
+  }
+}
+
+inline MFParamType MFSocket::param_type() const
+{
+  uint param_index = this->param_index();
+  return m_node->as_function().function().param_type(param_index);
+}
+
 inline uint MFSocket::index() const
 {
   return m_index;
diff --git a/source/blender/functions/intern/multi_functions/network.cc b/source/blender/functions/intern/multi_functions/network.cc
index 69a3cb5d459..948766bdb45 100644
--- a/source/blender/functions/intern/multi_functions/network.cc
+++ b/source/blender/functions/intern/multi_functions/network.cc
@@ -26,9 +26,7 @@ BLI_NOINLINE void MF_EvaluateNetwork::copy_inputs_to_storage(MFMask mask,
         for (const MFInputSocket *target : socket.targets()) {
           const MFNode &target_node = target->node();
           if (target_node.is_function()) {
-            const MFFunctionNode &target_function_node = target_node.as_function();
-            uint param_index = target_function_node.input_param_indices()[target->index()];
-            MFParamType param_type = target_function_node.function().param_type(param_index);
+            MFParamType param_type = target->param_type();
 
             if (param_type.is_single_input()) {
               storage.set_virtual_list_for_input__non_owning(*target, input_list);
@@ -57,9 +55,7 @@ BLI_NOINLINE void MF_EvaluateNetwork::copy_inputs_to_storage(MFMask mask,
         for (const MFInputSocket *target : socket.targets()) {
           const MFNode &target_node = target->node();
           if (target_node.is_function()) {
-            const MFFunctionNode &target_function_node = target_node.as_function();
-            uint param_index = target_function_node.input_param_indices()[target->index()];
-            MFParamType param_type = target_function_node.function().param_type(param_index);
+            MFParamType param_type = target->param_type();
 
             if (param_type.is_vector_input()) {
               storage.set_virtual_list_list_for_input__non_owning(*target, input_list_list);
@@ -216,9 +212,7 @@ BLI_NOINLINE void MF_EvaluateNetwork::compute_and_forward_outputs(
     for (const MFInputSocket *target : output_socket.targets()) {
       const MFNode &target_node = target->node();
       if (target_node.is_function()) {
-        const MFFunctionNode &target_function_node = target_node.as_function();
-        uint param_index = target_function_node.input_param_indices()[target->index()];
-        MFParamType param_type = target_function_node.function().param_type(param_index);
+        MFParamType param_type = target->param_type();
 
         if (param_type.is_single_input()) {
           storage.set_virtual_list_for_input__non_owning(*target, values);
@@ -250,9 +244,7 @@ BLI_NOINLINE void MF_EvaluateNetwork::compute_and_forward_outputs(
     for (const MFInputSocket *target : output_socket.targets()) {
       const MFNode &target_node = target->node();
       if (target_node.is_function()) {
-        const MFFunctionNode &target_function_node = target_node.as_function();
-        uint param_index = target_function_node.input_param_indices()[target->index()];
-        MFParamType param_type = target_function_node.function().param_type(param_index);
+        MFParamType param_type = target->param_type();
 
         if (param_type.is_vector_input()) {
           storage.set_virtual_list_list_for_input__non_owning(*target, *values);



More information about the Bf-blender-cvs mailing list