extendedMove.h

Engine/source/T3D/gameBase/extended/extendedMove.h

More...

Classes:

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