Subversion Repositories gelsvn

Rev

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

Rev 359 Rev 595
-
 
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
 
1
#include "Mat3x3d.h"
7
#include "Mat3x3d.h"
2
 
8
 
3
namespace CGLA {
9
namespace CGLA {
4
	Mat3x3d rotation_Mat3x3d(Axis axis, double angle)
10
	Mat3x3d rotation_Mat3x3d(Axis axis, double angle)
5
	{
11
	{
6
		Mat3x3d m(0.0);
12
		Mat3x3d m(0.0);
7
 
13
 
8
		switch(axis)
14
		switch(axis)
9
			{
15
			{
10
			case XAXIS:
16
			case XAXIS:
11
				m[0][0] = 1.0;
17
				m[0][0] = 1.0;
12
				m[1][1] = cos(angle);
18
				m[1][1] = cos(angle);
13
				m[1][2] = sin(angle);
19
				m[1][2] = sin(angle);
14
				m[2][1] = -sin(angle);
20
				m[2][1] = -sin(angle);
15
				m[2][2] = cos(angle);
21
				m[2][2] = cos(angle);
16
				break;
22
				break;
17
			case YAXIS:
23
			case YAXIS:
18
				m[0][0] = cos(angle);
24
				m[0][0] = cos(angle);
19
				m[0][2] = -sin(angle);
25
				m[0][2] = -sin(angle);
20
				m[2][0] = sin(angle);
26
				m[2][0] = sin(angle);
21
				m[2][2] = cos(angle);
27
				m[2][2] = cos(angle);
22
				m[1][1] = 1.0;
28
				m[1][1] = 1.0;
23
				break;
29
				break;
24
			case ZAXIS:
30
			case ZAXIS:
25
				m[0][0] = cos(angle);
31
				m[0][0] = cos(angle);
26
				m[0][1] = sin(angle);
32
				m[0][1] = sin(angle);
27
				m[1][0] = -sin(angle);
33
				m[1][0] = -sin(angle);
28
				m[1][1] = cos(angle);
34
				m[1][1] = cos(angle);
29
				m[2][2] = 1.0;
35
				m[2][2] = 1.0;
30
				break;
36
				break;
31
			}
37
			}
32
 
38
 
33
		return m;
39
		return m;
34
	}
40
	}
35
 
41
 
36
	Mat3x3d scaling_Mat3x3d(const Vec3d& v)
42
	Mat3x3d scaling_Mat3x3d(const Vec3d& v)
37
	{
43
	{
38
		Mat3x3d m(0.0);
44
		Mat3x3d m(0.0);
39
		m[0][0] = v[0];
45
		m[0][0] = v[0];
40
		m[1][1] = v[1];
46
		m[1][1] = v[1];
41
		m[2][2] = v[2];
47
		m[2][2] = v[2];
42
		return m;
48
		return m;
43
	}
49
	}
44
 
50
 
45
 
51
 
46
}
52
}
47
 
53