LLJoint Class Reference

#include <lljoint.h>

Inheritance diagram for LLJoint:

Inheritance graph
[legend]
Collaboration diagram for LLJoint:

Collaboration graph
[legend]

List of all members.

Public Types

enum  JointPriority {
  USE_MOTION_PRIORITY = -1, LOW_PRIORITY = 0, MEDIUM_PRIORITY, HIGH_PRIORITY,
  HIGHER_PRIORITY, HIGHEST_PRIORITY, ADDITIVE_PRIORITY = LL_CHARACTER_MAX_PRIORITY
}
enum  DirtyFlags { MATRIX_DIRTY = 0x1 << 0, ROTATION_DIRTY = 0x1 << 1, POSITION_DIRTY = 0x1 << 2, ALL_DIRTY = 0x7 }
typedef std::list< LLJoint * > child_list_t

Public Member Functions

 LLJoint ()
 LLJoint (const std::string &name, LLJoint *parent=NULL)
virtual ~LLJoint ()
void setup (const std::string &name, LLJoint *parent=NULL)
void touch (U32 flags=ALL_DIRTY)
const std::string & getName () const
void setName (const std::string &name)
LLJointgetParent ()
LLJointgetRoot ()
LLJointfindJoint (const std::string &name)
void addChild (LLJoint *joint)
void removeChild (LLJoint *joint)
void removeAllChildren ()
const LLVector3getPosition ()
void setPosition (const LLVector3 &pos)
LLVector3 getWorldPosition ()
LLVector3 getLastWorldPosition ()
void setWorldPosition (const LLVector3 &pos)
const LLQuaterniongetRotation ()
void setRotation (const LLQuaternion &rot)
LLQuaternion getWorldRotation ()
LLQuaternion getLastWorldRotation ()
void setWorldRotation (const LLQuaternion &rot)
const LLVector3getScale ()
void setScale (const LLVector3 &scale)
const LLMatrix4getWorldMatrix ()
void setWorldMatrix (const LLMatrix4 &mat)
void updateWorldMatrixChildren ()
void updateWorldMatrixParent ()
void updateWorldPRSParent ()
void updateWorldMatrix ()
const LLVector3getSkinOffset ()
void setSkinOffset (const LLVector3 &offset)
LLXformMatrixgetXform ()
void clampRotation (LLQuaternion old_rot, LLQuaternion new_rot)
virtual BOOL isAnimatable ()
S32 getJointNum () const
void setJointNum (S32 joint_num)

Public Attributes

U32 mDirtyFlags
BOOL mUpdateXform
LLVector3 mSkinOffset
S32 mJointNum
child_list_t mChildren

Static Public Attributes

static S32 sNumTouches = 0
static S32 sNumUpdates = 0

Protected Attributes

std::string mName
LLJointmParent
LLXformMatrix mXform


Detailed Description

Definition at line 58 of file lljoint.h.


Member Typedef Documentation

typedef std::list<LLJoint*> LLJoint::child_list_t

Definition at line 99 of file lljoint.h.


Member Enumeration Documentation

Enumerator:
USE_MOTION_PRIORITY 
LOW_PRIORITY 
MEDIUM_PRIORITY 
HIGH_PRIORITY 
HIGHER_PRIORITY 
HIGHEST_PRIORITY 
ADDITIVE_PRIORITY 

Definition at line 62 of file lljoint.h.

Enumerator:
MATRIX_DIRTY 
ROTATION_DIRTY 
POSITION_DIRTY 
ALL_DIRTY 

Definition at line 73 of file lljoint.h.


Constructor & Destructor Documentation

LLJoint::LLJoint (  ) 

Definition at line 48 of file lljoint.cpp.

References MATRIX_DIRTY, mDirtyFlags, mJointNum, mName, mParent, mUpdateXform, mXform, NULL, POSITION_DIRTY, ROTATION_DIRTY, LLXform::setScale(), LLXform::setScaleChildOffset(), touch(), and TRUE.

Here is the call graph for this function:

LLJoint::LLJoint ( const std::string &  name,
LLJoint parent = NULL 
)

Definition at line 65 of file lljoint.cpp.

References addChild(), MATRIX_DIRTY, mDirtyFlags, mJointNum, mName, mParent, mXform, NULL, POSITION_DIRTY, ROTATION_DIRTY, setName(), LLXform::setScale(), LLXform::setScaleChildOffset(), touch(), and TRUE.

Here is the call graph for this function:

LLJoint::~LLJoint (  )  [virtual]

Definition at line 86 of file lljoint.cpp.

References mParent, removeAllChildren(), and removeChild().

Here is the call graph for this function:


Member Function Documentation

void LLJoint::setup ( const std::string &  name,
LLJoint parent = NULL 
)

Definition at line 99 of file lljoint.cpp.

References addChild(), and setName().

Here is the call graph for this function:

void LLJoint::touch ( U32  flags = ALL_DIRTY  ) 

Definition at line 112 of file lljoint.cpp.

References mChildren, mDirtyFlags, POSITION_DIRTY, ROTATION_DIRTY, sNumTouches, and touch().

Referenced by addChild(), LLJoint(), removeAllChildren(), removeChild(), setPosition(), setRotation(), setScale(), touch(), and LLVOAvatar::updateCharacter().

Here is the call graph for this function:

Here is the caller graph for this function:

const std::string& LLJoint::getName (  )  const [inline]

void LLJoint::setName ( const std::string &  name  )  [inline]

Definition at line 119 of file lljoint.h.

References mName.

Referenced by LLJoint(), LLVOAvatar::LLVOAvatar(), LLVOAvatar::loadSkeletonNode(), setup(), and LLVOAvatar::setupBone().

Here is the caller graph for this function:

LLJoint* LLJoint::getParent (  )  [inline]

LLJoint * LLJoint::getRoot (  ) 

Definition at line 136 of file lljoint.cpp.

References getParent(), getRoot(), and NULL.

Referenced by getRoot(), and LLViewerJointMesh::setMesh().

Here is the call graph for this function:

Here is the caller graph for this function:

LLJoint * LLJoint::findJoint ( const std::string &  name  ) 

Definition at line 149 of file lljoint.cpp.

References findJoint(), getName(), mChildren, and NULL.

Referenced by LLVOAvatar::buildCharacter(), findJoint(), LLVOAvatar::getJoint(), LLCharacter::getJoint(), LLVOAvatar::loadSkeletonNode(), and LLViewerJointMesh::setMesh().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLJoint::addChild ( LLJoint joint  ) 

Definition at line 172 of file lljoint.cpp.

References mChildren, mParent, mXform, removeChild(), LLXform::setParent(), and touch().

Referenced by LLEditingMotion::LLEditingMotion(), LLJoint(), LLKeyframeStandMotion::LLKeyframeStandMotion(), LLVOAvatar::loadSkeletonNode(), setup(), and LLVOAvatar::setupBone().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLJoint::removeChild ( LLJoint joint  ) 

Definition at line 187 of file lljoint.cpp.

References mChildren, mParent, mXform, NULL, LLXform::setParent(), and touch().

Referenced by addChild(), and ~LLJoint().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLJoint::removeAllChildren (  ) 

Definition at line 204 of file lljoint.cpp.

References mChildren, mParent, mXform, NULL, LLXform::setParent(), and touch().

Referenced by LLVOAvatar::buildCharacter(), ~LLJoint(), and LLVOAvatar::~LLVOAvatar().

Here is the call graph for this function:

Here is the caller graph for this function:

const LLVector3 & LLJoint::getPosition ( void   ) 

void LLJoint::setPosition ( const LLVector3 pos  ) 

LLVector3 LLJoint::getWorldPosition (  ) 

LLVector3 LLJoint::getLastWorldPosition (  ) 

Definition at line 253 of file lljoint.cpp.

References LLXform::getWorldPosition(), and mXform.

Here is the call graph for this function:

void LLJoint::setWorldPosition ( const LLVector3 pos  ) 

Definition at line 262 of file lljoint.cpp.

References getWorldMatrix(), LLMatrix4::invert(), LLMatrix4::mMatrix, mParent, LLVector3::mV, NULL, setPosition(), VW, VX, VY, and VZ.

Referenced by LLVOAvatar::buildSkeleton(), setWorldMatrix(), LLVOAvatar::slamPosition(), and LLVOAvatar::updateCharacter().

Here is the call graph for this function:

Here is the caller graph for this function:

const LLQuaternion & LLJoint::getRotation (  ) 

void LLJoint::setRotation ( const LLQuaternion rot  ) 

LLQuaternion LLJoint::getWorldRotation (  ) 

LLQuaternion LLJoint::getLastWorldRotation (  ) 

Definition at line 326 of file lljoint.cpp.

References LLXform::getWorldRotation(), and mXform.

Here is the call graph for this function:

void LLJoint::setWorldRotation ( const LLQuaternion rot  ) 

Definition at line 334 of file lljoint.cpp.

References getWorldMatrix(), LLMatrix4::invert(), LLMatrix4::mMatrix, mParent, NULL, setRotation(), VW, VX, VY, and VZ.

Referenced by LLKeyframeStandMotion::onUpdate(), setWorldMatrix(), LLJointSolverRP3::solve(), and LLVOAvatar::updateCharacter().

Here is the call graph for this function:

Here is the caller graph for this function:

const LLVector3 & LLJoint::getScale (  ) 

void LLJoint::setScale ( const LLVector3 scale  ) 

const LLMatrix4 & LLJoint::getWorldMatrix (  ) 

void LLJoint::setWorldMatrix ( const LLMatrix4 mat  ) 

Definition at line 394 of file lljoint.cpp.

References llendl, llinfos, LLMatrix4::mMatrix, setWorldPosition(), setWorldRotation(), VW, VX, VY, and VZ.

Here is the call graph for this function:

void LLJoint::updateWorldMatrixChildren (  ) 

void LLJoint::updateWorldMatrixParent (  ) 

Definition at line 412 of file lljoint.cpp.

References getParent(), MATRIX_DIRTY, mDirtyFlags, updateWorldMatrix(), and updateWorldMatrixParent().

Referenced by getWorldMatrix(), and updateWorldMatrixParent().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLJoint::updateWorldPRSParent (  ) 

Definition at line 428 of file lljoint.cpp.

References getParent(), mDirtyFlags, mXform, POSITION_DIRTY, ROTATION_DIRTY, LLXformMatrix::update(), and updateWorldPRSParent().

Referenced by getWorldPosition(), getWorldRotation(), and updateWorldPRSParent().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLJoint::updateWorldMatrix (  ) 

Definition at line 465 of file lljoint.cpp.

References FALSE, MATRIX_DIRTY, mDirtyFlags, mXform, sNumUpdates, and LLXformMatrix::updateMatrix().

Referenced by LLViewerJointCollisionVolume::renderCollision(), updateWorldMatrixChildren(), and updateWorldMatrixParent().

Here is the call graph for this function:

Here is the caller graph for this function:

const LLVector3 & LLJoint::getSkinOffset (  ) 

Definition at line 478 of file lljoint.cpp.

References mSkinOffset.

Referenced by LLSkinJoint::setupSkinJoint().

Here is the caller graph for this function:

void LLJoint::setSkinOffset ( const LLVector3 offset  ) 

Definition at line 487 of file lljoint.cpp.

References mSkinOffset.

Referenced by LLVOAvatar::setupBone().

Here is the caller graph for this function:

LLXformMatrix* LLJoint::getXform (  )  [inline]

Definition at line 172 of file lljoint.h.

References mXform.

Referenced by LLVOAvatar::getOffObject(), LLVOAvatar::sitOnObject(), and LLVOAvatar::updateCharacter().

Here is the caller graph for this function:

void LLJoint::clampRotation ( LLQuaternion  old_rot,
LLQuaternion  new_rot 
)

Definition at line 496 of file lljoint.cpp.

References getPosition(), isAnimatable(), mChildren, and LLVector3::normVec().

Here is the call graph for this function:

virtual BOOL LLJoint::isAnimatable (  )  [inline, virtual]

Reimplemented in LLViewerJointAttachment, and LLViewerJointMesh.

Definition at line 176 of file lljoint.h.

References TRUE.

Referenced by clampRotation().

Here is the caller graph for this function:

S32 LLJoint::getJointNum (  )  const [inline]

Definition at line 178 of file lljoint.h.

References mJointNum.

Referenced by LLKeyframeMotion::applyConstraint().

Here is the caller graph for this function:

void LLJoint::setJointNum ( S32  joint_num  )  [inline]

Definition at line 179 of file lljoint.h.

References mJointNum.

Referenced by LLVOAvatar::allocateCharacterJoints().

Here is the caller graph for this function:


Member Data Documentation

std::string LLJoint::mName [protected]

Definition at line 81 of file lljoint.h.

Referenced by LLViewerJointMesh::dump(), getName(), LLJoint(), and setName().

LLJoint* LLJoint::mParent [protected]

Definition at line 94 of file lljoint.h.

Referenced by getSkinOffset(), and setSkinOffset().

Definition at line 96 of file lljoint.h.

Referenced by getJointNum(), LLJoint(), and setJointNum().

S32 LLJoint::sNumTouches = 0 [static]

Definition at line 103 of file lljoint.h.

Referenced by LLVOAvatar::idleUpdate(), and touch().

S32 LLJoint::sNumUpdates = 0 [static]

Definition at line 104 of file lljoint.h.

Referenced by LLVOAvatar::idleUpdate(), and updateWorldMatrix().


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

Generated on Fri May 16 08:50:55 2008 for SecondLife by  doxygen 1.5.5