#include <lljointsolverrp3.h>
Collaboration diagram for LLJointSolverRP3:
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 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.
const LLVector3 & LLJointSolverRP3::getPoleVector | ( | ) |
F32 LLJointSolverRP3::getTwist | ( | ) |
Definition at line 113 of file lljointsolverrp3.cpp.
References mBAxis, mbUseBAxis, LLVector3::normVec(), and TRUE.
Referenced by LLKeyframeStandMotion::onActivate(), and LLEditingMotion::onInitialize().
Definition at line 103 of file lljointsolverrp3.cpp.
References mPoleVector, and LLVector3::normVec().
Referenced by LLKeyframeStandMotion::onActivate(), and LLEditingMotion::onInitialize().
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().
LLVector3 LLJointSolverRP3::mBAxis [protected] |
BOOL LLJointSolverRP3::mbUseBAxis [protected] |
Definition at line 105 of file lljointsolverrp3.h.
Referenced by LLJointSolverRP3(), setBAxis(), and solve().
BOOL LLJointSolverRP3::mFirstTime [protected] |
LLJoint* LLJointSolverRP3::mJointA [protected] |
Definition at line 95 of file lljointsolverrp3.h.
Referenced by LLJointSolverRP3(), setupJoints(), and solve().
LLQuaternion LLJointSolverRP3::mJointABaseRotation [protected] |
LLJoint* LLJointSolverRP3::mJointB [protected] |
Definition at line 96 of file lljointsolverrp3.h.
Referenced by LLJointSolverRP3(), setupJoints(), and solve().
LLQuaternion LLJointSolverRP3::mJointBBaseRotation [protected] |
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().