// Various structures used for 3 dimensional imaging
//
// by James Hammons
-// (C) 2001, 2014 Underground Software
+// (C) 2001, 2018 Underground Software
//
#ifndef __VECTOR_H__
{
public:
Vector(double xx = 0, double yy = 0, double zz = 0);
- Vector(Vector tail, Vector head); // Create vector from two points
+ Vector(Vector tail, Vector head); // Create vector from two points
+ Vector(const Vector &v);
void SetAngleAndLength(double angle, double length);
Vector operator=(Vector const v);
Vector operator+(Vector const v);
Vector& operator-=(Vector const v); // Vector minus Vector self-assignment
Vector& operator-=(double const v); // Vector minus constant self-assignment
- bool operator==(Vector const v); // Check for equality
- bool operator!=(Vector const v); // Check for inequality
+ bool operator==(Vector const v); // Check for equality
+ bool operator!=(Vector const v); // Check for inequality
Vector Unit(void);
double Magnitude(void);
static double Dot(Vector v1, Vector v2);
static double Magnitude(Vector v1, Vector v2);
+ static Vector Unit(Point p1, Point p2);
static double Angle(Point p1, Point p2);
static double Parameter(Vector v1, Vector v2, Vector p);
static Vector Normal(Vector v1, Vector v2);