llkeyframestandmotion.h

Go to the documentation of this file.
00001 
00032 #ifndef LL_LLKEYFRAMESTANDMOTION_H
00033 #define LL_LLKEYFRAMESTANDMOTION_H
00034 
00035 //-----------------------------------------------------------------------------
00036 // Header files
00037 //-----------------------------------------------------------------------------
00038 #include "llkeyframemotion.h"
00039 #include "lljointsolverrp3.h"
00040 
00041 
00042 //-----------------------------------------------------------------------------
00043 // class LLKeyframeStandMotion
00044 //-----------------------------------------------------------------------------
00045 class LLKeyframeStandMotion :
00046         public LLKeyframeMotion
00047 {
00048 public:
00049         // Constructor
00050         LLKeyframeStandMotion(const LLUUID &id);
00051 
00052         // Destructor
00053         virtual ~LLKeyframeStandMotion();
00054 
00055 public:
00056         //-------------------------------------------------------------------------
00057         // functions to support MotionController and MotionRegistry
00058         //-------------------------------------------------------------------------
00059 
00060         // static constructor
00061         // all subclasses must implement such a function and register it
00062         static LLMotion *create(const LLUUID &id) { return new LLKeyframeStandMotion(id); }
00063 
00064 public:
00065         //-------------------------------------------------------------------------
00066         // animation callbacks to be implemented by subclasses
00067         //-------------------------------------------------------------------------
00068         virtual LLMotionInitStatus onInitialize(LLCharacter *character);
00069         virtual BOOL onActivate();
00070         void    onDeactivate();
00071         virtual BOOL onUpdate(F32 time, U8* joint_mask);
00072 
00073 public:
00074         //-------------------------------------------------------------------------
00075         // Member Data
00076         //-------------------------------------------------------------------------
00077         LLCharacter     *mCharacter;
00078 
00079         BOOL                            mFlipFeet;
00080 
00081         LLJointState            *mPelvisState;
00082 
00083         LLJointState            *mHipLeftState;
00084         LLJointState            *mKneeLeftState;
00085         LLJointState            *mAnkleLeftState;
00086 
00087         LLJointState            *mHipRightState;
00088         LLJointState            *mKneeRightState;
00089         LLJointState            *mAnkleRightState;
00090 
00091         LLJoint                         mPelvisJoint;
00092 
00093         LLJoint                         mHipLeftJoint;
00094         LLJoint                         mKneeLeftJoint;
00095         LLJoint                         mAnkleLeftJoint;
00096         LLJoint                         mTargetLeft;
00097 
00098         LLJoint                         mHipRightJoint;
00099         LLJoint                         mKneeRightJoint;
00100         LLJoint                         mAnkleRightJoint;
00101         LLJoint                         mTargetRight;
00102 
00103         LLJointSolverRP3        mIKLeft;
00104         LLJointSolverRP3        mIKRight;
00105 
00106         LLVector3                       mPositionLeft;
00107         LLVector3                       mPositionRight;
00108         LLVector3                       mNormalLeft;
00109         LLVector3                       mNormalRight;
00110         LLQuaternion            mRotationLeft;
00111         LLQuaternion            mRotationRight;
00112 
00113         LLQuaternion            mLastGoodPelvisRotation;
00114         LLVector3                       mLastGoodPosition;
00115         BOOL                            mTrackAnkles;
00116 
00117         S32                                     mFrameNum;
00118 };
00119 
00120 #endif // LL_LLKEYFRAMESTANDMOTION_H
00121 

Generated on Thu Jul 1 06:08:48 2010 for Second Life Viewer by  doxygen 1.4.7