ExtendedMove changes

- Support for three positions and rotations.
- Increased the number of bits used to network rotations.
- New Euler based rotation support, in addition to the existing
quaternion support.
This commit is contained in:
DavidWyand-GG 2013-04-09 13:30:25 -04:00
parent 2fd3dcb841
commit f1099cba68
3 changed files with 89 additions and 31 deletions

View file

@ -9,15 +9,17 @@ struct ExtendedMove : public Move
typedef Move Parent;
enum Constants {
MaxPositionsRotations = 2,
MaxPositionsRotations = 3,
MaxPositionBits = 13,
MaxRotationBits = 11,
MaxRotationBits = 16,
};
// Position is in millimeters
S32 posX[MaxPositionsRotations], posY[MaxPositionsRotations], posZ[MaxPositionsRotations];
bool EulerBasedRotation[MaxPositionsRotations];
F32 rotX[MaxPositionsRotations], rotY[MaxPositionsRotations], rotZ[MaxPositionsRotations], rotW[MaxPositionsRotations];
// Network clamped rotation
@ -40,6 +42,7 @@ public:
static S32 mPosX[ExtendedMove::MaxPositionsRotations];
static S32 mPosY[ExtendedMove::MaxPositionsRotations];
static S32 mPosZ[ExtendedMove::MaxPositionsRotations];
static bool mRotIsEuler[ExtendedMove::MaxPositionsRotations];
static F32 mRotAX[ExtendedMove::MaxPositionsRotations];
static F32 mRotAY[ExtendedMove::MaxPositionsRotations];
static F32 mRotAZ[ExtendedMove::MaxPositionsRotations];