Blender V2.61 - r43446
Public Member Functions | Protected Member Functions | Protected Attributes

IK_QSegment Class Reference

#include <IK_QSegment.h>

Inheritance diagram for IK_QSegment:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual ~IK_QSegment ()
void SetTransform (const MT_Vector3 &start, const MT_Matrix3x3 &rest_basis, const MT_Matrix3x3 &basis, const MT_Scalar length)
void SetParent (IK_QSegment *parent)
IK_QSegmentChild () const
IK_QSegmentSibling () const
IK_QSegmentParent () const
void SetComposite (IK_QSegment *seg)
IK_QSegmentComposite () const
int NumberOfDoF () const
int DoFId () const
void SetDoFId (int dof_id)
const MT_Scalar MaxExtension () const
MT_Matrix3x3 BasisChange () const
MT_Vector3 TranslationChange () const
const MT_Point3GlobalStart () const
const MT_Point3GlobalEnd () const
const MT_TransformGlobalTransform () const
bool Translational () const
bool Locked (int dof) const
void UnLock ()
MT_Scalar Weight (int dof) const
void ScaleWeight (int dof, MT_Scalar scale)
void UpdateTransform (const MT_Transform &global)
virtual MT_Vector3 Axis (int dof) const =0
virtual bool UpdateAngle (const IK_QJacobian &, MT_Vector3 &, bool *)=0
virtual void Lock (int, IK_QJacobian &, MT_Vector3 &)
virtual void UpdateAngleApply ()=0
virtual void SetLimit (int, MT_Scalar, MT_Scalar)
virtual void SetWeight (int, MT_Scalar)
virtual void SetBasis (const MT_Matrix3x3 &basis)
void PrependBasis (const MT_Matrix3x3 &mat)
void Reset ()
virtual void Scale (float scale)

Protected Member Functions

 IK_QSegment (int num_DoF, bool translational)
void RemoveChild (IK_QSegment *child)

Protected Attributes

IK_QSegmentm_parent
IK_QSegmentm_child
IK_QSegmentm_sibling
IK_QSegmentm_composite
MT_Vector3 m_start
MT_Matrix3x3 m_rest_basis
MT_Matrix3x3 m_basis
MT_Vector3 m_translation
MT_Matrix3x3 m_orig_basis
MT_Vector3 m_orig_translation
MT_Scalar m_max_extension
MT_Point3 m_global_start
MT_Transform m_global_transform
int m_num_DoF
int m_DoF_id
bool m_locked [3]
bool m_translational
MT_Scalar m_weight [3]

Detailed Description

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) We use the standard moto column ordered matrices. You can read this as:

Definition at line 65 of file IK_QSegment.h.


Constructor & Destructor Documentation

IK_QSegment::~IK_QSegment ( ) [virtual]

Definition at line 282 of file IK_QSegment.cpp.

References m_child, m_parent, m_sibling, NULL, and RemoveChild().

IK_QSegment::IK_QSegment ( int  num_DoF,
bool  translational 
) [protected]

Member Function Documentation

virtual MT_Vector3 IK_QSegment::Axis ( int  dof) const [pure virtual]
MT_Matrix3x3 IK_QSegment::BasisChange ( ) const

Definition at line 272 of file IK_QSegment.cpp.

References m_basis, and m_orig_basis.

Referenced by IK_GetBasisChange().

IK_QSegment* IK_QSegment::Child ( ) const [inline]

Definition at line 85 of file IK_QSegment.h.

References m_child.

IK_QSegment* IK_QSegment::Composite ( ) const [inline]
int IK_QSegment::DoFId ( ) const [inline]

Definition at line 105 of file IK_QSegment.h.

References m_DoF_id.

Referenced by IK_QOrientationTask::ComputeJacobian(), and IK_QPositionTask::ComputeJacobian().

const MT_Point3& IK_QSegment::GlobalEnd ( ) const [inline]
const MT_Point3& IK_QSegment::GlobalStart ( ) const [inline]

Definition at line 120 of file IK_QSegment.h.

References m_global_start.

Referenced by IK_QPositionTask::ComputeJacobian().

const MT_Transform& IK_QSegment::GlobalTransform ( ) const [inline]

Definition at line 127 of file IK_QSegment.h.

References m_global_transform.

Referenced by IK_QOrientationTask::ComputeJacobian().

virtual void IK_QSegment::Lock ( int  ,
IK_QJacobian ,
MT_Vector3  
) [inline, virtual]
bool IK_QSegment::Locked ( int  dof) const [inline]

Definition at line 135 of file IK_QSegment.h.

References m_locked.

const MT_Scalar IK_QSegment::MaxExtension ( ) const [inline]

Definition at line 112 of file IK_QSegment.h.

References m_max_extension.

Referenced by IK_QPositionTask::IK_QPositionTask().

int IK_QSegment::NumberOfDoF ( ) const [inline]

Definition at line 101 of file IK_QSegment.h.

References m_num_DoF.

Referenced by IK_QOrientationTask::ComputeJacobian(), and IK_QPositionTask::ComputeJacobian().

IK_QSegment* IK_QSegment::Parent ( ) const [inline]
void IK_QSegment::PrependBasis ( const MT_Matrix3x3 mat)

Definition at line 343 of file IK_QSegment.cpp.

References m_basis, and m_rest_basis.

Referenced by IK_QJacobianSolver::Solve().

void IK_QSegment::RemoveChild ( IK_QSegment child) [protected]

Definition at line 312 of file IK_QSegment.cpp.

References m_child, m_sibling, and NULL.

Referenced by SetParent(), and ~IK_QSegment().

void IK_QSegment::Reset ( )
void IK_QSegment::Scale ( float  scale) [virtual]
void IK_QSegment::ScaleWeight ( int  dof,
MT_Scalar  scale 
) [inline]

Definition at line 145 of file IK_QSegment.h.

References m_weight.

virtual void IK_QSegment::SetBasis ( const MT_Matrix3x3 basis) [inline, virtual]

Reimplemented in IK_QNullSegment, IK_QRevoluteSegment, IK_QSwingSegment, and IK_QElbowSegment.

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 307 of file IK_QSegment.cpp.

References m_composite.

Referenced by IK_CreateSegment().

void IK_QSegment::SetDoFId ( int  dof_id) [inline]

Definition at line 108 of file IK_QSegment.h.

References m_DoF_id.

Referenced by IK_QJacobianSolver::Setup().

virtual void IK_QSegment::SetLimit ( int  ,
MT_Scalar  ,
MT_Scalar   
) [inline, virtual]
void IK_QSegment::SetParent ( IK_QSegment parent)

Definition at line 291 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 MT_Vector3 start,
const MT_Matrix3x3 rest_basis,
const MT_Matrix3x3 basis,
const MT_Scalar  length 
)
virtual void IK_QSegment::SetWeight ( int  ,
MT_Scalar   
) [inline, virtual]
IK_QSegment* IK_QSegment::Sibling ( ) const [inline]

Definition at line 88 of file IK_QSegment.h.

References m_sibling.

bool IK_QSegment::Translational ( ) const [inline]
MT_Vector3 IK_QSegment::TranslationChange ( ) const

Definition at line 277 of file IK_QSegment.cpp.

References m_orig_translation, and m_translation.

Referenced by IK_GetTranslationChange().

void IK_QSegment::UnLock ( ) [inline]

Definition at line 138 of file IK_QSegment.h.

References m_locked.

virtual bool IK_QSegment::UpdateAngle ( const IK_QJacobian ,
MT_Vector3 ,
bool *   
) [pure virtual]
virtual void IK_QSegment::UpdateAngleApply ( ) [pure virtual]
void IK_QSegment::UpdateTransform ( const MT_Transform global)
MT_Scalar IK_QSegment::Weight ( int  dof) const [inline]

Definition at line 142 of file IK_QSegment.h.

References m_weight.


Member Data Documentation

Definition at line 185 of file IK_QSegment.h.

Referenced by Child(), RemoveChild(), Reset(), SetParent(), UpdateTransform(), and ~IK_QSegment().

Definition at line 187 of file IK_QSegment.h.

Referenced by Composite(), and SetComposite().

int IK_QSegment::m_DoF_id [protected]

Definition at line 204 of file IK_QSegment.h.

Referenced by GlobalStart(), Scale(), and UpdateTransform().

bool IK_QSegment::m_locked[3] [protected]

Definition at line 201 of file IK_QSegment.h.

Referenced by IK_QSegment(), MaxExtension(), Scale(), and SetTransform().

int IK_QSegment::m_num_DoF [protected]

Definition at line 208 of file IK_QSegment.h.

Referenced by NumberOfDoF(), and IK_QTranslateSegment::SetWeight().

Definition at line 197 of file IK_QSegment.h.

Referenced by BasisChange(), IK_QSegment(), Reset(), and SetTransform().

Definition at line 198 of file IK_QSegment.h.

Referenced by IK_QSegment(), Reset(), Scale(), SetTransform(), and TranslationChange().

Definition at line 184 of file IK_QSegment.h.

Referenced by Parent(), SetParent(), and ~IK_QSegment().

Definition at line 192 of file IK_QSegment.h.

Referenced by IK_QSegment(), PrependBasis(), SetTransform(), and UpdateTransform().

Definition at line 186 of file IK_QSegment.h.

Referenced by RemoveChild(), Reset(), SetParent(), Sibling(), UpdateTransform(), and ~IK_QSegment().

Definition at line 191 of file IK_QSegment.h.

Referenced by IK_QSegment(), Scale(), SetTransform(), and UpdateTransform().

bool IK_QSegment::m_translational [protected]

Definition at line 211 of file IK_QSegment.h.

Referenced by Translational().


The documentation for this class was generated from the following files: