source: Packages/nr3d/Math.h @ 1

Revision 1, 2.7 KB checked in by art, 13 years ago (diff)
Line 
1/***************************************************************************
2 *                                                                         *
3 *   (c) Art Tevs, MPI Informatik Saarbruecken                             *
4 *       mailto: <tevs@mpi-sb.mpg.de>                                      *
5 *                                                                         *
6 *   This program is free software; you can redistribute it and/or modify  *
7 *   it under the terms of the GNU General Public License as published by  *
8 *   the Free Software Foundation; either version 2 of the License, or     *
9 *   (at your option) any later version.                                   *
10 *                                                                         *
11 ***************************************************************************/
12#ifndef _NR__MATH_H
13#define _NR__MATH_H
14
15/*!
16 * \defgroup math Mathematics
17 *
18 * Very simple and very useful math library. Has support for a lot of operations
19 * on vectors and matricies. Vector names are choosen so to be equivalent to names used
20 * by GLSL (OpenGL shading language)
21 */
22
23namespace nrEngine {
24 
25        namespace nr3D {
26                /*--------------------------------------------------------------------------
27                * Provided classes
28                *------------------------------------------------------------------------*/
29                struct vec2;
30                struct vec3;
31                struct vec4;
32                struct mat3;
33                struct mat4;
34                struct quat;
35               
36                /*--------------------------------------------------------------------------
37                * Rename classes, so you can choose names you like
38                *------------------------------------------------------------------------*/
39                typedef vec2 float2;
40                typedef vec3 float3;
41                typedef vec4 float4;
42                typedef mat3 float3x3;
43                typedef mat4 float4x4;
44               
45               
46                /*--------------------------------------------------------------------------
47                * Provided definitions
48                *------------------------------------------------------------------------*/
49                #ifndef DEG2RAD
50                #define DEG2RAD (PI / 180.0f)
51                #endif
52               
53                #ifndef RAD2DEG
54                #define RAD2DEG (180.0f / PI)
55                #endif
56               
57                #ifndef TODEG
58                #define TODEG(x)    ((x * 180.0) / M_PI)
59                #endif
60               
61                #ifndef TORAD
62                #define TORAD(x)    ((x / 180.0) * M_PI)
63                #endif
64               
65                /*--------------------------------------------------------------------------
66                * Provided constants
67                *------------------------------------------------------------------------*/
68                static const float EPSILON =  1e-6f;
69                static const float PI  = 3.14159265358979323846f;
70        };
71};
72
73/*--------------------------------------------------------------------------
74* Includes
75*------------------------------------------------------------------------*/
76#include <math.h>
77#include "Mathlib.h"
78
79
80#endif
Note: See TracBrowser for help on using the repository browser.