"L. Spiro Engine"
|
00001 00017 #ifndef __LSM_CONSTANTS_H__ 00018 #define __LSM_CONSTANTS_H__ 00019 00020 00021 // LSM_PI. 00022 #define LSM_PI_DOUBLE (3.14159265358979323846) 00023 #define LSM_PI (static_cast<LSREAL>(LSM_PI_DOUBLE)) 00024 #define LSM_HALFPI (static_cast<LSREAL>(LSM_PI_DOUBLE * 0.5)) 00025 #define LSM_DOUBLEPI (static_cast<LSREAL>(LSM_PI_DOUBLE * 2.0)) 00026 #define LSM_ONEFOURTHPI (static_cast<LSREAL>(LSM_PI_DOUBLE * 0.25)) 00027 #define LSM_E (static_cast<LSREAL>(2.71828182845904523536)) 00028 #define LSM_SQRT_TWO (static_cast<LSREAL>(1.41421356237309504880)) 00029 #define LSM_SQRT_THREE (static_cast<LSREAL>(1.73205080756887729352)) 00030 #define LSM_SQRT_1OVER2 (static_cast<LSREAL>(0.70710678118654752440)) 00031 #define LSM_SQRT_1OVER3 (static_cast<LSREAL>(0.57735026918962576450)) 00032 #define LSM_M_DEG2RAD (static_cast<LSREAL>(LSM_PI_DOUBLE / 180.0)) 00033 #define LSM_M_RAD2DEG (static_cast<LSREAL>(180.0 / LSM_PI_DOUBLE)) 00034 #define LSM_M_SEC2MS (static_cast<LSREAL>(1000.0)) 00035 #define LSM_M_MS2SEC (static_cast<LSREAL>(0.001)) 00036 #if LSM_BASETYPE == LSM_FIXED 00037 #define LSM_INFINITY (LSREAL::DigitMask()) 00038 #define LSM_REAL_EPSILON LSREAL( LSREAL::CFixedRawType( 1 ) ) 00039 #else 00040 #define LSM_INFINITY (static_cast<LSREAL>(1e30)) 00041 #define LSM_REAL_EPSILON (static_cast<LSREAL>(1.192092896e-07)) 00042 #endif // LSM_BASETYPE == LSM_FIXED 00043 #define LSM_FLT_EPSILON 1.192092896e-07f 00044 #define LSM_DBL_EPSILON 2.2204460492503131e-016 00045 00046 #define LSM_MAT_EPSILON LSM_REAL_EPSILON 00047 #define LSM_TWO (static_cast<LSREAL>(2.0)) 00048 #define LSM_ONE (static_cast<LSREAL>(1.0)) 00049 #define LSM_HALF (static_cast<LSREAL>(0.5)) 00050 #define LSM_FOURTH (static_cast<LSREAL>(0.25)) 00051 #define LSM_ZERO (static_cast<LSREAL>(0.0)) 00052 #define LSM_PLANE_THICKNESS (static_cast<LSREAL>(0.00005)) 00053 00054 00055 #define LSM_FLT_LOOKUP_BITS 8 00056 #define LSM_FLT_EXP_POS 23 00057 #define LSM_FLT_EXP_BIAS 127 00058 00059 #define LSM_DBL_LOOKUP_BITS 11 00060 #define LSM_DBL_EXP_POS 52 00061 #define LSM_DBL_EXP_BIAS 1023 00062 00063 #define LSM_FLT_MAX 3.402823466e+38F 00064 #define LSM_DBL_MAX 1.7976931348623158e+308 00065 00066 #if LSM_BASETYPE == LSM_FLOAT 00067 #define LSM_LOOKUP_BITS LSM_FLT_LOOKUP_BITS 00068 #define LSM_EXP_POS LSM_FLT_EXP_POS 00069 #define LSM_EXP_BIAS LSM_FLT_EXP_BIAS 00070 #elif LSM_BASETYPE == LSM_DOUBLE 00071 #define LSM_LOOKUP_BITS LSM_DBL_LOOKUP_BITS 00072 #define LSM_EXP_POS LSM_DBL_EXP_POS 00073 #define LSM_EXP_BIAS LSM_DBL_EXP_BIAS 00074 #endif // LSM_BASETYPE 00075 00076 #define LSM_LOOKUP_POS (LSM_EXP_POS - LSM_LOOKUP_BITS) 00077 #define LSM_SEED_POS (LSM_EXP_POS - 8) 00078 #define LSM_SQRT_TABLE_SIZE (2 << LSM_LOOKUP_BITS) 00079 #define LSM_LOOKUP_MASK (LSM_SQRT_TABLE_SIZE - 1) 00080 00081 #endif // __LSM_CONSTANTS_H__