Subversion Repositories gelsvn

Rev

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

Rev Author Line No. Line
595 jab 1
/* ----------------------------------------------------------------------- *
2
 * This file is part of GEL, http://www.imm.dtu.dk/GEL
3
 * Copyright (C) the authors and DTU Informatics
4
 * For license and list of authors, see ../../doc/intro.pdf
5
 * ----------------------------------------------------------------------- */
6
 
7
/** @file Mat2x3d.h
8
 * @brief 2x3 double matrix class
9
 */
10
 
12 jab 11
#ifndef __CGLA_MAT2X3D_H__
12
#define __CGLA_MAT2X3D_H__
5 jab 13
 
14
#include "Vec2d.h"
15
#include "Vec3d.h"
16
#include "ArithMatFloat.h"
17
 
18
namespace CGLA
19
{
20
 
89 jab 21
	/**  \brief 2x3 double matrix class.
22
 
5 jab 23
			 This class is useful for projecting a vector from 3D space to 2D.
24
	*/
25
	class Mat2x3d: public ArithMatFloat<Vec2d, Vec3d, Mat2x3d, 2>
26
	{
27
 
28
	public:
29
		/// Construct Mat2x3d from two Vec3f vectors (vectors become rows)
30
		Mat2x3d(const Vec3d& _a, const Vec3d& _b): 
31
			ArithMatFloat<Vec2d, Vec3d, Mat2x3d, 2> (_a,_b) {}
32
 
33
		/// Construct 0 matrix.
34
		Mat2x3d() {}
35
	};
36
 
89 jab 37
	/**  \brief 3x2 double matrix class.
38
 
5 jab 39
			 This class is useful for going from plane to 3D coordinates.
40
	*/
57 jab 41
	class Mat3x2d: public ArithMatFloat<Vec3d, Vec2d, Mat3x2d, 3>
5 jab 42
	{
43
 
44
	public:
45
 
46
		/** Construct matrix from three Vec2d vectors which become the 
47
				rows of the matrix. */
57 jab 48
		Mat3x2d(const Vec2d& _a, const Vec2d& _b, const Vec2d& _c): 
49
			ArithMatFloat<Vec3d, Vec2d, Mat3x2d, 3> (_a,_b,_c) {}
5 jab 50
 
51
		/// Construct 0 matrix.
57 jab 52
		Mat3x2d() {}
5 jab 53
 
54
	};
55
 
56
 
57
}
58
#endif