/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ----------------------------------------------------------------------------- */ #ifndef __NMATH__ #define __NMATH__ #include "unit/nunit.h" /* @short Math namespace. @author Emmanuel Julien (ejulien@gsworks.fr) */ namespace GS { namespace Math { static const float Pi = 3.1415926535f; /// Euler angles rotation order. enum rOrder { rOrder_ZYX = 0, rOrder_YZX, rOrder_ZXY, rOrder_XZY, rOrder_YXZ, rOrder_XYZ, rOrder_XY, rOrder_Default = rOrder_YXZ // Y then X then Z. }; enum Axis { AxisX, // Do not modify X, Y and Z order. AxisY, AxisZ, AxisNone }; void Init(); /// Return the reverse rotation order from a given input order. rOrder ReverserRotationOrder(rOrder r); float Sqrt(float v); float TestEqual(float a, float b, float e = 0.000001f); bool EqualZero(float v, float e = 0.000001f); float Pow(float v, float exp); float Ceil(float); float Floor(float); float Mod(float); float RangeAdjust(float v, float old_min, float old_max, float new_min, float new_max); float Quantize(float v, float q); float Sin(float); float ASin(float); float Cos(float); float ACos(float); float Tan(float); float ATan(float); bool IsFinite(float); } // Math } // GS #endif // __NMATH__