X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvector.h;h=62438986ef653bd0462d9e600e307105ce592ba3;hb=84afe881653a02a16b19d4da37435b8701b1a826;hp=c7f2771ce001a45e47dd9eebc35f14a82b5bb68d;hpb=fd5a80446b2abfdfb9d8951fcc03fb1b55ad707c;p=architektonas diff --git a/src/vector.h b/src/vector.h index c7f2771..6243898 100644 --- a/src/vector.h +++ b/src/vector.h @@ -3,20 +3,22 @@ // // Various structures used for 3 dimensional imaging // -// by James L. Hammons -// (C) 2001 Underground Software +// by James Hammons +// (C) 2001, 2014 Underground Software // #ifndef __VECTOR_H__ #define __VECTOR_H__ -// What we'll do here is create the vector type and use typedef to alias Point to it. Yeah, that's it. +// What we'll do here is create the vector type and use typedef to alias Point +// to it. Yeah, that's it. class Vector { public: Vector(double xx = 0, double yy = 0, double zz = 0); Vector(Vector tail, Vector head); // Create vector from two points + void SetAngleAndLength(double angle, double length); Vector operator=(Vector const v); Vector operator+(Vector const v); Vector operator-(Vector const v); @@ -49,6 +51,7 @@ class Vector static double Magnitude(Vector v1, Vector v2); static double Parameter(Vector v1, Vector v2, Vector p); static Vector Normal(Vector v1, Vector v2); + static double AngleBetween(Vector a, Vector b); public: double x, y, z;