#include "config.h" #include #include #define PI 3.141592653 class Vector { float an; float ma; public: // Constructors Vector() { an=0; ma=0; } Vector(float a, float m) { an=a; ma=m; } Vector(int a, float m) { an=(float) a*(PI/180); ma=m; } // Read-only parameters float angle() { return an; } int degrees() { return (int) (an*(180/PI)); } float magnitude() { return ma; } float x() { return ma * cos(an); } float y() { return ma * sin(an); } float roundto(float n) { ma = ((int)(ma*n))/n; } // Vector arithmetic Vector& operator+=(Vector v2); Vector& operator-=(Vector v2); // Magnitude arithmetic Vector& operator+=(float m); Vector& operator-=(float m); Vector& operator*=(float m); Vector& operator/=(float m); // Utility methods Vector invertX(); Vector invertY(); Vector absX(); Vector absY(); Vector nabsX(); Vector nabsY(); Vector Xvector(); Vector Yvector(); }; // Arithmetic shortcuts Vector operator+(Vector a, Vector b); Vector operator-(Vector a); Vector operator-(Vector a, Vector b); Vector operator+(Vector a, float m); Vector operator-(Vector a, float m); Vector operator*(Vector a, float m); Vector operator/(Vector a, float m); // Debug Output ostream& operator<<(ostream& s, Vector v);