Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-07-18 11:51:38 +0300
committerJacques Lucke <jacques@blender.org>2020-07-18 11:51:38 +0300
commitfe49e4139cd3f78f126b60ea4240a0294eac9483 (patch)
tree159bfd716161d18d93ec9eda01bf13d657257f9f /source/blender/functions
parent9eaa48f520a68d1042f67a64dadf1c1ab9ff4a67 (diff)
Simulation: cleanup deduplicating attribute input nodes
Diffstat (limited to 'source/blender/functions')
-rw-r--r--source/blender/functions/FN_multi_function_network.hh2
-rw-r--r--source/blender/functions/intern/multi_function_network.cc8
2 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/functions/FN_multi_function_network.hh b/source/blender/functions/FN_multi_function_network.hh
index e47c8260057..91eb5bb65dc 100644
--- a/source/blender/functions/FN_multi_function_network.hh
+++ b/source/blender/functions/FN_multi_function_network.hh
@@ -233,6 +233,8 @@ class MFNetwork : NonCopyable, NonMovable {
VectorSet<const MFOutputSocket *> &r_dummy_sockets,
VectorSet<const MFInputSocket *> &r_unlinked_inputs) const;
+ bool have_dummy_or_unlinked_dependencies(Span<const MFInputSocket *> sockets) const;
+
std::string to_dot(Span<const MFNode *> marked_nodes = {}) const;
};
diff --git a/source/blender/functions/intern/multi_function_network.cc b/source/blender/functions/intern/multi_function_network.cc
index 11c9c065f51..1d3d3a8b5f2 100644
--- a/source/blender/functions/intern/multi_function_network.cc
+++ b/source/blender/functions/intern/multi_function_network.cc
@@ -269,6 +269,14 @@ void MFNetwork::find_dependencies(Span<const MFInputSocket *> sockets,
}
}
+bool MFNetwork::have_dummy_or_unlinked_dependencies(Span<const MFInputSocket *> sockets) const
+{
+ VectorSet<const MFOutputSocket *> dummy_sockets;
+ VectorSet<const MFInputSocket *> unlinked_inputs;
+ this->find_dependencies(sockets, dummy_sockets, unlinked_inputs);
+ return dummy_sockets.size() + unlinked_inputs.size() > 0;
+}
+
std::string MFNetwork::to_dot(Span<const MFNode *> marked_nodes) const
{
dot::DirectedGraph digraph;