Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members
E:/Programming/MyProject/K_Game_hg/GameEngine/include/core/Math.h
Go to the documentation of this file.
00001 // Copyright 2006-2011 by Kat'Oun
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;//0.5f * PI;               //! Constant for PI/2.
00025 const f64 HALF_PI64                     = 0.5 * PI64;                                                                                   
00026 const f32 DEGTORAD                      = 0.0174532925199432957692369076848f;//PI / 180.0f;             //! 32bit Constant for converting from degrees to radians
00027 const f64 DEGTORAD64            = PI64 / 180.0;                                                                                 
00028 const f32 RADTODEG                      = 57.295779513082320876798154814105f;//180.0f / PI;             //! 32bit constant for converting from radians to degrees
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 } // end namespace core
00107 
00108 #endif

The KG Game Engine
The KG Game Engine Documentation © 2006-2011 by Kat'Oun. Generated on Sat Jul 2 2011 00:50:04 by Doxygen (1.7.4)