diff options
author | Jacques Lucke <jacques@blender.org> | 2020-07-07 19:45:34 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-07-07 19:45:34 +0300 |
commit | 67042aa6a10bc2523ca0534f9ae4dbd276f6a59c (patch) | |
tree | fe464ee5cb422d8c1041e109bd028a909fe77727 /source/blender/functions/FN_multi_function_network.hh | |
parent | adfae89f96ea088d18b0d6f0e775c48b049a332a (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.hh | 43 |
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 |