#include <lljointsolverrp3.h>

Public Member Functions | |
| LLJointSolverRP3 () | |
| virtual | ~LLJointSolverRP3 () |
| void | setupJoints (LLJoint *jointA, LLJoint *jointB, LLJoint *jointC, LLJoint *jointGoal) |
| const LLVector3 & | getPoleVector () |
| void | setPoleVector (const LLVector3 &poleVector) |
| void | setBAxis (const LLVector3 &bAxis) |
| F32 | getTwist () |
| void | setTwist (F32 twist) |
| void | solve () |
Protected Attributes | |
| LLJoint * | mJointA |
| LLJoint * | mJointB |
| LLJoint * | mJointC |
| LLJoint * | mJointGoal |
| F32 | mLengthAB |
| F32 | mLengthBC |
| LLVector3 | mPoleVector |
| LLVector3 | mBAxis |
| BOOL | mbUseBAxis |
| F32 | mTwist |
| BOOL | mFirstTime |
| LLMatrix4 | mSavedJointAMat |
| LLMatrix4 | mSavedInvPlaneMat |
| LLQuaternion | mJointABaseRotation |
| LLQuaternion | mJointBBaseRotation |
Definition at line 92 of file lljointsolverrp3.h.
| LLJointSolverRP3::LLJointSolverRP3 | ( | ) |
Definition at line 47 of file lljointsolverrp3.cpp.
References 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.
| 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().


| const LLVector3 & LLJointSolverRP3::getPoleVector | ( | ) |
| 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::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().


| F32 LLJointSolverRP3::getTwist | ( | ) |
| void LLJointSolverRP3::setTwist | ( | F32 | twist | ) |
| void LLJointSolverRP3::solve | ( | ) |
Definition at line 141 of file lljointsolverrp3.cpp.
References angle_between(), are_parallel(), 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().


LLJoint* LLJointSolverRP3::mJointA [protected] |
Definition at line 95 of file lljointsolverrp3.h.
Referenced by LLJointSolverRP3(), setupJoints(), and solve().
LLJoint* LLJointSolverRP3::mJointB [protected] |
Definition at line 96 of file lljointsolverrp3.h.
Referenced by LLJointSolverRP3(), 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().
LLVector3 LLJointSolverRP3::mBAxis [protected] |
BOOL LLJointSolverRP3::mbUseBAxis [protected] |
Definition at line 105 of file lljointsolverrp3.h.
Referenced by LLJointSolverRP3(), setBAxis(), and solve().
F32 LLJointSolverRP3::mTwist [protected] |
Definition at line 107 of file lljointsolverrp3.h.
Referenced by getTwist(), LLJointSolverRP3(), setTwist(), and solve().
BOOL LLJointSolverRP3::mFirstTime [protected] |
LLMatrix4 LLJointSolverRP3::mSavedJointAMat [protected] |
Definition at line 110 of file lljointsolverrp3.h.
LLMatrix4 LLJointSolverRP3::mSavedInvPlaneMat [protected] |
Definition at line 111 of file lljointsolverrp3.h.
LLQuaternion LLJointSolverRP3::mJointABaseRotation [protected] |
LLQuaternion LLJointSolverRP3::mJointBBaseRotation [protected] |
1.5.5