diff options
author | Jacques Lucke <jacques@blender.org> | 2020-06-30 19:03:02 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-06-30 19:18:48 +0300 |
commit | 67da2bd23a5496e5f2228a20e54c138c3d03d9eb (patch) | |
tree | c004c9a63600abd15b13960840f6065c976bb80b /source/blender/functions/FN_multi_function_network.hh | |
parent | d67b7f3b5236d636d5bd35a917d13b9f06452df0 (diff) |
Functions: add methods to multi-function network classes
Those are necessary to query and modify the network.
Diffstat (limited to 'source/blender/functions/FN_multi_function_network.hh')
-rw-r--r-- | source/blender/functions/FN_multi_function_network.hh | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/source/blender/functions/FN_multi_function_network.hh b/source/blender/functions/FN_multi_function_network.hh index e1d5ce8bd69..bb0c870746b 100644 --- a/source/blender/functions/FN_multi_function_network.hh +++ b/source/blender/functions/FN_multi_function_network.hh @@ -156,6 +156,15 @@ class MFSocket : NonCopyable, NonMovable { MFNode &node(); const MFNode &node() const; + + bool is_input() const; + bool is_output() const; + + MFInputSocket &as_input(); + const MFInputSocket &as_input() const; + + MFOutputSocket &as_output(); + const MFOutputSocket &as_output() const; }; class MFInputSocket : public MFSocket { @@ -205,6 +214,10 @@ class MFNetwork : NonCopyable, NonMovable { MFOutputSocket &add_input(StringRef name, MFDataType data_type); MFInputSocket &add_output(StringRef name, MFDataType data_type); + void relink(MFOutputSocket &old_output, MFOutputSocket &new_output); + + void remove(MFNode &node); + uint max_socket_id() const; std::string to_dot() const; @@ -405,6 +418,40 @@ inline const MFNode &MFSocket::node() const return *m_node; } +inline bool MFSocket::is_input() const +{ + return !m_is_output; +} + +inline bool MFSocket::is_output() const +{ + return m_is_output; +} + +inline MFInputSocket &MFSocket::as_input() +{ + BLI_assert(this->is_input()); + return *(MFInputSocket *)this; +} + +inline const MFInputSocket &MFSocket::as_input() const +{ + BLI_assert(this->is_input()); + return *(const MFInputSocket *)this; +} + +inline MFOutputSocket &MFSocket::as_output() +{ + BLI_assert(this->is_output()); + return *(MFOutputSocket *)this; +} + +inline const MFOutputSocket &MFSocket::as_output() const +{ + BLI_assert(this->is_output()); + return *(const MFOutputSocket *)this; +} + /* -------------------------------------------------------------------- * MFInputSocket inline methods. */ |