Subversion Repositories gelsvn

Rev

Rev 5 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5 jab 1
#include "Mat4x4d.h"
2
 
3
namespace CGLA 
4
{
5
 
12 jab 6
  Mat4x4d rotation_Mat4x4d(Axis axis, float angle)
7
  {
8
    Mat4x4d m;
5 jab 9
 
12 jab 10
    switch(axis)
11
      {
12
      case XAXIS:
13
	m[0][0] = 1.0;
14
	m[1][1] = cos(angle);
15
	m[1][2] = sin(angle);
16
	m[2][1] = -sin(angle);
17
	m[2][2] = cos(angle);
18
	m[3][3] = 1.0;
19
	break;
20
      case YAXIS:
21
	m[0][0] = cos(angle);
22
	m[0][2] = -sin(angle);
23
	m[2][0] = sin(angle);
24
	m[2][2] = cos(angle);
25
	m[1][1] = 1.0;
26
	m[3][3] = 1.0;
27
	break;
28
      case ZAXIS:
29
	m[0][0] = cos(angle);
30
	m[0][1] = sin(angle);
31
	m[1][0] = -sin(angle);
32
	m[1][1] = cos(angle);
33
	m[2][2] = 1.0;
34
	m[3][3] = 1.0;
35
	break;
36
      }
5 jab 37
 
12 jab 38
    return m;
39
  }
5 jab 40
 
12 jab 41
  Mat4x4d translation_Mat4x4d(const Vec3f& v)
42
  {
43
    Mat4x4d m;
5 jab 44
 
12 jab 45
    m[0][0] = 1.0;
46
    m[1][1] = 1.0;
47
    m[2][2] = 1.0;
48
    m[3][3] = 1.0;
5 jab 49
 
12 jab 50
    m[0][3] = v[0];
51
    m[1][3] = v[1];
52
    m[2][3] = v[2];
5 jab 53
 
12 jab 54
    return m;
55
  }
5 jab 56
 
12 jab 57
  Mat4x4d scaling_Mat4x4d(const Vec3f& v)
58
  {
59
    Mat4x4d m;
5 jab 60
 
12 jab 61
    m[0][0] = v[0];
62
    m[1][1] = v[1];
63
    m[2][2] = v[2];
64
    m[3][3] = 1.0;
5 jab 65
 
12 jab 66
    return m;
67
  }
5 jab 68
}