ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/lsys/matrix.cpp
Revision: 1.1
Committed: Thu Nov 6 14:31:24 2008 UTC (15 years, 5 months ago) by root
Branch: MAIN
CVS Tags: HEAD
Log Message:
*** empty log message ***

File Contents

# Content
1 /*
2 * slow, non-line, small
3 */
4
5 #include "config.h"
6
7 #include <cmath>
8
9 #include "matrix.h"
10
11 double abs(const vec &a) t_no
12 { return sqrt (a*a); }
13
14 vec normalize(const vec &a) t_no
15 { double l = 1 / abs (a); return vec(a[0]*l, a[1]*l, a[2]*l); }
16
17 vec cross(const vec &a, const vec &b) t_no
18 { return vec(a[1]*b[2]-a[2]*b[1],
19 a[2]*b[0]-a[0]*b[2],
20 a[0]*b[1]-a[1]*b[0]); }
21
22 mat operator +(const mat &a, const mat &b) t_no
23 { return mat(a[0] + b[0], a[1] + b[1], a[2] + b[2]); }
24
25 mat operator -(const mat &a, const mat &b) t_no
26 { return mat(a[0] - b[0], a[1] - b[1], a[2] - b[2]); }
27
28 vec operator *(const mat &a, const vec &b) t_no
29 { return vec(a[0] * b, a[1] * b, a[2] * b); }
30
31 vec operator *(const vec &a, const mat &b) t_no
32 { return vec(a * b(0), a * b(1), a * b(2)); }
33
34 mat operator *(const mat &a, const mat &b) t_no
35 { return mat(a[0] * b, a[1] * b, a[2] * b); }
36
37 ostream &operator <<(ostream &o, const vec &v) t_no
38 {
39 return o << "[ " << v[0] << ", "
40 << v[1] << ", "
41 << v[2] << "]";
42 }
43
44 ostream &operator <<(ostream &o, const mat &m) t_no
45 {
46 return o << "[ " << m[0] << ", "
47 << m[1] << ", "
48 << m[2] << "]";
49 }
50