Subversion Repositories gelsvn

Rev

Rev 22 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 22 Rev 41
Line 17... Line 17...
17
      This class is useful for transformations such as perspective projections 
17
      This class is useful for transformations such as perspective projections 
18
      or translation where 3x3 matrices do not suffice. */
18
      or translation where 3x3 matrices do not suffice. */
19
  class Mat4x4f: public ArithSqMat4x4Float<Vec4f, Mat4x4f>
19
  class Mat4x4f: public ArithSqMat4x4Float<Vec4f, Mat4x4f>
20
    {
20
    {
21
    public:
21
    public:
-
 
22
				
-
 
23
				/// Construct a Mat4x4f from four Vec4f vectors
-
 
24
				Mat4x4f(Vec4f _a, Vec4f _b, Vec4f _c, Vec4f _d): 
-
 
25
						ArithSqMat4x4Float<Vec4f, Mat4x4f> (_a,_b,_c,_d) {}
22
  
26
  
23
      /// Construct a Mat4x4f from four Vec4f vectors
-
 
24
      Mat4x4f(Vec4f _a, Vec4f _b, Vec4f _c, Vec4f _d): 
-
 
25
	ArithSqMat4x4Float<Vec4f, Mat4x4f> (_a,_b,_c,_d) {}
-
 
26
  
-
 
27
      /// Construct the NaN matrix
27
				/// Construct the NaN matrix
28
      Mat4x4f() {}
28
				Mat4x4f() {}
29
 
29
				
30
      /// Construct a matrix with identical elements.
30
				/// Construct a matrix with identical elements.
31
      Mat4x4f(float a): 
31
				explicit Mat4x4f(float a): 
32
	ArithSqMat4x4Float<Vec4f, Mat4x4f> (a) {}
32
						ArithSqMat4x4Float<Vec4f, Mat4x4f> (a) {}
33
    };
33
	};
34
 
34
		
35
  /// Create a rotation _matrix. Rotates about one of the major axes.
35
		/// Create a rotation _matrix. Rotates about one of the major axes.
36
  Mat4x4f rotation_Mat4x4f(CGLA::Axis axis, float angle);
36
		Mat4x4f rotation_Mat4x4f(CGLA::Axis axis, float angle);
37
 
37
		
38
  /// Create a translation matrix
38
  /// Create a translation matrix
39
  Mat4x4f translation_Mat4x4f(const Vec3f&);
39
		Mat4x4f translation_Mat4x4f(const Vec3f&);
40
 
40
		
41
  /// Create a scaling matrix.
41
		/// Create a scaling matrix.
42
  Mat4x4f scaling_Mat4x4f(const Vec3f&);
42
		Mat4x4f scaling_Mat4x4f(const Vec3f&);
43
 
43
		
44
  /// Create an identity matrix.
44
		/// Create an identity matrix.
45
  inline Mat4x4f identity_Mat4x4f()
45
  inline Mat4x4f identity_Mat4x4f()
46
    {
46
	{
47
      return Mat4x4f(Vec4f(1,0,0,0), 
47
      return Mat4x4f(Vec4f(1,0,0,0), 
48
		     Vec4f(0,1,0,0), 
48
										 Vec4f(0,1,0,0), 
49
		     Vec4f(0,0,1,0), 
49
										 Vec4f(0,0,1,0), 
50
		     Vec4f(0,0,0,1));
50
										 Vec4f(0,0,0,1));
51
    }
51
    }
52
}
52
}
53
#endif
53
#endif
54
 
54
 
55
 
55