Logo Search packages:      
Sourcecode: blender version File versions  Download package

IK_QSegment Class Reference

#include <IK_QSegment.h>

Inherited by IK_QElbowSegment, IK_QNullSegment, IK_QRevoluteSegment, IK_QSphericalSegment, IK_QSwingSegment, and IK_QTranslateSegment.

List of all members.

Detailed Description

IK_QSegment.h 14444 2008-04-16 22:40:48Z hos

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. All rights reserved.

The Original Code is: all of this file.

Original author: Laurence Contributor(s): Brecht

***** END GPL LICENSE BLOCK ***** 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 62 of file IK_QSegment.h.

Public Member Functions

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

Protected Member Functions

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

Protected Attributes

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

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

Generated by  Doxygen 1.6.0   Back to index