Subversion Repositories gelsvn

Rev

Rev 67 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
12 jab 1
#ifndef __CGLA_MAT2X3D_H__
2
#define __CGLA_MAT2X3D_H__
5 jab 3
 
4
#include "Vec2d.h"
5
#include "Vec3d.h"
6
#include "ArithMatFloat.h"
7
 
8
namespace CGLA
9
{
10
 
94 bj 11
	/**  \brief 2x3 double matrix class.
12
 
5 jab 13
			 This class is useful for projecting a vector from 3D space to 2D.
14
	*/
15
	class Mat2x3d: public ArithMatFloat<Vec2d, Vec3d, Mat2x3d, 2>
16
	{
17
 
18
	public:
19
		/// Construct Mat2x3d from two Vec3f vectors (vectors become rows)
20
		Mat2x3d(const Vec3d& _a, const Vec3d& _b): 
21
			ArithMatFloat<Vec2d, Vec3d, Mat2x3d, 2> (_a,_b) {}
22
 
23
		/// Construct 0 matrix.
24
		Mat2x3d() {}
25
	};
26
 
94 bj 27
	/**  \brief 3x2 double matrix class.
28
 
5 jab 29
			 This class is useful for going from plane to 3D coordinates.
30
	*/
57 jab 31
	class Mat3x2d: public ArithMatFloat<Vec3d, Vec2d, Mat3x2d, 3>
5 jab 32
	{
33
 
34
	public:
35
 
36
		/** Construct matrix from three Vec2d vectors which become the 
37
				rows of the matrix. */
57 jab 38
		Mat3x2d(const Vec2d& _a, const Vec2d& _b, const Vec2d& _c): 
39
			ArithMatFloat<Vec3d, Vec2d, Mat3x2d, 3> (_a,_b,_c) {}
5 jab 40
 
41
		/// Construct 0 matrix.
57 jab 42
		Mat3x2d() {}
5 jab 43
 
44
	};
45
 
46
 
47
}
48
#endif