4 // VECTOR.H - vector class definition
7 // (C) 2003 Underground Software
17 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);
18 vector(const vector &v1, const vector &v2);
19 vector& operator=(const vector &v);
20 bool operator==(const vector &v);
22 vector operator*(const vector &v); // Cross product: "this" x "v"
23 vector operator+(const vector &v);
24 vector operator-(const vector &v);
25 double dot(const vector &v1, const vector &v2);
26 double dot(const vector &v);
27 double distance(const vector &v); // Pythagoras extended to 3 dimensions
29 void operator*=(const double &d);
30 void operator/=(const double &d);
31 void operator+=(const vector &v);
32 void operator-=(const vector &v);
33 vector operator*(const double &d); // Scale vector by amount
34 void zero(const double epsilon = 1.0e-6);
37 #endif // __VECTOR_H__
42 // vector.h (Last modified: 6/28/2001)
44 // Various structures used for 3 dimensional imaging
46 // by James L. Hammons
47 // (C) 2001 Underground Software
53 // What we'll do here is create the vector type and use typedef to alias Point to it. Yeah, that's it.
58 // Vector(double xx = 0, double yy = 0, double zz = 0);
59 Vector(double x1 = 0, double y1 = 0, double z1 = 0, double x2 = 0, double y2 = 0, double z2 = 0);
60 Vector(Vector head, Vector tail); // Create vector from two points
61 Vector operator=(Vector const v);
62 Vector operator+(Vector const v);
63 Vector operator-(Vector const v);
64 Vector operator-(void); // Unary negation
65 Vector operator*(double const v); // Vector times constant (double)
66 Vector operator*(float const v); // Vector times constant (float)
67 Vector operator/(double const v); // Vector divided by constant (double)
68 Vector operator/(float const v); // Vector divided by constant (float)
69 Vector operator*(Vector const v); // Vector product
70 double Dot(Vector const v); // Dot product
72 Vector& operator*=(double const v); // Vector times constant self-assignment
73 Vector& operator/=(double const v); // Vector divided by constant self-assignment
74 Vector& operator+=(Vector const v); // Vector plus Vector self-assignment
75 Vector& operator+=(double const v); // Vector plus constant self-assignment
76 Vector& operator-=(Vector const v); // Vector minus Vector self-assignment
77 Vector& operator-=(double const v); // Vector minus constant self-assignment
79 bool operator==(Vector const v); // Check for equality
80 bool operator!=(Vector const v); // Check for inequality
83 double Magnitude(void);
84 double Angle(void); // Angle of this vector WRT positive X-axis
85 double Angle(Vector v); // Angle between these two vectors
86 bool isZero(double epsilon = 1e-6);
90 static double Dot(Vector v1, Vector v2);
91 static double Magnitude(Vector v1, Vector v2);
99 #endif // __VECTOR_H__