altEngine
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
matrix.h
Go to the documentation of this file.
1 #ifndef MATRIX_H
2 #define MATRIX_H
3 
4 double fsin(double rad);
5 double fcos(double rad);
6 
7 class matrix3
8 {
9 public:
10  matrix3 &operator=(const matrix3 &q);
11  matrix3 operator+(const matrix3 &q);
12  matrix3 operator-(const matrix3 &q);
13  matrix3 operator*(const float scalar);
14  vec3 operator*(const vec3 &vec);
15  matrix3 operator*(const matrix3 &q);
16 
17  void star(vec3 &vector);
18  void normalize();
20 
21  float m[9];
22 private:
23 };
24 
25 class matrix4
26 {
27 public:
28  matrix4();
29  matrix4(float m0, float m1, float m2, float m3,
30  float m4, float m5, float m6, float m7,
31  float m8, float m9, float m10, float m11,
32  float m12, float m13, float m14, float m15);
33 
34  matrix4 &operator=(const matrix4 &q);
35  matrix4 &operator=(const float *matrix);
36  matrix4 operator+(const matrix4 &q);
37  matrix4 operator-(const matrix4 &q);
38  matrix4 operator*(const float scalar);
39  matrix4 operator*(const float *matrix);
40  matrix4 premultiply(const float *mat) const;
41  vec4 operator*(const vec4 &vec);
42  matrix4 operator*(const matrix4 &q) const;
43  void normalize();
45  void perspective(float fovy, float aspect, float zNear, float zFar, bool infinite);
46  void ortho(float left, float right, float bottom, float top, float near, float far);
47  matrix4 lookat(const vec3 &eye, vec3 &center, vec3 &up);
48 
49 
50  // Generate matrices for point light shadow map/cubemap
51  static void mat_forward(matrix4 &mvp, vec3 &position);
52  static void mat_right(matrix4 &mvp, vec3 &position);
53  static void mat_backward(matrix4 &mvp, vec3 &position);
54  static void mat_left(matrix4 &mvp, vec3 &position);
55  static void mat_top(matrix4 &mvp, vec3 &position);
56  static void mat_bottom(matrix4 &mvp, vec3 &position);
57 
58 
59  float m[16];
60 private:
61 };
62 
63 #endif
64