33 #ifndef DART_DYNAMICS_DETAIL_INVERSEKINEMATICSPTR_HPP_
34 #define DART_DYNAMICS_DETAIL_INVERSEKINEMATICSPTR_HPP_
47 template <
class IkType,
class JacobianNodePtrT>
51 template <
class,
class>
72 template <
class OtherIkT,
class OtherJacNodePtrT>
80 operator std::shared_ptr<element_type>()
const
86 template <
class OtherIkT>
93 template <
class OtherIkT,
class OtherJacNodePtrT>
102 template <
class SharedPtrT>
117 operator bool()
const
119 return (
nullptr !=
mIK);
154 void set(
const std::shared_ptr<IkType>& sptr)
172 template <
class OtherIkT,
class OtherJacNodeT>
180 template <
class OtherIkT,
class OtherJacNodeT>
184 return !(*
this == _rhs);
188 template <
class OtherIkT,
class OtherJacNodeT>
196 template <
class OtherIkT,
class OtherJacNodeT>
204 template <
class OtherIkT,
class OtherJacNodeT>
208 return (*
this < _rhs) || (*
this == _rhs);
212 template <
class OtherIkT,
class OtherJacNodeT>
216 return (*
this > _rhs) || (*
this == _rhs);
223 std::shared_ptr<element_type>
mIK;
230 template <
class IkType,
class BodyNodeT>
234 return nullptr == _ik.
get();
238 template <
class IkType,
class BodyNodeT>
242 return nullptr == _ik.
get();
246 template <
class IkType,
class BodyNodeT>
250 return nullptr != _ik.
get();
254 template <
class IkType,
class BodyNodeT>
258 return nullptr != _ik.
get();
266 template <
class InverseKinematicsT,
class JacobianNodePtrT>
270 template <
class,
class>
279 template <
class PtrType>
286 template <
class PtrType>
300 if (
nullptr == jacNode)
308 template <
class OtherIkT,
class OtherJacNodePtrT>
323 template <
class OtherIkT,
class OtherJacNodeT>
TemplateInverseKinematicsPtr is a templated class that enables users to create a reference-counting I...
Definition: InverseKinematicsPtr.hpp:49
TemplateInverseKinematicsPtr()=default
Default constructor.
bool operator<(const TemplateInverseKinematicsPtr< OtherIkT, OtherJacNodeT > &_rhs) const
Less than.
Definition: InverseKinematicsPtr.hpp:189
TemplateInverseKinematicsPtr & operator=(const TemplateInverseKinematicsPtr< OtherIkT, OtherJacNodePtrT > &_ptr)
Assignment operator.
Definition: InverseKinematicsPtr.hpp:94
element_type & operator*() const
Dereferencing operator.
Definition: InverseKinematicsPtr.hpp:123
bool operator>(const TemplateInverseKinematicsPtr< OtherIkT, OtherJacNodeT > &_rhs) const
Greater than.
Definition: InverseKinematicsPtr.hpp:197
bool operator>=(const TemplateInverseKinematicsPtr< OtherIkT, OtherJacNodeT > &_rhs) const
Greater than or equal to.
Definition: InverseKinematicsPtr.hpp:213
TemplateInverseKinematicsPtr(const TemplateInverseKinematicsPtr< OtherIkT, OtherJacNodePtrT > &_ptr)
Constructor that takes in a strong InverseKinematicsPtr.
Definition: InverseKinematicsPtr.hpp:73
TemplateInverseKinematicsPtr & operator=(std::nullptr_t)
Assignment operator for nullptr.
Definition: InverseKinematicsPtr.hpp:110
bool operator!=(const TemplateInverseKinematicsPtr< OtherIkT, OtherJacNodeT > &_rhs) const
Inequality.
Definition: InverseKinematicsPtr.hpp:181
JacobianNodePtrT mJacNodePtr
Pointer to the Node associated with the IK module.
Definition: InverseKinematicsPtr.hpp:226
TemplateInverseKinematicsPtr(const std::shared_ptr< OtherIkT > &sptr)
Constructor that takes in a shared_ptr.
Definition: InverseKinematicsPtr.hpp:87
TemplateInverseKinematicsPtr(const std::shared_ptr< element_type > &sptr)
Constructor that accepts a shared_ptr.
Definition: InverseKinematicsPtr.hpp:57
std::shared_ptr< element_type > get_shared() const
Get the shared_ptr held by this InverseKinematicsPtr.
Definition: InverseKinematicsPtr.hpp:144
bool operator<=(const TemplateInverseKinematicsPtr< OtherIkT, OtherJacNodeT > &_rhs) const
Less than or equal to.
Definition: InverseKinematicsPtr.hpp:205
IkType element_type
Definition: InverseKinematicsPtr.hpp:54
std::shared_ptr< element_type > mIK
Pointer to the IK module.
Definition: InverseKinematicsPtr.hpp:223
bool operator==(const TemplateInverseKinematicsPtr< OtherIkT, OtherJacNodeT > &_rhs) const
Equality.
Definition: InverseKinematicsPtr.hpp:173
void set(const std::shared_ptr< IkType > &sptr)
Set the InverseKinematics module for this InverseKinematicsPtr from a shared_ptr.
Definition: InverseKinematicsPtr.hpp:154
TemplateInverseKinematicsPtr & operator=(const SharedPtrT &_ptr)
Assignment operator for shared_ptr.
Definition: InverseKinematicsPtr.hpp:103
element_type * get() const
Get the raw pointer.
Definition: InverseKinematicsPtr.hpp:135
TemplateInverseKinematicsPtr(std::nullptr_t)
Constructor that accepts a nullptr.
Definition: InverseKinematicsPtr.hpp:63
element_type * operator->() const
Dereferencing operation.
Definition: InverseKinematicsPtr.hpp:129
TemplateWeakInverseKinematicsPtr is a templated class that enables users to create a non-reference-ho...
Definition: InverseKinematicsPtr.hpp:268
TemplateInverseKinematicsPtr< InverseKinematicsT, JacobianNodePtrT > lock() const
Locks the InverseKinematics module to ensure that the referenced module is currently still available.
Definition: InverseKinematicsPtr.hpp:296
void set(const TemplateWeakInverseKinematicsPtr< OtherIkT, OtherJacNodeT > &_ptr)
Set using a weak pointer.
Definition: InverseKinematicsPtr.hpp:324
void set(const TemplateInverseKinematicsPtr< OtherIkT, OtherJacNodePtrT > &_ptr)
Set using a strong pointer.
Definition: InverseKinematicsPtr.hpp:309
TemplateWeakInverseKinematicsPtr & operator=(const PtrType &_ptr)
Assignment operator for various templated pointer types.
Definition: InverseKinematicsPtr.hpp:287
TemplateWeakInverseKinematicsPtr()=default
Default constructor.
JacobianNodePtrT mWeakJacNode
Weak pointer to the JacobianNode.
Definition: InverseKinematicsPtr.hpp:336
std::weak_ptr< InverseKinematicsT > mWeakIK
Weak pointer to the IK module.
Definition: InverseKinematicsPtr.hpp:333
TemplateWeakInverseKinematicsPtr(const PtrType &_ptr)
Constructor for various pointer types.
Definition: InverseKinematicsPtr.hpp:280
InverseKinematicsT element_type
Definition: InverseKinematicsPtr.hpp:273
bool operator==(const TemplateInverseKinematicsPtr< IkType, BodyNodeT > &_ik, std::nullptr_t)
Definition: InverseKinematicsPtr.hpp:231
bool operator!=(const TemplateInverseKinematicsPtr< IkType, BodyNodeT > &_ik, std::nullptr_t)
Definition: InverseKinematicsPtr.hpp:247
Definition: BulletCollisionDetector.cpp:65