CrystalSpace

Public API Reference

csVector3 Class Reference
[Geometry utilities]

A 3D vector. More...

#include <csgeom/vector3.h>

List of all members.

Public Member Functions

void Cross (const csVector3 &px, const csVector3 &py)
 Take cross product of two vectors and put result in this vector.
 csVector3 (const csDVector3 &)
 Conversion from double precision vector to single.
 csVector3 (const csVector3 &v)
 Copy Constructor.
 csVector3 (float ix, float iy, float iz=0)
 Make a new vector and initialize with the given values.
 csVector3 (float m)
 Make a new initialized vector.
 csVector3 ()
 Make a new vector.
csString Description () const
 Return a textual representation of the vector in the form "x,y,z".
int DominantAxis () const
 Return index of the largest axis.
void Get (float *v) const
 Get the value of this vector.
float InverseNorm () const
 Returns the inverse norm (1/Norm()) of this vector.
bool IsZero (float precision=SMALL_EPSILON) const
 Query if the vector is zero.
float Norm () const
 Returns the norm of this vector.
void Normalize ()
 Scale this vector to length = 1.0;.
csVector3operator*= (float f)
 Multiply this vector by a scalar.
csVector3 operator+ () const
 Unary + operator.
csVector3operator+= (const csVector3 &v)
 Add another vector to this vector.
csVector3 operator- () const
 Unary - operator.
csVector3operator-= (const csVector3 &v)
 Subtract another vector from this vector.
csVector3operator/= (float f)
 Divide this vector by a scalar.
float & operator[] (size_t n)
 Returns n-th component of the vector.
float operator[] (size_t n) const
 Returns n-th component of the vector.
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 (csVector3 const &v)
 Set the value of this vector.
void Set (float sx, float sy, float sz)
 Set the value of this vector.
float SquaredNorm () const
 Return the squared norm (magnitude) of this vector.
csVector3 Unit () const
 Returns the unit vector in the direction of this vector.
csVector3 UnitAxisClamped () const
 Return a version of the vector clamped to closest unit vector (+-xyz).

Static Public Member Functions

static float Norm (const csVector3 &v)
 Returns the norm (magnitude) of a vector.
static csVector3 Unit (const csVector3 &v)
 Normalizes a vector to a unit vector.

Friends

bool operator!= (const csVector3 &v1, const csVector3 &v2)
 Check if two vectors are not equal.
csVector3 operator% (const csVector3 &v1, const csVector3 &v2)
 Take the cross product of two vectors.
csVector3 operator* (int f, const csVector3 &v)
 Multiply a vector and a scalar int.
csVector3 operator* (const csVector3 &v, int f)
 Multiply a vector and a scalar int.
csDVector3 operator* (double f, const csVector3 &v)
 Multiply a vector and a scalar double. Upgrade v to DVector.
csDVector3 operator* (const csVector3 &v, double f)
 Multiply a vector and a scalar double. Upgrade v to DVector.
csVector3 operator* (float f, const csVector3 &v)
 Multiply a vector and a scalar.
csVector3 operator* (const csVector3 &v, float f)
 Multiply a vector and a scalar.
float operator* (const csVector3 &v1, const csVector3 &v2)
 Take the dot product of two vectors.
csDVector3 operator+ (const csVector3 &v1, const csDVector3 &v2)
 Add two vectors of differing type, raise the csVector3 to DVector3.
csDVector3 operator+ (const csDVector3 &v1, const csVector3 &v2)
 Add two vectors of differing type, raise the csVector3 to DVector3.
csVector3 operator+ (const csVector3 &v1, const csVector3 &v2)
 Add two vectors.
csDVector3 operator- (const csDVector3 &v1, const csVector3 &v2)
 Subtract two vectors of differing type, cast to double.
csDVector3 operator- (const csVector3 &v1, const csDVector3 &v2)
 Subtract two vectors of differing type, cast to double.
csVector3 operator- (const csVector3 &v1, const csVector3 &v2)
 Subtract two vectors.
csVector3 operator/ (const csVector3 &v, int f)
 Divide a vector by a scalar int.
csDVector3 operator/ (const csVector3 &v, double f)
 Divide a vector by a scalar double. Upgrade v to DVector.
csVector3 operator/ (const csVector3 &v, float f)
 Divide a vector by a scalar.
bool operator< (const csVector3 &v, float f)
 Test if each component of a vector is less than a small epsilon value.
csVector3 operator<< (const csVector3 &v1, const csVector3 &v2)
 Project one vector onto another.
bool operator== (const csVector3 &v1, const csVector3 &v2)
 Check if two vectors are equal.
bool operator> (float f, const csVector3 &v)
 Test if each component of a vector is greater than a small epsilon value.
csVector3 operator>> (const csVector3 &v1, const csVector3 &v2)
 Project one vector onto another.

Detailed Description

A 3D vector.

Definition at line 57 of file vector3.h.


Constructor & Destructor Documentation

csVector3::csVector3 (  )  [inline]

Make a new vector.

Warning:
The vector is not initialized. This makes the code slightly faster as csVector3 objects are used a lot.

Definition at line 85 of file vector3.h.

csVector3::csVector3 ( float  m  )  [inline]

Make a new initialized vector.

Creates a new vector and initializes it to m*<1,1,1>. To create a vector initialized to the zero vector, use csVector3(0)

Definition at line 93 of file vector3.h.

csVector3::csVector3 ( float  ix,
float  iy,
float  iz = 0 
) [inline]

Make a new vector and initialize with the given values.

Definition at line 98 of file vector3.h.

csVector3::csVector3 ( const csVector3 v  )  [inline]

Copy Constructor.

Definition at line 103 of file vector3.h.

csVector3::csVector3 ( const csDVector3  ) 

Conversion from double precision vector to single.


Member Function Documentation

void csVector3::Cross ( const csVector3 px,
const csVector3 py 
) [inline]

Take cross product of two vectors and put result in this vector.

Definition at line 150 of file vector3.h.

csString csVector3::Description (  )  const

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

int csVector3::DominantAxis (  )  const [inline]

Return index of the largest axis.

Definition at line 340 of file vector3.h.

void csVector3::Get ( float *  v  )  const [inline]

Get the value of this vector.

Definition at line 278 of file vector3.h.

float csVector3::InverseNorm (  )  const [inline]

Returns the inverse norm (1/Norm()) of this vector.

Definition at line 285 of file vector3.h.

bool csVector3::IsZero ( float  precision = SMALL_EPSILON  )  const [inline]

Query if the vector is zero.

Definition at line 319 of file vector3.h.

static float csVector3::Norm ( const csVector3 v  )  [inline, static]

Returns the norm (magnitude) of a vector.

Definition at line 301 of file vector3.h.

float csVector3::Norm (  )  const [inline]

Returns the norm of this vector.

Definition at line 281 of file vector3.h.

void csVector3::Normalize (  )  [inline]

Scale this vector to length = 1.0;.

Definition at line 309 of file vector3.h.

csVector3& csVector3::operator*= ( float  f  )  [inline]

Multiply this vector by a scalar.

Definition at line 252 of file vector3.h.

csVector3 csVector3::operator+ (  )  const [inline]

Unary + operator.

Definition at line 260 of file vector3.h.

csVector3& csVector3::operator+= ( const csVector3 v  )  [inline]

Add another vector to this vector.

Definition at line 232 of file vector3.h.

csVector3 csVector3::operator- (  )  const [inline]

Unary - operator.

Definition at line 263 of file vector3.h.

csVector3& csVector3::operator-= ( const csVector3 v  )  [inline]

Subtract another vector from this vector.

Definition at line 242 of file vector3.h.

csVector3& csVector3::operator/= ( float  f  )  [inline]

Divide this vector by a scalar.

Definition at line 256 of file vector3.h.

float& csVector3::operator[] ( size_t  n  )  [inline]

Returns n-th component of the vector.

Definition at line 228 of file vector3.h.

float csVector3::operator[] ( size_t  n  )  const [inline]

Returns n-th component of the vector.

Definition at line 221 of file vector3.h.

void csVector3::Set ( float  v  )  [inline]

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

Definition at line 275 of file vector3.h.

void csVector3::Set ( float const *  v  )  [inline]

Set the value of this vector.

Definition at line 272 of file vector3.h.

void csVector3::Set ( csVector3 const &  v  )  [inline]

Set the value of this vector.

Definition at line 269 of file vector3.h.

void csVector3::Set ( float  sx,
float  sy,
float  sz 
) [inline]

Set the value of this vector.

Definition at line 266 of file vector3.h.

float csVector3::SquaredNorm (  )  const [inline]

Return the squared norm (magnitude) of this vector.

Definition at line 289 of file vector3.h.

static csVector3 csVector3::Unit ( const csVector3 v  )  [inline, static]

Normalizes a vector to a unit vector.

Definition at line 305 of file vector3.h.

csVector3 csVector3::Unit (  )  const [inline]

Returns the unit vector in the direction of this vector.

Attempting to normalize a zero-vector will result in a divide by zero error. This is as it should be... fix the calling code.

Definition at line 297 of file vector3.h.

csVector3 csVector3::UnitAxisClamped (  )  const [inline]

Return a version of the vector clamped to closest unit vector (+-xyz).

Definition at line 326 of file vector3.h.


Friends And Related Function Documentation

bool operator!= ( const csVector3 v1,
const csVector3 v2 
) [friend]

Check if two vectors are not equal.

Definition at line 198 of file vector3.h.

csVector3 operator% ( const csVector3 v1,
const csVector3 v2 
) [friend]

Take the cross product of two vectors.

Definition at line 142 of file vector3.h.

csVector3 operator* ( int  f,
const csVector3 v 
) [friend]

Multiply a vector and a scalar int.

Definition at line 178 of file vector3.h.

csVector3 operator* ( const csVector3 v,
int  f 
) [friend]

Multiply a vector and a scalar int.

Definition at line 174 of file vector3.h.

csDVector3 operator* ( double  f,
const csVector3 v 
) [friend]

Multiply a vector and a scalar double. Upgrade v to DVector.

Definition at line 170 of file vector3.h.

csDVector3 operator* ( const csVector3 v,
double  f 
) [friend]

Multiply a vector and a scalar double. Upgrade v to DVector.

Definition at line 166 of file vector3.h.

csVector3 operator* ( float  f,
const csVector3 v 
) [friend]

Multiply a vector and a scalar.

Definition at line 162 of file vector3.h.

csVector3 operator* ( const csVector3 v,
float  f 
) [friend]

Multiply a vector and a scalar.

Definition at line 158 of file vector3.h.

float operator* ( const csVector3 v1,
const csVector3 v2 
) [friend]

Take the dot product of two vectors.

Definition at line 138 of file vector3.h.

csDVector3 operator+ ( const csVector3 v1,
const csDVector3 v2 
) [friend]

Add two vectors of differing type, raise the csVector3 to DVector3.

Definition at line 122 of file vector3.h.

csDVector3 operator+ ( const csDVector3 v1,
const csVector3 v2 
) [friend]

Add two vectors of differing type, raise the csVector3 to DVector3.

Definition at line 118 of file vector3.h.

csVector3 operator+ ( const csVector3 v1,
const csVector3 v2 
) [friend]

Add two vectors.

Definition at line 114 of file vector3.h.

csDVector3 operator- ( const csDVector3 v1,
const csVector3 v2 
) [friend]

Subtract two vectors of differing type, cast to double.

Definition at line 134 of file vector3.h.

csDVector3 operator- ( const csVector3 v1,
const csDVector3 v2 
) [friend]

Subtract two vectors of differing type, cast to double.

Definition at line 130 of file vector3.h.

csVector3 operator- ( const csVector3 v1,
const csVector3 v2 
) [friend]

Subtract two vectors.

Definition at line 126 of file vector3.h.

csVector3 operator/ ( const csVector3 v,
int  f 
) [friend]

Divide a vector by a scalar int.

Definition at line 190 of file vector3.h.

csDVector3 operator/ ( const csVector3 v,
double  f 
) [friend]

Divide a vector by a scalar double. Upgrade v to DVector.

Definition at line 186 of file vector3.h.

csVector3 operator/ ( const csVector3 v,
float  f 
) [friend]

Divide a vector by a scalar.

Definition at line 182 of file vector3.h.

bool operator< ( const csVector3 v,
float  f 
) [friend]

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

Definition at line 210 of file vector3.h.

csVector3 operator<< ( const csVector3 v1,
const csVector3 v2 
) [friend]

Project one vector onto another.

Definition at line 206 of file vector3.h.

bool operator== ( const csVector3 v1,
const csVector3 v2 
) [friend]

Check if two vectors are equal.

Definition at line 194 of file vector3.h.

bool operator> ( float  f,
const csVector3 v 
) [friend]

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

Definition at line 214 of file vector3.h.

csVector3 operator>> ( const csVector3 v1,
const csVector3 v2 
) [friend]

Project one vector onto another.

Definition at line 202 of file vector3.h.


Member Data Documentation

float csVector3::m[3]

All components.

Definition at line 76 of file vector3.h.

float csVector3::x

The X component of the vector.

Definition at line 68 of file vector3.h.

float csVector3::y

The Y component of the vector.

Definition at line 70 of file vector3.h.

float csVector3::z

The Z component of the vector.

Definition at line 72 of file vector3.h.


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

Generated for Crystal Space 2.0 by doxygen 1.6.1