19 #define _USE_MATH_DEFINES
138 return os <<
"(" << v.
x <<
"," << v.
y <<
")";
173 float lengthV = v.
length();
174 if(lengthV > maxValue)
176 float mult = (maxValue / lengthV);
Vector2D(float _x, float _y)
Constructor.
Definition: Vector2D.h:48
bool operator==(const Vector2D &v) const
Vector equality.
Definition: Vector2D.h:108
void operator/=(const float &a)
Divides the vector by a scalar.
Definition: Vector2D.h:102
void normalize()
Definition: Vector2D.h:117
Vector2D(const Vector2D &v)
Copy constructor.
Definition: Vector2D.h:42
Vector2D()
Definition: Vector2D.h:37
float dot(const Vector2D &v1, const Vector2D &v2)
The dot product between two vectors.
Definition: Vector2D.h:152
float y
Definition: Vector2D.h:34
Vector2D operator*(const float a) const
Scalar multiplication.
Definition: Vector2D.h:71
Vector2D operator/(const float a) const
Scalar division.
Definition: Vector2D.h:76
Vector2D normalize(const Vector2D &v)
Normalization of a vector.
Definition: Vector2D.h:145
void operator-=(const Vector2D &v)
Subtracts a 2d vector from the current vector.
Definition: Vector2D.h:92
Vector2D operator-(const Vector2D &v) const
Vector subtraction.
Definition: Vector2D.h:60
float det(const Vector2D &v1, const Vector2D &v2)
The cross product between two vectors.
Definition: Vector2D.h:159
bool operator!=(const Vector2D &v) const
Vector inequality.
Definition: Vector2D.h:114
float operator*(const Vector2D &v) const
Dot product.
Definition: Vector2D.h:66
Vector2D operator+(const Vector2D &v) const
Vector addition.
Definition: Vector2D.h:54
float length() const
Definition: Vector2D.h:120
void operator+=(const Vector2D &v)
Adds a 2d vector to the current vector.
Definition: Vector2D.h:87
void clamp(Vector2D &v, float maxValue)
Caps the magnitude of a vector to a maximum value.
Definition: Vector2D.h:172
void operator*=(const float &a)
Multiplies the vector by a scalar.
Definition: Vector2D.h:97
Vector2D operator*(const float a, const Vector2D &v)
Scalar multiplication (left operator)
Definition: Vector2D.h:166
float x
Definition: Vector2D.h:32
A two-dimensional vector class.
Definition: Vector2D.h:28
Vector2D perpendicular() const
Definition: Vector2D.h:126
std::ostream & operator<<(std::ostream &os, const Vector2D &v)
Writes a vector to an output stream.
Definition: Vector2D.h:136
float lengthSqr() const
Definition: Vector2D.h:123
float operator^(const Vector2D &v) const
Cross product.
Definition: Vector2D.h:82