00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _deMath_h
00024 #define _deMath_h
00025
00026 #include "deTypes.h"
00027
00028 #include <math.h>
00029
00034
00035 #define deSqrt(x) ((deFloat)sqrt(x))
00036 #define deCos(x) ((deFloat)cos(x))
00037 #define deSin(x) ((deFloat)sin(x))
00038 #define deAcos(x) ((deFloat)acos(x))
00039 #define deAsin(x) ((deFloat)asin(x))
00040 #define deAtan2(x,y) ((deFloat)atan2(x,y))
00041 #define deFabs(x) ((deFloat)fabs(x))
00042
00043
00048
00049 #ifndef M_PI
00050 #define DE_M_PI ((deFloat)3.14159265358979323846) // pi
00051 #else
00052 #define DE_M_PI ((deFloat)M_PI)
00053 #endif
00054 #ifndef M_PI_2
00055 #define DE_M_PI_2 ((deFloat)1.57079632679489661923) // pi/2
00056 #else
00057 #define DE_M_PI_2 ((deFloat)M_PI_2)
00058 #endif
00059 #define DE_QUATERNION_EPSILON ((deFloat)0.000001)
00060 #define DE_QUATERNION_COS_THRESHHOLD (1 - DE_QUATERNION_EPSILON)
00061
00062
00067
00068 #ifdef WIN32
00069 #define DE_MATH_API __inline
00070 #else
00071 #define DE_MATH_API inline
00072 #endif
00073
00074
00079
00080
00081 #ifdef DE_PS2_VU
00082 #define DE_VECTOR3_SIZE 4
00083 #define DE_MATRIX3_COL 4
00084 #else
00085 #define DE_VECTOR3_SIZE 3
00086 #define DE_MATRIX3_COL 3
00087 #endif
00088
00089 #define DE_QUATERNION_SIZE 4
00090 #define DE_MATRIX3_ROW 3
00091 #define DE_MATRIX3_SIZE (DE_MATRIX3_ROW * DE_MATRIX3_COL)
00092 #define DE_FRAME_SIZE (DE_QUATERNION_SIZE + DE_VECTOR3_SIZE)
00093 #define DE_TRANSFORM_SIZE (DE_MATRIX3_SIZE + DE_VECTOR3_SIZE)
00094
00095
00096 #include "deVector3f.h"
00097 #include "deQuaternionf.h"
00098 #include "deMatrix3f.h"
00099
00100 #ifdef __cplusplus
00101
00102 class deVector3;
00103 class deQuaternion;
00104 class deMatrix3;
00105 class deFrame;
00106 class deTransform;
00107 class deVector6;
00108 class deMatrix6;
00109
00110 #include "deVector3.h"
00111 #include "deQuaternion.h"
00112 #include "deMatrix3.h"
00113 #include "deFrame.h"
00114 #include "deTransform.h"
00115 #include "deVector6.h"
00116 #include "deMatrix6.h"
00117
00118 #include "deVector3.inl"
00119 #include "deQuaternion.inl"
00120 #include "deMatrix3.inl"
00121 #include "deFrame.inl"
00122 #include "deTransform.inl"
00123 #include "deVector6.inl"
00124 #include "deMatrix6.inl"
00125
00126 #endif //__cplusplus
00127
00128 #endif // _deMath_h