53 std::pair<Chain, Chain>
Bisect() const noexcept;
103 size_t Size() const noexcept;
125 const
Body* const _front, const
Body* const _back, const
bool _forward);
134 const
Body* m_frontBody{
nullptr};
135 const Body* m_backBody{
nullptr};
136 bool m_forward{
true};
std::ostream & operator<<(std::ostream &, const Chain &)
Output operator for debugging chains.
Definition: Chain.cpp:298
const Body * GetBackBody() const noexcept
Definition: Chain.cpp:274
const Body * GetFrontBody() const noexcept
Definition: Chain.cpp:267
iterator begin() const noexcept
Definition: Chain.cpp:217
size_t Size() const noexcept
Get the number of objects in the chain (joints and bodies).
Definition: Chain.cpp:260
const Connection * GetFirstJoint() const noexcept
Get the first joint.
Definition: Chain.cpp:232
bool IsSingleLink() const noexcept
Check if the current chain has only one link.
Definition: Chain.cpp:209
static std::vector< Chain > Decompose(const MultiBody *const _mb)
Definition: Chain.cpp:18
Chain & Append(const Chain &_other) noexcept
Definition: Chain.cpp:180
std::pair< Chain, Chain > Bisect() const noexcept
Definition: Chain.cpp:132
Chain & Reverse() noexcept
Reverse the traversal order of this chain.
Definition: Chain.cpp:169
size_t GetNumJoints() const noexcept
Get the number of joints in the chain.
Definition: Chain.cpp:253
const Connection * GetLastJoint() const noexcept
Get the last joint.
Definition: Chain.cpp:239
JointList::const_iterator iterator
Definition: Chain.h:37
std::deque< const Connection * > JointList
Definition: Chain.h:36
iterator end() const noexcept
Definition: Chain.cpp:224
bool IsForward() const noexcept
Is this chain oriented in the same way as the multibody?
Definition: Chain.cpp:246
Definition: Connection.h:35
Definition: MultiBody.h:65