diff options
Diffstat (limited to 'source/blender/functions')
-rw-r--r-- | source/blender/functions/FN_multi_function_network.hh | 2 | ||||
-rw-r--r-- | source/blender/functions/intern/multi_function_network.cc | 8 |
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; |