55 lines
1.4 KiB
C
55 lines
1.4 KiB
C
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
/**
|
||
|
* Contains axes definition.
|
||
|
* \file IceAxes.h
|
||
|
* \author Pierre Terdiman
|
||
|
* \date January, 29, 2000
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
// Include Guard
|
||
|
#ifndef __ICEAXES_H__
|
||
|
#define __ICEAXES_H__
|
||
|
|
||
|
enum PointComponent
|
||
|
{
|
||
|
X = 0,
|
||
|
Y = 1,
|
||
|
Z = 2,
|
||
|
W = 3,
|
||
|
|
||
|
FORCE_DWORD = 0x7fffffff
|
||
|
};
|
||
|
|
||
|
enum AxisOrder
|
||
|
{
|
||
|
AXES_XYZ = (X)|(Y<<2)|(Z<<4),
|
||
|
AXES_XZY = (X)|(Z<<2)|(Y<<4),
|
||
|
AXES_YXZ = (Y)|(X<<2)|(Z<<4),
|
||
|
AXES_YZX = (Y)|(Z<<2)|(X<<4),
|
||
|
AXES_ZXY = (Z)|(X<<2)|(Y<<4),
|
||
|
AXES_ZYX = (Z)|(Y<<2)|(X<<4),
|
||
|
|
||
|
AXES_FORCE_DWORD = 0x7fffffff
|
||
|
};
|
||
|
|
||
|
class ICEMATHS_API Axes
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
inline_ Axes(AxisOrder order)
|
||
|
{
|
||
|
mAxis0 = (order ) & 3;
|
||
|
mAxis1 = (order>>2) & 3;
|
||
|
mAxis2 = (order>>4) & 3;
|
||
|
}
|
||
|
inline_ ~Axes() {}
|
||
|
|
||
|
udword mAxis0;
|
||
|
udword mAxis1;
|
||
|
udword mAxis2;
|
||
|
};
|
||
|
|
||
|
#endif // __ICEAXES_H__
|