LLJointSolverRP3 Class Reference

#include <lljointsolverrp3.h>

Collaboration diagram for LLJointSolverRP3:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 LLJointSolverRP3 ()
virtual ~LLJointSolverRP3 ()
void setupJoints (LLJoint *jointA, LLJoint *jointB, LLJoint *jointC, LLJoint *jointGoal)
const LLVector3getPoleVector ()
void setPoleVector (const LLVector3 &poleVector)
void setBAxis (const LLVector3 &bAxis)
F32 getTwist ()
void setTwist (F32 twist)
void solve ()

Protected Attributes

LLJointmJointA
LLJointmJointB
LLJointmJointC
LLJointmJointGoal
F32 mLengthAB
F32 mLengthBC
LLVector3 mPoleVector
LLVector3 mBAxis
BOOL mbUseBAxis
F32 mTwist
BOOL mFirstTime
LLMatrix4 mSavedJointAMat
LLMatrix4 mSavedInvPlaneMat
LLQuaternion mJointABaseRotation
LLQuaternion mJointBBaseRotation

Detailed Description

Definition at line 92 of file lljointsolverrp3.h.


Constructor & Destructor Documentation

LLJointSolverRP3::LLJointSolverRP3 (  ) 

Definition at line 47 of file lljointsolverrp3.cpp.

References f, FALSE, mbUseBAxis, mFirstTime, mJointA, mJointB, mJointC, mJointGoal, mLengthAB, mLengthBC, mPoleVector, mTwist, NULL, LLVector3::setVec(), and TRUE.

LLJointSolverRP3::~LLJointSolverRP3 (  )  [virtual]

Definition at line 65 of file lljointsolverrp3.cpp.


Member Function Documentation

const LLVector3 & LLJointSolverRP3::getPoleVector (  ) 

Definition at line 94 of file lljointsolverrp3.cpp.

References mPoleVector.

F32 LLJointSolverRP3::getTwist (  ) 

Definition at line 123 of file lljointsolverrp3.cpp.

References mTwist.

void LLJointSolverRP3::setBAxis ( const LLVector3 bAxis  ) 

Definition at line 113 of file lljointsolverrp3.cpp.

References mBAxis, mbUseBAxis, LLVector3::normVec(), and TRUE.

Referenced by LLKeyframeStandMotion::onActivate(), and LLEditingMotion::onInitialize().

void LLJointSolverRP3::setPoleVector ( const LLVector3 poleVector  ) 

Definition at line 103 of file lljointsolverrp3.cpp.

References mPoleVector, and LLVector3::normVec().

Referenced by LLKeyframeStandMotion::onActivate(), and LLEditingMotion::onInitialize().

void LLJointSolverRP3::setTwist ( F32  twist  ) 

Definition at line 132 of file lljointsolverrp3.cpp.

References mTwist.

void LLJointSolverRP3::setupJoints ( LLJoint jointA,
LLJoint jointB,
LLJoint jointC,
LLJoint jointGoal 
)

Definition at line 73 of file lljointsolverrp3.cpp.

References LLJoint::getPosition(), LLJoint::getRotation(), LLVector3::magVec(), mJointA, mJointABaseRotation, mJointB, mJointBBaseRotation, mJointC, mJointGoal, mLengthAB, and mLengthBC.

Referenced by LLEditingMotion::onInitialize(), and LLKeyframeStandMotion::onUpdate().

void LLJointSolverRP3::solve (  ) 

Definition at line 141 of file lljointsolverrp3.cpp.

References angle_between(), are_parallel(), f, F_PI, LLJoint::getParent(), LLJoint::getWorldMatrix(), LLJoint::getWorldPosition(), LLJoint::getWorldRotation(), LLVector3::magVec(), LLVector3::magVecSquared(), mBAxis, mbUseBAxis, mJointA, mJointABaseRotation, mJointB, mJointBBaseRotation, mJointC, mJointGoal, mPoleVector, mTwist, LLVector3::normVec(), rotate_vector(), LLQuaternion::setQuat(), LLJoint::setRotation(), LLJoint::setWorldRotation(), and LLQuaternion::shortestArc().

Referenced by LLKeyframeStandMotion::onUpdate(), and LLEditingMotion::onUpdate().


Member Data Documentation

LLVector3 LLJointSolverRP3::mBAxis [protected]

Definition at line 104 of file lljointsolverrp3.h.

Referenced by setBAxis(), and solve().

BOOL LLJointSolverRP3::mbUseBAxis [protected]

Definition at line 105 of file lljointsolverrp3.h.

Referenced by LLJointSolverRP3(), setBAxis(), and solve().

BOOL LLJointSolverRP3::mFirstTime [protected]

Definition at line 109 of file lljointsolverrp3.h.

Referenced by LLJointSolverRP3().

LLJoint* LLJointSolverRP3::mJointA [protected]

Definition at line 95 of file lljointsolverrp3.h.

Referenced by LLJointSolverRP3(), setupJoints(), and solve().

LLQuaternion LLJointSolverRP3::mJointABaseRotation [protected]

Definition at line 113 of file lljointsolverrp3.h.

Referenced by setupJoints(), and solve().

LLJoint* LLJointSolverRP3::mJointB [protected]

Definition at line 96 of file lljointsolverrp3.h.

Referenced by LLJointSolverRP3(), setupJoints(), and solve().

LLQuaternion LLJointSolverRP3::mJointBBaseRotation [protected]

Definition at line 114 of file lljointsolverrp3.h.

Referenced by setupJoints(), and solve().

LLJoint* LLJointSolverRP3::mJointC [protected]

Definition at line 97 of file lljointsolverrp3.h.

Referenced by LLJointSolverRP3(), setupJoints(), and solve().

LLJoint* LLJointSolverRP3::mJointGoal [protected]

Definition at line 98 of file lljointsolverrp3.h.

Referenced by LLJointSolverRP3(), setupJoints(), and solve().

F32 LLJointSolverRP3::mLengthAB [protected]

Definition at line 100 of file lljointsolverrp3.h.

Referenced by LLJointSolverRP3(), and setupJoints().

F32 LLJointSolverRP3::mLengthBC [protected]

Definition at line 101 of file lljointsolverrp3.h.

Referenced by LLJointSolverRP3(), and setupJoints().

LLVector3 LLJointSolverRP3::mPoleVector [protected]

Definition at line 103 of file lljointsolverrp3.h.

Referenced by getPoleVector(), LLJointSolverRP3(), setPoleVector(), and solve().

LLMatrix4 LLJointSolverRP3::mSavedInvPlaneMat [protected]

Definition at line 111 of file lljointsolverrp3.h.

LLMatrix4 LLJointSolverRP3::mSavedJointAMat [protected]

Definition at line 110 of file lljointsolverrp3.h.

F32 LLJointSolverRP3::mTwist [protected]

Definition at line 107 of file lljointsolverrp3.h.

Referenced by getTwist(), LLJointSolverRP3(), setTwist(), and solve().


The documentation for this class was generated from the following files:
Generated on Thu Jul 1 06:11:26 2010 for Second Life Viewer by  doxygen 1.4.7