Blender  V3.3
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
IK_QSegment Class Referenceabstract

#include <IK_QSegment.h>

Inheritance diagram for IK_QSegment:
IK_QElbowSegment IK_QNullSegment IK_QRevoluteSegment IK_QSphericalSegment IK_QSwingSegment 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_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 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_QSegmentm_parent
 
IK_QSegmentm_child
 
IK_QSegmentm_sibling
 
IK_QSegmentm_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]
 

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) You can read this as:

Definition at line 35 of file IK_QSegment.h.

Constructor & Destructor Documentation

◆ ~IK_QSegment()

IK_QSegment::~IK_QSegment ( )
virtual

Definition at line 73 of file IK_QSegment.cpp.

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

◆ IK_QSegment()

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

Member Function Documentation

◆ Axis()

virtual Vector3d IK_QSegment::Axis ( int  dof) const
pure virtual

◆ BasisChange()

Matrix3d IK_QSegment::BasisChange ( ) const

Definition at line 63 of file IK_QSegment.cpp.

References m_basis, and m_orig_basis.

Referenced by IK_GetBasisChange().

◆ Child()

IK_QSegment* IK_QSegment::Child ( ) const
inline

Definition at line 53 of file IK_QSegment.h.

References m_child.

◆ Composite()

IK_QSegment* IK_QSegment::Composite ( ) const
inline

◆ DoFId()

int IK_QSegment::DoFId ( ) const
inline

Definition at line 83 of file IK_QSegment.h.

References m_DoF_id.

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

◆ GlobalEnd()

const Vector3d IK_QSegment::GlobalEnd ( ) const
inline

Definition at line 109 of file IK_QSegment.h.

References m_global_transform.

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

◆ GlobalStart()

const Vector3d IK_QSegment::GlobalStart ( ) const
inline

Definition at line 104 of file IK_QSegment.h.

References m_global_start.

Referenced by IK_QPositionTask::ComputeJacobian().

◆ GlobalTransform()

const Affine3d& IK_QSegment::GlobalTransform ( ) const
inline

Definition at line 115 of file IK_QSegment.h.

References m_global_transform.

Referenced by IK_QOrientationTask::ComputeJacobian().

◆ Lock()

virtual void IK_QSegment::Lock ( int  ,
IK_QJacobian ,
Vector3d &   
)
inlinevirtual

◆ Locked()

bool IK_QSegment::Locked ( int  dof) const
inline

Definition at line 127 of file IK_QSegment.h.

References m_locked.

◆ MaxExtension()

const double IK_QSegment::MaxExtension ( ) const
inline

Definition at line 94 of file IK_QSegment.h.

References m_max_extension.

Referenced by IK_QPositionTask::IK_QPositionTask().

◆ NumberOfDoF()

int IK_QSegment::NumberOfDoF ( ) const
inline

Definition at line 77 of file IK_QSegment.h.

References m_num_DoF.

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

◆ Parent()

IK_QSegment* IK_QSegment::Parent ( ) const
inline

◆ PrependBasis()

void IK_QSegment::PrependBasis ( const Matrix3d &  mat)

Definition at line 134 of file IK_QSegment.cpp.

References m_basis, and m_rest_basis.

Referenced by IK_QJacobianSolver::Solve().

◆ RemoveChild()

void IK_QSegment::RemoveChild ( IK_QSegment child)
protected

Definition at line 103 of file IK_QSegment.cpp.

References m_child, m_sibling, and NULL.

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

◆ Reset()

void IK_QSegment::Reset ( )

◆ Scale()

void IK_QSegment::Scale ( double  scale)
virtual

◆ ScaleWeight()

void IK_QSegment::ScaleWeight ( int  dof,
double  scale 
)
inline

Definition at line 143 of file IK_QSegment.h.

References m_weight.

◆ SetBasis()

virtual void IK_QSegment::SetBasis ( const Matrix3d &  basis)
inlinevirtual

Reimplemented in IK_QElbowSegment, IK_QSwingSegment, IK_QRevoluteSegment, and IK_QNullSegment.

Definition at line 172 of file IK_QSegment.h.

References m_basis.

Referenced by Reset(), and SetTransform().

◆ SetComposite()

void IK_QSegment::SetComposite ( IK_QSegment seg)

Definition at line 98 of file IK_QSegment.cpp.

References m_composite.

Referenced by IK_CreateSegment().

◆ SetDoFId()

void IK_QSegment::SetDoFId ( int  dof_id)
inline

Definition at line 88 of file IK_QSegment.h.

References m_DoF_id.

Referenced by IK_QJacobianSolver::Setup().

◆ SetLimit()

virtual void IK_QSegment::SetLimit ( int  ,
double  ,
double   
)
inlinevirtual

◆ SetParent()

void IK_QSegment::SetParent ( IK_QSegment parent)

Definition at line 82 of file IK_QSegment.cpp.

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

Referenced by IK_CreateSegment(), and IK_SetParent().

◆ SetTransform()

void IK_QSegment::SetTransform ( const Vector3d &  start,
const Matrix3d &  rest_basis,
const Matrix3d &  basis,
const double  length 
)

◆ SetWeight()

virtual void IK_QSegment::SetWeight ( int  ,
double   
)
inlinevirtual

◆ Sibling()

IK_QSegment* IK_QSegment::Sibling ( ) const
inline

Definition at line 58 of file IK_QSegment.h.

References m_sibling.

◆ Translational()

bool IK_QSegment::Translational ( ) const
inline

◆ TranslationChange()

Vector3d IK_QSegment::TranslationChange ( ) const

Definition at line 68 of file IK_QSegment.cpp.

References m_orig_translation, and m_translation.

Referenced by IK_GetTranslationChange().

◆ UnLock()

void IK_QSegment::UnLock ( )
inline

Definition at line 132 of file IK_QSegment.h.

References m_locked.

◆ UpdateAngle()

virtual bool IK_QSegment::UpdateAngle ( const IK_QJacobian ,
Vector3d &  ,
bool  
)
pure virtual

◆ UpdateAngleApply()

virtual void IK_QSegment::UpdateAngleApply ( )
pure virtual

◆ UpdateTransform()

void IK_QSegment::UpdateTransform ( const Affine3d &  global)

◆ Weight()

double IK_QSegment::Weight ( int  dof) const
inline

Definition at line 138 of file IK_QSegment.h.

References m_weight.

Member Data Documentation

◆ m_basis

Matrix3d IK_QSegment::m_basis
protected

◆ m_child

IK_QSegment* IK_QSegment::m_child
protected

Definition at line 193 of file IK_QSegment.h.

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

◆ m_composite

IK_QSegment* IK_QSegment::m_composite
protected

Definition at line 195 of file IK_QSegment.h.

Referenced by Composite(), and SetComposite().

◆ m_DoF_id

int IK_QSegment::m_DoF_id
protected

◆ m_global_start

Vector3d IK_QSegment::m_global_start
protected

Definition at line 212 of file IK_QSegment.h.

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

◆ m_global_transform

Affine3d IK_QSegment::m_global_transform
protected

◆ m_locked

bool IK_QSegment::m_locked[3]
protected

◆ m_max_extension

double IK_QSegment::m_max_extension
protected

Definition at line 209 of file IK_QSegment.h.

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

◆ m_num_DoF

int IK_QSegment::m_num_DoF
protected

Definition at line 216 of file IK_QSegment.h.

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

◆ m_orig_basis

Matrix3d IK_QSegment::m_orig_basis
protected

Definition at line 205 of file IK_QSegment.h.

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

◆ m_orig_translation

Vector3d IK_QSegment::m_orig_translation
protected

Definition at line 206 of file IK_QSegment.h.

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

◆ m_parent

IK_QSegment* IK_QSegment::m_parent
protected

Definition at line 192 of file IK_QSegment.h.

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

◆ m_rest_basis

Matrix3d IK_QSegment::m_rest_basis
protected

Definition at line 200 of file IK_QSegment.h.

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

◆ m_sibling

IK_QSegment* IK_QSegment::m_sibling
protected

Definition at line 194 of file IK_QSegment.h.

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

◆ m_start

Vector3d IK_QSegment::m_start
protected

Definition at line 199 of file IK_QSegment.h.

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

◆ m_translation

Vector3d IK_QSegment::m_translation
protected

◆ m_translational

bool IK_QSegment::m_translational
protected

Definition at line 219 of file IK_QSegment.h.

Referenced by Translational().

◆ m_weight

double IK_QSegment::m_weight[3]
protected

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