[Bf-blender-cvs] [94a280cb99b] functions: cleanup
Jacques Lucke
noreply at git.blender.org
Fri Dec 6 13:02:22 CET 2019
Commit: 94a280cb99ba38d5f3285f4950db4a1edf0006a0
Author: Jacques Lucke
Date: Fri Dec 6 12:42:58 2019 +0100
Branches: functions
https://developer.blender.org/rB94a280cb99ba38d5f3285f4950db4a1edf0006a0
cleanup
===================================================================
M source/blender/functions/intern/multi_functions/network.cc
M source/blender/functions/intern/multi_functions/network.h
===================================================================
diff --git a/source/blender/functions/intern/multi_functions/network.cc b/source/blender/functions/intern/multi_functions/network.cc
index 97684d25122..a0e8f5bfc97 100644
--- a/source/blender/functions/intern/multi_functions/network.cc
+++ b/source/blender/functions/intern/multi_functions/network.cc
@@ -2,6 +2,40 @@
namespace FN {
+MF_EvaluateNetwork::MF_EvaluateNetwork(Vector<const MFOutputSocket *> inputs,
+ Vector<const MFInputSocket *> outputs)
+ : m_inputs(std::move(inputs)), m_outputs(std::move(outputs))
+{
+ MFSignatureBuilder signature("Function Tree");
+ for (auto socket : m_inputs) {
+ BLI_assert(socket->node().is_dummy());
+
+ MFDataType type = socket->data_type();
+ switch (type.category()) {
+ case MFDataType::Single:
+ signature.single_input("Input", type.single__cpp_type());
+ break;
+ case MFDataType::Vector:
+ signature.vector_input("Input", type.vector__cpp_base_type());
+ break;
+ }
+ }
+ for (auto socket : m_outputs) {
+ BLI_assert(socket->node().is_dummy());
+
+ MFDataType type = socket->data_type();
+ switch (type.category()) {
+ case MFDataType::Single:
+ signature.single_output("Output", type.single__cpp_type());
+ break;
+ case MFDataType::Vector:
+ signature.vector_output("Output", type.vector__cpp_base_type());
+ break;
+ }
+ }
+ this->set_signature(signature);
+}
+
void MF_EvaluateNetwork::call(MFMask mask, MFParams params, MFContext context) const
{
if (mask.indices_amount() == 0) {
@@ -21,7 +55,7 @@ BLI_NOINLINE void MF_EvaluateNetwork::copy_inputs_to_storage(MFParams params,
const MFOutputSocket &socket = *m_inputs[input_index];
switch (socket.data_type().category()) {
case MFDataType::Single: {
- GenericVirtualListRef input_list = params.readonly_single_input(input_index, "Input");
+ GenericVirtualListRef input_list = params.readonly_single_input(input_index);
for (const MFInputSocket *target : socket.targets()) {
const MFNode &target_node = target->node();
if (target_node.is_function()) {
@@ -45,8 +79,7 @@ BLI_NOINLINE void MF_EvaluateNetwork::copy_inputs_to_storage(MFParams params,
break;
}
case MFDataType::Vector: {
- GenericVirtualListListRef input_list_list = params.readonly_vector_input(input_index,
- "Input");
+ GenericVirtualListListRef input_list_list = params.readonly_vector_input(input_index);
for (const MFInputSocket *target : socket.targets()) {
const MFNode &target_node = target->node();
if (target_node.is_function()) {
@@ -241,7 +274,7 @@ BLI_NOINLINE void MF_EvaluateNetwork::copy_computed_values_to_outputs(MFParams p
case MFDataType::Single: {
GenericVirtualListRef values = storage.get_virtual_list_for_input(socket);
GenericMutableArrayRef output_values = params.uninitialized_single_output(
- global_param_index, "Output");
+ global_param_index);
for (uint i : storage.mask().indices()) {
output_values.copy_in__uninitialized(i, values[i]);
}
@@ -249,7 +282,7 @@ BLI_NOINLINE void MF_EvaluateNetwork::copy_computed_values_to_outputs(MFParams p
}
case MFDataType::Vector: {
GenericVirtualListListRef values = storage.get_virtual_list_list_for_input(socket);
- GenericVectorArray &output_values = params.vector_output(global_param_index, "Output");
+ GenericVectorArray &output_values = params.vector_output(global_param_index);
for (uint i : storage.mask().indices()) {
output_values.extend_single__copy(i, values[i]);
}
diff --git a/source/blender/functions/intern/multi_functions/network.h b/source/blender/functions/intern/multi_functions/network.h
index 0b75df5db2a..490ace50558 100644
--- a/source/blender/functions/intern/multi_functions/network.h
+++ b/source/blender/functions/intern/multi_functions/network.h
@@ -16,38 +16,7 @@ class MF_EvaluateNetwork final : public MultiFunction {
Vector<const MFInputSocket *> m_outputs;
public:
- MF_EvaluateNetwork(Vector<const MFOutputSocket *> inputs, Vector<const MFInputSocket *> outputs)
- : m_inputs(std::move(inputs)), m_outputs(std::move(outputs))
- {
- MFSignatureBuilder signature("Function Tree");
- for (auto socket : m_inputs) {
- BLI_assert(socket->node().is_dummy());
-
- MFDataType type = socket->data_type();
- switch (type.category()) {
- case MFDataType::Single:
- signature.single_input("Input", type.single__cpp_type());
- break;
- case MFDataType::Vector:
- signature.vector_input("Input", type.vector__cpp_base_type());
- break;
- }
- }
- for (auto socket : m_outputs) {
- BLI_assert(socket->node().is_dummy());
-
- MFDataType type = socket->data_type();
- switch (type.category()) {
- case MFDataType::Single:
- signature.single_output("Output", type.single__cpp_type());
- break;
- case MFDataType::Vector:
- signature.vector_output("Output", type.vector__cpp_base_type());
- break;
- }
- }
- this->set_signature(signature);
- }
+ MF_EvaluateNetwork(Vector<const MFOutputSocket *> inputs, Vector<const MFInputSocket *> outputs);
class Storage {
private:
More information about the Bf-blender-cvs
mailing list