Subversion Repositories gelsvn

Rev

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

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