|
Blender V4.3
|
#include <IK_QSegment.h>
Inherited by IK_QElbowSegment, IK_QNullSegment, IK_QRevoluteSegment, IK_QSphericalSegment, IK_QSwingSegment, and IK_QTranslateSegment.
Public Member Functions | |
| virtual EIGEN_MAKE_ALIGNED_OPERATOR_NEW | ~IK_QSegment () |
| void | SetTransform (const Vector3d &start, const Matrix3d &rest_basis, const Matrix3d &basis, const double length) |
| void | SetParent (IK_QSegment *parent) |
| IK_QSegment * | Child () const |
| IK_QSegment * | Sibling () const |
| IK_QSegment * | Parent () const |
| void | SetComposite (IK_QSegment *seg) |
| IK_QSegment * | Composite () const |
| int | NumberOfDoF () const |
| int | DoFId () const |
| void | SetDoFId (int dof_id) |
| const double | MaxExtension () const |
| Matrix3d | BasisChange () const |
| Vector3d | TranslationChange () const |
| const Vector3d | GlobalStart () const |
| const Vector3d | GlobalEnd () const |
| const Affine3d & | GlobalTransform () const |
| bool | Translational () const |
| bool | Locked (int dof) const |
| void | UnLock () |
| double | Weight (int dof) const |
| void | ScaleWeight (int dof, double scale) |
| void | UpdateTransform (const Affine3d &global) |
| virtual Vector3d | Axis (int dof) const =0 |
| virtual bool | UpdateAngle (const IK_QJacobian &, Vector3d &, bool *)=0 |
| virtual void | Lock (int, IK_QJacobian &, Vector3d &) |
| virtual void | UpdateAngleApply ()=0 |
| virtual void | SetLimit (int, double, double) |
| virtual void | SetWeight (int, double) |
| virtual void | SetBasis (const Matrix3d &basis) |
| void | PrependBasis (const Matrix3d &mat) |
| void | Reset () |
| virtual void | Scale (double scale) |
Protected Member Functions | |
| IK_QSegment (int num_DoF, bool translational) | |
| void | RemoveChild (IK_QSegment *child) |
Protected Attributes | |
| IK_QSegment * | m_parent |
| IK_QSegment * | m_child |
| IK_QSegment * | m_sibling |
| IK_QSegment * | m_composite |
| Vector3d | m_start |
| Matrix3d | m_rest_basis |
| Matrix3d | m_basis |
| Vector3d | m_translation |
| Matrix3d | m_orig_basis |
| Vector3d | m_orig_translation |
| double | m_max_extension |
| Vector3d | m_global_start |
| Affine3d | m_global_transform |
| int | m_num_DoF |
| int | m_DoF_id |
| bool | m_locked [3] |
| bool | m_translational |
| double | m_weight [3] |
An IK_Qsegment encodes information about a segments local coordinate system.
These segments always point along the y-axis.
Here we define the local coordinates of a joint as local_transform = translate(tr1) * rotation(A) * rotation(q) * translate(0,length,0) You can read this as:
Definition at line 35 of file IK_QSegment.h.
|
virtual |
Definition at line 75 of file IK_QSegment.cpp.
References m_child, m_parent, m_sibling, NULL, and RemoveChild().
|
protected |
Definition at line 13 of file IK_QSegment.cpp.
References m_basis, m_locked, m_max_extension, m_orig_basis, m_orig_translation, m_rest_basis, m_start, m_translation, and m_weight.
|
pure virtual |
Implemented in IK_QElbowSegment, IK_QNullSegment, IK_QRevoluteSegment, IK_QSphericalSegment, IK_QSwingSegment, and IK_QTranslateSegment.
Referenced by IK_QOrientationTask::ComputeJacobian(), and IK_QPositionTask::ComputeJacobian().
| Matrix3d IK_QSegment::BasisChange | ( | ) | const |
Definition at line 65 of file IK_QSegment.cpp.
References m_basis, and m_orig_basis.
Referenced by IK_GetBasisChange().
|
inline |
Definition at line 53 of file IK_QSegment.h.
References m_child.
|
inline |
Definition at line 71 of file IK_QSegment.h.
References m_composite.
Referenced by IK_FreeSegment(), IK_GetBasisChange(), IK_GetTranslationChange(), IK_SetLimit(), IK_SetParent(), IK_SetStiffness(), IK_SetTransform(), IK_SolverAddGoal(), IK_SolverAddGoalOrientation(), and IK_SolverSetPoleVectorConstraint().
|
inline |
Definition at line 83 of file IK_QSegment.h.
References m_DoF_id.
Referenced by IK_QOrientationTask::ComputeJacobian(), and IK_QPositionTask::ComputeJacobian().
|
inline |
Definition at line 109 of file IK_QSegment.h.
References m_global_transform.
Referenced by IK_QPositionTask::ComputeJacobian(), and IK_QPositionTask::Distance().
|
inline |
Definition at line 104 of file IK_QSegment.h.
References m_global_start.
Referenced by IK_QPositionTask::ComputeJacobian().
|
inline |
Definition at line 115 of file IK_QSegment.h.
References m_global_transform.
Referenced by IK_QOrientationTask::ComputeJacobian().
|
inlinevirtual |
Reimplemented in IK_QElbowSegment, IK_QRevoluteSegment, IK_QSphericalSegment, IK_QSwingSegment, and IK_QTranslateSegment.
Definition at line 157 of file IK_QSegment.h.
|
inline |
Definition at line 127 of file IK_QSegment.h.
References m_locked.
|
inline |
Definition at line 94 of file IK_QSegment.h.
References m_max_extension.
Referenced by IK_QPositionTask::IK_QPositionTask().
|
inline |
Definition at line 77 of file IK_QSegment.h.
References m_num_DoF.
Referenced by IK_QOrientationTask::ComputeJacobian(), and IK_QPositionTask::ComputeJacobian().
|
inline |
Definition at line 63 of file IK_QSegment.h.
References m_parent.
Referenced by IK_QOrientationTask::ComputeJacobian(), IK_QPositionTask::ComputeJacobian(), and IK_QPositionTask::IK_QPositionTask().
| void IK_QSegment::PrependBasis | ( | const Matrix3d & | mat | ) |
Definition at line 145 of file IK_QSegment.cpp.
References m_basis, and m_rest_basis.
Referenced by IK_QJacobianSolver::Solve().
|
protected |
Definition at line 109 of file IK_QSegment.cpp.
References m_child, m_sibling, and NULL.
Referenced by SetParent(), and ~IK_QSegment().
| void IK_QSegment::Reset | ( | ) |
Definition at line 35 of file IK_QSegment.cpp.
References m_basis, m_child, m_locked, m_orig_basis, m_orig_translation, m_sibling, m_translation, and SetBasis().
|
virtual |
Reimplemented in IK_QTranslateSegment.
Definition at line 150 of file IK_QSegment.cpp.
References m_global_start, m_global_transform, m_max_extension, m_orig_translation, m_start, and m_translation.
Referenced by IK_QTranslateSegment::Scale().
Definition at line 143 of file IK_QSegment.h.
References m_weight.
|
inlinevirtual |
Reimplemented in IK_QElbowSegment, IK_QNullSegment, IK_QRevoluteSegment, and IK_QSwingSegment.
Definition at line 166 of file IK_QSegment.h.
References m_basis.
Referenced by Reset(), and SetTransform().
| void IK_QSegment::SetComposite | ( | IK_QSegment * | seg | ) |
Definition at line 104 of file IK_QSegment.cpp.
References m_composite.
Referenced by IK_CreateSegment().
|
inline |
Definition at line 88 of file IK_QSegment.h.
References m_DoF_id.
Referenced by IK_QJacobianSolver::Setup().
Reimplemented in IK_QElbowSegment, IK_QRevoluteSegment, IK_QSphericalSegment, IK_QSwingSegment, and IK_QTranslateSegment.
Definition at line 161 of file IK_QSegment.h.
Referenced by IK_SetLimit().
| void IK_QSegment::SetParent | ( | IK_QSegment * | parent | ) |
Definition at line 86 of file IK_QSegment.cpp.
References m_child, m_parent, m_sibling, and RemoveChild().
Referenced by IK_CreateSegment(), and IK_SetParent().
| void IK_QSegment::SetTransform | ( | const Vector3d & | start, |
| const Matrix3d & | rest_basis, | ||
| const Matrix3d & | basis, | ||
| const double | length ) |
Definition at line 48 of file IK_QSegment.cpp.
References length(), m_max_extension, m_orig_basis, m_orig_translation, m_rest_basis, m_start, m_translation, and SetBasis().
Referenced by IK_SetTransform().
Reimplemented in IK_QElbowSegment, IK_QRevoluteSegment, IK_QSphericalSegment, IK_QSwingSegment, and IK_QTranslateSegment.
Definition at line 164 of file IK_QSegment.h.
Referenced by IK_SetStiffness().
|
inline |
Definition at line 58 of file IK_QSegment.h.
References m_sibling.
|
inline |
Definition at line 121 of file IK_QSegment.h.
References m_translational.
Referenced by IK_QOrientationTask::ComputeJacobian(), IK_QPositionTask::ComputeJacobian(), IK_GetBasisChange(), IK_GetTranslationChange(), IK_SetLimit(), and IK_SetStiffness().
| Vector3d IK_QSegment::TranslationChange | ( | ) | const |
Definition at line 70 of file IK_QSegment.cpp.
References m_orig_translation, and m_translation.
Referenced by IK_GetTranslationChange().
|
inline |
Definition at line 132 of file IK_QSegment.h.
References m_locked.
|
pure virtual |
Implemented in IK_QElbowSegment, IK_QNullSegment, IK_QRevoluteSegment, IK_QSphericalSegment, IK_QSwingSegment, and IK_QTranslateSegment.
|
pure virtual |
Implemented in IK_QElbowSegment, IK_QNullSegment, IK_QRevoluteSegment, IK_QSphericalSegment, IK_QSwingSegment, and IK_QTranslateSegment.
| void IK_QSegment::UpdateTransform | ( | const Affine3d & | global | ) |
Definition at line 130 of file IK_QSegment.cpp.
References m_basis, m_child, m_global_start, m_global_transform, m_rest_basis, m_sibling, m_start, and m_translation.
Referenced by IK_QJacobianSolver::Solve().
Definition at line 138 of file IK_QSegment.h.
References m_weight.
|
protected |
Definition at line 195 of file IK_QSegment.h.
Referenced by BasisChange(), IK_QSegment(), PrependBasis(), Reset(), IK_QElbowSegment::SetBasis(), IK_QNullSegment::SetBasis(), IK_QRevoluteSegment::SetBasis(), SetBasis(), IK_QSwingSegment::SetBasis(), IK_QSphericalSegment::UpdateAngle(), IK_QSwingSegment::UpdateAngle(), IK_QElbowSegment::UpdateAngleApply(), IK_QRevoluteSegment::UpdateAngleApply(), IK_QSphericalSegment::UpdateAngleApply(), IK_QSwingSegment::UpdateAngleApply(), and UpdateTransform().
|
protected |
Definition at line 187 of file IK_QSegment.h.
Referenced by Child(), RemoveChild(), Reset(), SetParent(), UpdateTransform(), and ~IK_QSegment().
|
protected |
Definition at line 189 of file IK_QSegment.h.
Referenced by Composite(), and SetComposite().
|
protected |
Definition at line 210 of file IK_QSegment.h.
Referenced by DoFId(), IK_QElbowSegment::Lock(), IK_QRevoluteSegment::Lock(), IK_QSphericalSegment::Lock(), IK_QSwingSegment::Lock(), IK_QTranslateSegment::Lock(), SetDoFId(), IK_QElbowSegment::UpdateAngle(), IK_QRevoluteSegment::UpdateAngle(), IK_QSphericalSegment::UpdateAngle(), IK_QSwingSegment::UpdateAngle(), and IK_QTranslateSegment::UpdateAngle().
|
protected |
Definition at line 206 of file IK_QSegment.h.
Referenced by GlobalStart(), Scale(), and UpdateTransform().
|
protected |
Definition at line 207 of file IK_QSegment.h.
Referenced by IK_QElbowSegment::Axis(), IK_QRevoluteSegment::Axis(), IK_QSphericalSegment::Axis(), IK_QSwingSegment::Axis(), IK_QTranslateSegment::Axis(), GlobalEnd(), GlobalTransform(), Scale(), and UpdateTransform().
|
protected |
Definition at line 212 of file IK_QSegment.h.
Referenced by IK_QSegment(), IK_QElbowSegment::Lock(), IK_QRevoluteSegment::Lock(), IK_QSphericalSegment::Lock(), IK_QSwingSegment::Lock(), IK_QTranslateSegment::Lock(), Locked(), Reset(), UnLock(), IK_QElbowSegment::UpdateAngle(), IK_QRevoluteSegment::UpdateAngle(), IK_QSphericalSegment::UpdateAngle(), IK_QSwingSegment::UpdateAngle(), and IK_QTranslateSegment::UpdateAngle().
|
protected |
Definition at line 203 of file IK_QSegment.h.
Referenced by IK_QSegment(), MaxExtension(), Scale(), and SetTransform().
|
protected |
Definition at line 210 of file IK_QSegment.h.
Referenced by NumberOfDoF(), and IK_QTranslateSegment::SetWeight().
|
protected |
Definition at line 199 of file IK_QSegment.h.
Referenced by BasisChange(), IK_QSegment(), Reset(), and SetTransform().
|
protected |
Definition at line 200 of file IK_QSegment.h.
Referenced by IK_QSegment(), Reset(), Scale(), SetTransform(), and TranslationChange().
|
protected |
Definition at line 186 of file IK_QSegment.h.
Referenced by Parent(), SetParent(), and ~IK_QSegment().
|
protected |
Definition at line 194 of file IK_QSegment.h.
Referenced by IK_QSegment(), PrependBasis(), SetTransform(), and UpdateTransform().
|
protected |
Definition at line 188 of file IK_QSegment.h.
Referenced by RemoveChild(), Reset(), SetParent(), Sibling(), UpdateTransform(), and ~IK_QSegment().
|
protected |
Definition at line 193 of file IK_QSegment.h.
Referenced by IK_QSegment(), Scale(), SetTransform(), and UpdateTransform().
|
protected |
Definition at line 196 of file IK_QSegment.h.
Referenced by IK_QSegment(), Reset(), Scale(), SetTransform(), TranslationChange(), IK_QTranslateSegment::UpdateAngle(), IK_QTranslateSegment::UpdateAngleApply(), and UpdateTransform().
|
protected |
Definition at line 213 of file IK_QSegment.h.
Referenced by Translational().
|
protected |
Definition at line 214 of file IK_QSegment.h.
Referenced by IK_QSegment(), ScaleWeight(), IK_QElbowSegment::SetWeight(), IK_QRevoluteSegment::SetWeight(), IK_QSphericalSegment::SetWeight(), IK_QSwingSegment::SetWeight(), IK_QTranslateSegment::SetWeight(), and Weight().