[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