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-07 19:45:34 +0300
committerJacques Lucke <jacques@blender.org>2020-07-07 19:45:34 +0300
commit67042aa6a10bc2523ca0534f9ae4dbd276f6a59c (patch)
treefe464ee5cb422d8c1041e109bd028a909fe77727 /source/blender/functions/FN_multi_function_network.hh
parentadfae89f96ea088d18b0d6f0e775c48b049a332a (diff)
Functions: extend multi-function network api
Diffstat (limited to 'source/blender/functions/FN_multi_function_network.hh')
-rw-r--r--source/blender/functions/FN_multi_function_network.hh43
1 files changed, 38 insertions, 5 deletions
diff --git a/source/blender/functions/FN_multi_function_network.hh b/source/blender/functions/FN_multi_function_network.hh
index a9d8508cdb8..413f68a8531 100644
--- a/source/blender/functions/FN_multi_function_network.hh
+++ b/source/blender/functions/FN_multi_function_network.hh
@@ -216,10 +216,18 @@ class MFNetwork : NonCopyable, NonMovable {
void relink(MFOutputSocket &old_output, MFOutputSocket &new_output);
void remove(MFNode &node);
+ void remove(Span<MFNode *> nodes);
- uint max_socket_id() const;
+ uint socket_id_amount() const;
+ uint node_id_amount() const;
- std::string to_dot() const;
+ Span<MFDummyNode *> dummy_nodes();
+ Span<MFFunctionNode *> function_nodes();
+
+ MFNode *node_or_null_by_id(uint id);
+ const MFNode *node_or_null_by_id(uint id) const;
+
+ std::string to_dot(Span<const MFNode *> marked_nodes = {}) const;
};
/* --------------------------------------------------------------------
@@ -325,7 +333,7 @@ inline Span<const MFOutputSocket *> MFNode::outputs() const
return outputs_;
}
-template<typename FuncT> void MFNode::foreach_origin_socket(const FuncT &func) const
+template<typename FuncT> inline void MFNode::foreach_origin_socket(const FuncT &func) const
{
for (const MFInputSocket *socket : inputs_) {
const MFOutputSocket *origin = socket->origin();
@@ -483,9 +491,34 @@ inline Span<const MFInputSocket *> MFOutputSocket::targets() const
* MFNetwork inline methods.
*/
-inline uint MFNetwork::max_socket_id() const
+inline Span<MFDummyNode *> MFNetwork::dummy_nodes()
+{
+ return dummy_nodes_;
+}
+
+inline Span<MFFunctionNode *> MFNetwork::function_nodes()
+{
+ return function_nodes_;
+}
+
+inline MFNode *MFNetwork::node_or_null_by_id(uint id)
+{
+ return node_or_null_by_id_[id];
+}
+
+inline const MFNode *MFNetwork::node_or_null_by_id(uint id) const
+{
+ return node_or_null_by_id_[id];
+}
+
+inline uint MFNetwork::socket_id_amount() const
+{
+ return socket_or_null_by_id_.size();
+}
+
+inline uint MFNetwork::node_id_amount() const
{
- return socket_or_null_by_id_.size() - 1;
+ return node_or_null_by_id_.size();
}
} // namespace blender::fn