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, 6 months ago) by root
Branch: MAIN
CVS Tags: HEAD
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.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