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