Lumino.Math
D:/Proj/Lumino.Math/include/Lumino/Math/MathUtils.h
00001 
00002 #ifndef LUMINO_MATH_MATH_H
00003 #define LUMINO_MATH_MATH_H
00004 
00005 #include "Common.h"
00006 
00007 namespace Lumino
00008 {
00009 
00013 class LUMINO_EXPORT Math
00014 {
00015 public:
00016 
00017     static const float PI;          
00018     static const float PIOver2;     
00019 
00020 public:
00021 
00023     static inline float ToRadians(float d) { return d * 0.017453292519943295769236907684886f; } // 0.017… は180 の逆数 * PI
00024 
00026     static inline float ToDegrees(float r) { return r * 57.295779513082320876798154814105f; }   // 57.29… はPI の逆数 * 180
00027 
00029     static inline float Clamp(float value, float minValue, float maxValue) { return (value > maxValue) ? maxValue : (value < minValue) ? minValue : value; }
00030 
00032     static inline float Clamp01(float value) { return Clamp(value, 0.0f, 1.0f); }
00033 
00035     static unsigned int NextPow2(unsigned int value);
00036 
00038     static bool EqualsFloat(float value1, float value2);
00039 
00041     static bool IsNaN(float value);
00042 
00044     static bool IsNaN(double value);
00045 
00047     static bool IsInf(float value);
00048 
00050     static bool IsInf(double value);
00051 
00053     static bool IsNaNOrInf(float value) { return (IsNaN(value) || IsInf(value)); }
00054 
00056     static bool IsNaNOrInf(double value) { return (IsNaN(value) || IsInf(value)); }
00057 
00066     static float QuadAccel(float p, float v, float a, float t);
00067 
00076     static float Lerp(float v1, float v2, float t);
00077 
00088     static float Hermite(float v1, float a1, float v2, float a2, float t);
00089 
00100     static float CatmullRom(float v1, float v2, float v3, float v4, float t);
00101 
00102 };
00103 
00104 } // namespace Lumino
00105 
00106 #endif // LUMINO_MATH_MATH_H
 All Classes Functions Variables Friends