Go to the documentation of this file.00001
00002
00003 #ifndef _MATH_H_
00004 #define _MATH_H_
00005
00006 #include <EngineConfig.h>
00007 #include <core/Types.h>
00008
00009 namespace core
00010 {
00011
00012 #undef min
00013 #undef max
00014
00015 const f32 EPSILON = 1.192092896e-07f;
00016 const f64 EPSILON64 = 2.2204460492503131e-016;
00017 const u32 UNSIGNEDINT_MAX = 0xffffffff;
00018 const f32 FLOAT_MIN = 1.175494351e-38f;
00019 const f64 FLOAT_MIN64 = 2.2250738585072014e-308;
00020 const f32 FLOAT_MAX = 3.402823466e+38f;
00021 const f64 FLOAT_MAX64 = 1.7976931348623158e+308;
00022 const f32 PI = 3.1415926535897932384626433832795f;
00023 const f64 PI64 = 3.1415926535897932384626433832795028841971693993751;
00024 const f32 HALF_PI = 1.5707963267948966192313216916398f;
00025 const f64 HALF_PI64 = 0.5 * PI64;
00026 const f32 DEGTORAD = 0.0174532925199432957692369076848f;
00027 const f64 DEGTORAD64 = PI64 / 180.0;
00028 const f32 RADTODEG = 57.295779513082320876798154814105f;
00029 const f64 RADTODEG64 = 180.0 / PI64;
00030 const f32 ONE_THIRD = 0.3333333333333333333333333333333f;
00031 const f64 ONE_THIRD64 = 0.3333333333333333333333333333333333333333333333333;
00032
00034 inline f32 ENGINE_PUBLIC_EXPORT min(const f32 a, const f32 b);
00035 inline f64 ENGINE_PUBLIC_EXPORT min(const f64 a, const f64 b);
00036
00038 inline f32 ENGINE_PUBLIC_EXPORT max(const f32 a, const f32 b);
00039 inline f64 ENGINE_PUBLIC_EXPORT max(const f64 a, const f64 b);
00040
00042 inline f32 ENGINE_PUBLIC_EXPORT min(const f32 a, const f32 b, const f32 c);
00043 inline f64 ENGINE_PUBLIC_EXPORT min(const f64 a, const f64 b, const f64 c);
00044
00046 inline f32 ENGINE_PUBLIC_EXPORT max(const f32 a, const f32 b, const f32 c);
00047 inline f64 ENGINE_PUBLIC_EXPORT max(const f64 a, const f64 b, const f64 c);
00048
00051 inline bool ENGINE_PUBLIC_EXPORT equals(const f32 a, const f32 b);
00052 inline bool ENGINE_PUBLIC_EXPORT equals(const f64 a, const f64 b);
00053
00055 inline f32 ENGINE_PUBLIC_EXPORT abs(f32 val);
00056 inline f64 ENGINE_PUBLIC_EXPORT abs(f64 val);
00057
00058 inline f32 ENGINE_PUBLIC_EXPORT acos(f32 val);
00059 inline f64 ENGINE_PUBLIC_EXPORT acos(f64 val);
00060
00061 inline f32 ENGINE_PUBLIC_EXPORT asin(f32 val);
00062 inline f64 ENGINE_PUBLIC_EXPORT asin(f64 val);
00063
00064 inline f32 ENGINE_PUBLIC_EXPORT atan(f32 val);
00065 inline f64 ENGINE_PUBLIC_EXPORT atan(f64 val);
00066
00067 inline f32 ENGINE_PUBLIC_EXPORT atan2(f32 valy, f32 valx);
00068 inline f64 ENGINE_PUBLIC_EXPORT atan2(f64 valy, f64 valx);
00069
00070 inline f32 ENGINE_PUBLIC_EXPORT cos(f32 val);
00071 inline f64 ENGINE_PUBLIC_EXPORT cos(f64 val);
00072
00073 inline f32 ENGINE_PUBLIC_EXPORT sin(f32 val);
00074 inline f64 ENGINE_PUBLIC_EXPORT sin(f64 val);
00075
00076 inline f32 ENGINE_PUBLIC_EXPORT tan(f32 val);
00077 inline f64 ENGINE_PUBLIC_EXPORT tan(f64 val);
00078
00079 inline f32 ENGINE_PUBLIC_EXPORT ceil(f32 val);
00080 inline f64 ENGINE_PUBLIC_EXPORT ceil(f64 val);
00081
00082 inline f32 ENGINE_PUBLIC_EXPORT floor(f32 val);
00083 inline f64 ENGINE_PUBLIC_EXPORT floor(f64 val);
00084
00085 inline s32 ENGINE_PUBLIC_EXPORT ceil32(f32 val);
00086 inline s64 ENGINE_PUBLIC_EXPORT ceil64(f64 val);
00087
00088 inline s32 ENGINE_PUBLIC_EXPORT floor32(f32 val);
00089 inline s64 ENGINE_PUBLIC_EXPORT floor64(f64 val);
00090
00091 inline f32 ENGINE_PUBLIC_EXPORT clamp(f32 val, f32 min, f32 max);
00092 inline f64 ENGINE_PUBLIC_EXPORT clamp(f64 val, f64 min, f64 max);
00093
00094 inline f32 ENGINE_PUBLIC_EXPORT exp(f32 val);
00095 inline f64 ENGINE_PUBLIC_EXPORT exp(f64 val);
00096
00097 inline f32 ENGINE_PUBLIC_EXPORT log(f32 val);
00098 inline f64 ENGINE_PUBLIC_EXPORT log(f64 val);
00099
00100 inline f32 ENGINE_PUBLIC_EXPORT sqr(f32 val);
00101 inline f64 ENGINE_PUBLIC_EXPORT sqr(f64 val);
00102
00103 inline f32 ENGINE_PUBLIC_EXPORT sqrt(f32 val);
00104 inline f64 ENGINE_PUBLIC_EXPORT sqrt(f64 val);
00105
00106 }
00107
00108 #endif