| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# csVector2 Class Reference
[Geometry utilities]

A 2D vector. More...

`#include <csgeom/vector2.h>`

List of all members.

## Public Member Functions
| csVector2 (const csVector2 &o)
| Copyconstructor.
| csVector2 (float x, float y)
| Make a new vector and initialize with the given values.
| csVector2 (float v)
| Make a new vector and initialize with the given values.
| csVector2 ()
| Make a new vector. No initialization is done.
csString | Description () const
| Return a textual representation of the vector in the form "x,y".
void | Get (float *v)
| Get the value of this vector.
float | IsLeft (const csVector2 &p0, const csVector2 &p1)
| Test if this point is left of the line through p0 and p1.
float | Norm () const
| Return the norm (magnitude) of this vector.
csVector2 & | operator *= (float f)
| Multiply this vector by a scalar.
csVector2 | operator+ () const
| Unary + operator.
csVector2 & | operator+= (const csVector2 &v)
| Add another vector to this vector.
csVector2 | operator- () const
| Unary - operator.
csVector2 & | operator-= (const csVector2 &v)
| Subtract another vector from this vector.
csVector2 & | operator/= (float f)
| Divide this vector by a scalar.
float & | operator[] (int n)
| Returns n-th component of the vector.
float | operator[] (int n) const
| Returns n-th component of the vector.
void | Rotate (float angle)
| Rotate vector around the origin by a given angle in radians.
void | Set (float v)
| Set the value of this vector so that all components are the same.
void | Set (float const *v)
| Set the value of this vector.
void | Set (csVector2 const &v)
| Set vector to given values.
void | Set (float ix, float iy)
| Set vector to given values.
float | SquaredNorm () const
| Return the squared norm (magnitude) of this vector.
## Static Public Member Functions
static float | Norm (csVector2 const &v)
| Return the norm (magnitude) of a 2D vector.
## Public Attributes
float | x
| X component of vector.
float | y
| Y component of vector.
## Friends
csVector2 | operator * (float f, const csVector2 &v)
| Multiply a vector and a scalar.
csVector2 | operator * (const csVector2 &v, float f)
| Multiply a vector and a scalar.
float | operator * (const csVector2 &v1, const csVector2 &v2)
| Take the dot product of two vectors.
bool | operator!= (const csVector2 &v1, const csVector2 &v2)
| Check if two vectors are not equal.
csVector2 | operator+ (const csVector2 &v1, const csVector2 &v2)
| Add two vectors.
csVector2 | operator- (const csVector2 &v1, const csVector2 &v2)
| Subtract two vectors.
csVector2 | operator/ (const csVector2 &v, float f)
| Divide a vector by a scalar.
bool | operator< (const csVector2 &v, float f)
| Test if each component of a vector is less than a small epsilon value.
bool | operator== (const csVector2 &v1, const csVector2 &v2)
| Check if two vectors are equal.
bool | operator> (float f, const csVector2 &v)
| Test if each component of a vector is greater than a small epsilon value.

## Detailed Description

A 2D vector.

Definition at line 37 of file vector2.h.

## Constructor & Destructor Documentation

csVector2::csVector2 | ( |  | ) | `[inline]`

Make a new vector. No initialization is done.

Definition at line 46 of file vector2.h.

csVector2::csVector2 | ( | float | v | ) | `[inline]`

Make a new vector and initialize with the given values.

Definition at line 49 of file vector2.h.

csVector2::csVector2 | ( | float | x,
|  | float | y |
| ) |  |  | `[inline]`

Make a new vector and initialize with the given values.

Definition at line 54 of file vector2.h.

csVector2::csVector2 | ( | const csVector2 & | o | ) | `[inline]`

Copyconstructor.

Definition at line 59 of file vector2.h.

## Member Function Documentation

csString csVector2::Description | ( |  | ) | const

Return a textual representation of the vector in the form "x,y".

void csVector2::Get | ( | float * | v | ) | `[inline]`

Get the value of this vector.

Definition at line 81 of file vector2.h.

float csVector2::IsLeft | ( | const csVector2 & | p0,
|  | const csVector2 & | p1 |
| ) |  |  | `[inline]`

Test if this point is left of the line through p0 and p1.

Returns:
  >0 if this point is left, 0 if on the line and <0 if right.

Definition at line 100 of file vector2.h.

References x, and y.

float csVector2::Norm | ( |  | ) | const

Return the norm (magnitude) of this vector.

static float csVector2::Norm | ( | csVector2 const & | v | ) | `[static]`

Return the norm (magnitude) of a 2D vector.

Referenced by csPlane2::Normalize().

csVector2& csVector2::operator *= | ( | float | f | ) | `[inline]`

Multiply this vector by a scalar.

Definition at line 114 of file vector2.h.

csVector2 csVector2::operator+ | ( |  | ) | const`[inline]`

Unary + operator.

Definition at line 126 of file vector2.h.

csVector2& csVector2::operator+= | ( | const csVector2 & | v | ) | `[inline]`

Add another vector to this vector.

Definition at line 106 of file vector2.h.

References x, and y.

csVector2 csVector2::operator- | ( |  | ) | const`[inline]`

Unary - operator.

Definition at line 129 of file vector2.h.

csVector2& csVector2::operator-= | ( | const csVector2 & | v | ) | `[inline]`

Subtract another vector from this vector.

Definition at line 110 of file vector2.h.

References x, and y.

csVector2& csVector2::operator/= | ( | float | f | ) | `[inline]`

Divide this vector by a scalar.

Definition at line 117 of file vector2.h.

float& csVector2::operator[] | ( | int | n | ) | `[inline]`

Returns n-th component of the vector.

Definition at line 168 of file vector2.h.

float csVector2::operator[] | ( | int | n | ) | const`[inline]`

Returns n-th component of the vector.

Definition at line 166 of file vector2.h.

void csVector2::Rotate | ( | float | angle | ) |

Rotate vector around the origin by a given angle in radians.

void csVector2::Set | ( | float | v | ) | `[inline]`

Set the value of this vector so that all components are the same.

Definition at line 78 of file vector2.h.

void csVector2::Set | ( | float const * | v | ) | `[inline]`

Set the value of this vector.

Definition at line 75 of file vector2.h.

void csVector2::Set | ( | csVector2 const & | v | ) | `[inline]`

Set vector to given values.

Definition at line 71 of file vector2.h.

References x, and y.

void csVector2::Set | ( | float | ix,
|  | float | iy |
| ) |  |  | `[inline]`

Set vector to given values.

Definition at line 67 of file vector2.h.

Referenced by csShaderVariable::GetValue().

float csVector2::SquaredNorm | ( |  | ) | const`[inline]`

Return the squared norm (magnitude) of this vector.

Definition at line 90 of file vector2.h.

Referenced by csPlane2::SquaredDistance().

## Friends And Related Function Documentation

csVector2 operator * | ( | float | f,
|  | const csVector2 & | v |
| ) |  |  | `[friend]`

Multiply a vector and a scalar.

csVector2 operator * | ( | const csVector2 & | v,
|  | float | f |
| ) |  |  | `[friend]`

Multiply a vector and a scalar.

float operator * | ( | const csVector2 & | v1,
|  | const csVector2 & | v2 |
| ) |  |  | `[friend]`

Take the dot product of two vectors.

bool operator!= | ( | const csVector2 & | v1,
|  | const csVector2 & | v2 |
| ) |  |  | `[friend]`

Check if two vectors are not equal.

csVector2 operator+ | ( | const csVector2 & | v1,
|  | const csVector2 & | v2 |
| ) |  |  | `[friend]`

Add two vectors.

csVector2 operator- | ( | const csVector2 & | v1,
|  | const csVector2 & | v2 |
| ) |  |  | `[friend]`

Subtract two vectors.

csVector2 operator/ | ( | const csVector2 & | v,
|  | float | f |
| ) |  |  | `[friend]`

Divide a vector by a scalar.

bool operator< | ( | const csVector2 & | v,
|  | float | f |
| ) |  |  | `[friend]`

Test if each component of a vector is less than a small epsilon value.

Definition at line 157 of file vector2.h.

bool operator== | ( | const csVector2 & | v1,
|  | const csVector2 & | v2 |
| ) |  |  | `[friend]`

Check if two vectors are equal.

bool operator> | ( | float | f,
|  | const csVector2 & | v |
| ) |  |  | `[friend]`

Test if each component of a vector is greater than a small epsilon value.

Definition at line 161 of file vector2.h.

## Member Data Documentation

float csVector2::x

X component of vector.

Definition at line 41 of file vector2.h.

Referenced by csPlane2::A(), csBox2::AddBoundingVertex(), csBox2::AddBoundingVertexSmart(), csBox2::AddBoundingVertexSmartTest(), csBox2::AddBoundingVertexTest(), csPoly2D::AddVertex(), csMath2::Area2(), csPlane2::Classify(), csBox2::Contains(), csBox2::In(), csBox2::Intersect(), csBoxClipper::IsInside(), IsLeft(), operator+=(), operator-=(), csBox2::Overlap(), csIntersect2::SegmentPlaneNoTest(), Set(), csPlane2::Set(), csShaderVariable::SetValue(), csBox2::StartBoundingBox(), and csMath2::WhichSide2D().

float csVector2::y

Y component of vector.

Definition at line 43 of file vector2.h.

Referenced by csBox2::AddBoundingVertex(), csBox2::AddBoundingVertexSmart(), csBox2::AddBoundingVertexSmartTest(), csBox2::AddBoundingVertexTest(), csPoly2D::AddVertex(), csMath2::Area2(), csPlane2::B(), csPlane2::Classify(), csBox2::Contains(), csBox2::In(), csBox2::Intersect(), csBoxClipper::IsInside(), IsLeft(), operator+=(), operator-=(), csBox2::Overlap(), csIntersect2::SegmentPlaneNoTest(), Set(), csPlane2::Set(), csShaderVariable::SetValue(), and csMath2::WhichSide2D().

The documentation for this class was generated from the following file:

- csgeom/vector2.h