extendedMove.h
Engine/source/T3D/gameBase/extended/extendedMove.h
Classes:
class
class
Public Variables
Detailed Description
Public Variables
const ExtendedMove NullExtendedMove
1 2#ifndef _EXTENDEDMOVE_H_ 3#define _EXTENDEDMOVE_H_ 4 5#include "T3D/gameBase/moveManager.h" 6#include "math/mQuat.h" 7 8struct ExtendedMove : public Move 9{ 10 typedef Move Parent; 11 12 enum Constants { 13 MaxPositionsRotations = 3, 14 15 MaxPositionBits = 16, 16 MaxRotationBits = 16, 17 }; 18 19 // Position is in millimeters 20 F32 posX[MaxPositionsRotations], posY[MaxPositionsRotations], posZ[MaxPositionsRotations]; 21 22 S32 cposX[MaxPositionsRotations], cposY[MaxPositionsRotations], cposZ[MaxPositionsRotations]; 23 24 bool EulerBasedRotation[MaxPositionsRotations]; 25 26 F32 rotX[MaxPositionsRotations], rotY[MaxPositionsRotations], rotZ[MaxPositionsRotations], rotW[MaxPositionsRotations]; 27 28 // Network clamped rotation 29 S32 crotX[MaxPositionsRotations], crotY[MaxPositionsRotations], crotZ[MaxPositionsRotations], crotW[MaxPositionsRotations]; 30 31 ExtendedMove(); 32 33 virtual void pack(BitStream *stream, const Move * move = NULL); 34 virtual void unpack(BitStream *stream, const Move * move = NULL); 35 36 virtual void clamp(); 37 virtual void unclamp(); 38}; 39 40extern const ExtendedMove NullExtendedMove; 41 42class ExtendedMoveManager 43{ 44public: 45 static F32 mPosX[ExtendedMove::MaxPositionsRotations]; 46 static F32 mPosY[ExtendedMove::MaxPositionsRotations]; 47 static F32 mPosZ[ExtendedMove::MaxPositionsRotations]; 48 static bool mRotIsEuler[ExtendedMove::MaxPositionsRotations]; 49 static F32 mRotAX[ExtendedMove::MaxPositionsRotations]; 50 static F32 mRotAY[ExtendedMove::MaxPositionsRotations]; 51 static F32 mRotAZ[ExtendedMove::MaxPositionsRotations]; 52 static F32 mRotAA[ExtendedMove::MaxPositionsRotations]; 53 54 static F32 mPosScale; 55 56 static void init(); 57}; 58 59#endif // _EXTENDEDMOVE_H_ 60