Subversion Repositories gelsvn

Rev

Rev 595 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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