]> Shamusworld >> Repos - ttedit/blob - src/vector.h
Move main repo to trunk.
[ttedit] / src / vector.h
1 //\r
2 // VECTOR.H - vector class definition\r
3 //\r
4 // by James L. Hammons\r
5 // (C) 2003 Underground Software\r
6 //\r
7 \r
8 #ifndef __VECTOR_H__\r
9 #define __VECTOR_H__\r
10 \r
11 struct vector\r
12 {\r
13         double x, y, z;\r
14 \r
15         vector(double a1=0.0, double b1=0.0, double c1=0.0, double a2=0.0, double b2=0.0, double c2=0.0);\r
16         vector(const vector &v1, const vector &v2);\r
17         vector& operator=(const vector &v);\r
18         bool operator==(const vector &v);\r
19         void unitize(void);\r
20         vector operator*(const vector &v);                      // Cross product: "this" x "v"\r
21         vector operator+(const vector &v);\r
22         vector operator-(const vector &v);\r
23         double dot(const vector &v1, const vector &v2);\r
24         double dot(const vector &v);\r
25         double distance(const vector &v);                       // Pythagoras extended to 3 dimensions\r
26         double length(void);\r
27         void operator*=(const double &d);\r
28         void operator/=(const double &d);\r
29         void operator+=(const vector &v);\r
30         void operator-=(const vector &v);\r
31         vector operator*(const double &d);                      // Scale vector by amount\r
32         void zero(const double epsilon);\r
33 };\r
34 \r
35 #endif  // __VECTOR_H__\r