2D Vector class More...
#include <vect.hpp>
Public Member Functions | |
Vect (Float x, Float y) | |
Constructor. | |
Vect () | |
Creates the zero vector. | |
Vect (const cpVect &) | |
Copy constructor. | |
operator cpVect () const | |
Conversion operator to Chipmunk's cpVect. | |
Vect & | operator/= (const Float v) |
Vect & | operator*= (const Float v) |
Vect & | operator-= (const Vect &rhs) |
Vect & | operator-= (const Float v) |
Vect & | operator+= (const Float v) |
Vect & | operator+= (const Vect &rhs) |
Vect & | operator++ () |
Vect & | operator-- () |
Float | length () const |
Returns the length. | |
Float | lengthSq () const |
Returns the squared length. Faster than Vect::length() when you only need to compare lengths. | |
Vect | perp () const |
Returns a perpendicular vector. (90 degree rotation) | |
Vect | rperp () const |
Returns a perpendicular vector. (-90 degree rotation) | |
Vect | normalize () const |
Returns a normalized copy. | |
Vect | normalizeSafe () const |
Vect | clamp (Float len) const |
Clamp v to length len. | |
Float | toAngle () const |
Returns the angular direction the vector is pointing in (in radians). | |
Vect | rotate (Vect v) const |
Uses complex multiplication to return a copy rotated by v. Scaling will occur if the vector isn't a unit vector. | |
Vect | unrotate (Vect v) const |
Inverse of Vect::rotate. |
Static Public Member Functions | |
static Vect | forAngle (Float a) |
Returns the unit length vector for the given angle (in radians). | |
static Float | dot (Vect v1, Vect v2) |
Vector dot product. | |
static Float | cross (Vect v1, Vect v2) |
static Vect | project (Vect v1, Vect v2) |
Returns the vector projection of v1 onto v2. | |
static Vect | lerp (Vect v1, Vect v2, Float t) |
Linearly interpolate between a and b. | |
static Vect | lerpconst (Vect v1, Vect v2, Float d) |
Linearly interpolate between v1 towards v2 by distance d. | |
static Vect | slerp (Vect v1, Vect v2, Float t) |
Spherical linearly interpolate between v1 and v2. | |
static Vect | slerpconst (Vect v1, Vect v2, Float a) |
Spherical linearly interpolate between v1 towards v2 by no more than angle a in radians. | |
static Float | dist (Vect v1, Vect v2) |
Returns the distance between v1 and v2. | |
static Float | distSq (Vect v1, Vect v2) |
static bool | near (Vect v1, Vect v2, Float dist) |
Returns true if the distance between v1 and v2 is less than dist. |
Public Attributes | |
Float | x |
x component | |
Float | y |
y component |
2D Vector class
2D vector cross product analog. The cross product of 2D vectors results in a 3D vector with only a z component. This function returns the value along the z-axis.
Returns the squared distance between v1 and v2. Faster than Vect::dist when you only need to compare distances.
Vect cp::Vect::normalizeSafe | ( | ) | const |
Returns a normalized copy or the zero vector if the vector was already the zero vector. Protects against divide by zero errors.