Functions: extend multi-function network api
This commit is contained in:
@@ -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 socket_or_null_by_id_.size() - 1;
|
||||
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 node_or_null_by_id_.size();
|
||||
}
|
||||
|
||||
} // namespace blender::fn
|
||||
|
||||
Reference in New Issue
Block a user