/** SGX

The   sss    gggg x   x   
     s      g      x x    Engine
      sss   g  gg   x
         s  g   g  x x          Copyright 1995-2009.
     ssss    gggg x   x         Steven Goodwin. All Rights Reserved.
    
This version has been released under the GNU Public License v2.0.

Please see the license files for details.

File: sgx/include/sgx/core/math/constants.hpp

*/

#ifndef SGX_CORE_MATH_CONSTANTS_HPP
#define SGX_CORE_MATH_CONSTANTS_HPP	1

#define	SGX_NAN         0xFFC00000
#define	SGX_SNAN        0xFF800000
#define	SGX_INF         0x7F800000

#define SGX_EPSILON     0.0001f
#define SGX_PI          3.1415926535897932384626433832795f
#define SGX_2PI         6.283185307179586476925286766559f
#define SGX_PI2         1.5707963267948966192313216916398f
#define SGX_3PI2        4.7123889803846898576939650749193f
#define SGX_E		    2.7182818284590452353602874713527f

#define SGX_MIN_VALUE_FLOAT		1.401298464324817E-45f
#define SGX_MAX_VALUE_FLOAT		3.4028234663852886E38f

#define SGX_MIN_VALUE_REAL32	1.401298464324817E-45f
#define SGX_MAX_VALUE_REAL32	3.4028234663852886E38f

#define SGX_MIN_VALUE_INT32		-2147483648
#define SGX_MAX_VALUE_INT32		2147483647

#define SGX_MIN_VALUE_UINT32	0
#define SGX_MAX_VALUE_UINT32	4294967295

#define SGX_MIN_VALUE_INT16		-32768
#define SGX_MAX_VALUE_INT16		32767

// (deprecated versions)
#define SGX_FLOAT_MIN_VALUE		SGX_MIN_VALUE_FLOAT
#define SGX_FLOAT_MAX_VALUE		SGX_MAX_VALUE_FLOAT

#define SGX_REAL32_MIN_VALUE	SGX_MIN_VALUE_REAL32
#define SGX_REAL32_MAX_VALUE	SGX_MAX_VALUE_REAL32

#define SGX_INT32_MIN_VALUE		SGX_MIN_VALUE_INT32
#define SGX_INT32_MAX_VALUE		SGX_MAX_VALUE_INT32

#define SGX_UINT32_MIN_VALUE	SGX_MIN_VALUE_UINT32
#define SGX_UINT32_MAX_VALUE	SGX_MAX_VALUE_UINT32

#define SGX_INT16_MIN_VALUE		SGX_MIN_VALUE_INT16
#define SGX_INT16_MAX_VALUE		SGX_MAX_VALUE_INT16

#endif /* SGX_CORE_MATH_CONSTANTS_HPP */
