CrystalSpace

Public API Reference

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

csDVector4 Class Reference
[Geometry utilities]

A 4D vector with "double" components. More...

#include <csgeom/vector4.h>

List of all members.

Public Member Functions

void Cross (const csDVector4 &v1, const csDVector4 &v2)
 Take cross product of two vectors and put result in this vector.
 csDVector4 (const csDVector3 &v)
 Conversion from a three-component vector. w is set to 1.
 csDVector4 (const csVector4 &)
 Conversion from single precision vector to double.
 csDVector4 (const csDVector4 &v)
 Copy Constructor.
 csDVector4 (double ix, double iy, double iz=0, double iw=1)
 Make a new vector and initialize with the given values.
 csDVector4 (double m)
 Make a new initialized vector.
 csDVector4 ()
 Make a new vector.
double Norm () const
 Returns the norm of this vector.
void Normalize ()
 Scale this vector to length = 1.0.
csDVector4operator *= (double f)
 Multiply this vector by a scalar.
csDVector4 operator+ () const
 Unary + operator.
csDVector4operator+= (const csDVector4 &v)
 Add another vector to this vector.
csDVector4 operator- () const
 Unary - operator.
csDVector4operator-= (const csDVector4 &v)
 Subtract another vector from this vector.
csDVector4operator/= (double f)
 Divide this vector by a scalar.
double & operator[] (int n)
 Returns n'th component of the vector.
double operator[] (int n) const
 Returns n'th component of the vector.
void Set (double sx, double sy, double sz, double sw)
 Set the value of this vector.
double SquaredNorm () const
 Returns the norm of this vector.
csDVector4 Unit () const
 Returns the unit vector in the direction of this vector.

Static Public Member Functions

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

Public Attributes

double w
 The W component of the vector.
double x
 The X component of the vector.
double y
 The Y component of the vector.
double z
 The Z component of the vector.

Friends

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


Detailed Description

A 4D vector with "double" components.

Definition at line 40 of file vector4.h.


Constructor & Destructor Documentation

csDVector4::csDVector4  )  [inline]
 

Make a new vector.

The vector is not initialized. This makes the code slightly faster.

Definition at line 56 of file vector4.h.

csDVector4::csDVector4 double  m  )  [inline]
 

Make a new initialized vector.

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

Definition at line 63 of file vector4.h.

csDVector4::csDVector4 double  ix,
double  iy,
double  iz = 0,
double  iw = 1
[inline]
 

Make a new vector and initialize with the given values.

Definition at line 66 of file vector4.h.

csDVector4::csDVector4 const csDVector4 v  )  [inline]
 

Copy Constructor.

Definition at line 70 of file vector4.h.

References w, x, y, and z.

csDVector4::csDVector4 const csVector4  ) 
 

Conversion from single precision vector to double.

csDVector4::csDVector4 const csDVector3 v  )  [inline]
 

Conversion from a three-component vector. w is set to 1.

Definition at line 76 of file vector4.h.

References csDVector3::x, csDVector3::y, and csDVector3::z.


Member Function Documentation

void csDVector4::Cross const csDVector4 v1,
const csDVector4 v2
[inline]
 

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

Definition at line 105 of file vector4.h.

References w, x, y, and z.

static double csDVector4::Norm const csDVector4 v  )  [inline, static]
 

Returns the norm (magnitude) of a vector.

Definition at line 213 of file vector4.h.

References Norm().

double csDVector4::Norm  )  const
 

Returns the norm of this vector.

Referenced by Norm().

void csDVector4::Normalize  ) 
 

Scale this vector to length = 1.0.

csDVector4& csDVector4::operator *= double  f  )  [inline]
 

Multiply this vector by a scalar.

Definition at line 182 of file vector4.h.

csDVector4 csDVector4::operator+  )  const [inline]
 

Unary + operator.

Definition at line 190 of file vector4.h.

csDVector4& csDVector4::operator+= const csDVector4 v  )  [inline]
 

Add another vector to this vector.

Definition at line 160 of file vector4.h.

References w, x, y, and z.

csDVector4 csDVector4::operator-  )  const [inline]
 

Unary - operator.

Definition at line 193 of file vector4.h.

csDVector4& csDVector4::operator-= const csDVector4 v  )  [inline]
 

Subtract another vector from this vector.

Definition at line 171 of file vector4.h.

References w, x, y, and z.

csDVector4& csDVector4::operator/= double  f  )  [inline]
 

Divide this vector by a scalar.

Definition at line 186 of file vector4.h.

double& csDVector4::operator[] int  n  )  [inline]
 

Returns n'th component of the vector.

Definition at line 156 of file vector4.h.

double csDVector4::operator[] int  n  )  const [inline]
 

Returns n'th component of the vector.

Definition at line 152 of file vector4.h.

void csDVector4::Set double  sx,
double  sy,
double  sz,
double  sw
[inline]
 

Set the value of this vector.

Definition at line 196 of file vector4.h.

double csDVector4::SquaredNorm  )  const
 

Returns the norm of this vector.

static csDVector4 csDVector4::Unit const csDVector4 v  )  [inline, static]
 

Normalizes a vector to a unit vector.

Definition at line 216 of file vector4.h.

References Unit().

csDVector4 csDVector4::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 210 of file vector4.h.

Referenced by Unit().


Friends And Related Function Documentation

csDVector4 operator * double  f,
const csDVector4 v
[friend]
 

Multiply a vector and a scalar.

Definition at line 118 of file vector4.h.

csDVector4 operator * const csDVector4 v,
double  f
[friend]
 

Multiply a vector and a scalar.

Definition at line 114 of file vector4.h.

double operator * const csDVector4 v1,
const csDVector4 v2
[friend]
 

Take the dot product of two vectors.

Definition at line 89 of file vector4.h.

bool operator!= const csDVector4 v1,
const csDVector4 v2
[friend]
 

Check if two vectors are not equal.

Definition at line 130 of file vector4.h.

csDVector4 operator% const csDVector4 v1,
const csDVector4 v2
[friend]
 

Take the cross product of two vectors.

Definition at line 93 of file vector4.h.

csDVector4 operator+ const csDVector4 v1,
const csDVector4 v2
[friend]
 

Add two vectors.

Definition at line 80 of file vector4.h.

csDVector4 operator- const csDVector4 v1,
const csDVector4 v2
[friend]
 

Subtract two vectors.

Definition at line 85 of file vector4.h.

csDVector4 operator/ const csDVector4 v,
double  f
[friend]
 

Divide a vector by a scalar.

Definition at line 122 of file vector4.h.

bool operator< const csDVector4 v,
double  f
[friend]
 

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

Definition at line 144 of file vector4.h.

csDVector4 operator<< const csDVector4 v1,
const csDVector4 v2
[friend]
 

Project one vector onto another.

Definition at line 140 of file vector4.h.

bool operator== const csDVector4 v1,
const csDVector4 v2
[friend]
 

Check if two vectors are equal.

Definition at line 126 of file vector4.h.

bool operator> double  f,
const csDVector4 v
[friend]
 

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

Definition at line 148 of file vector4.h.

csDVector4 operator>> const csDVector4 v1,
const csDVector4 v2
[friend]
 

Project one vector onto another.

Definition at line 135 of file vector4.h.


Member Data Documentation

double csDVector4::w
 

The W component of the vector.

Definition at line 50 of file vector4.h.

Referenced by Cross(), csDVector4(), operator+=(), and operator-=().

double csDVector4::x
 

The X component of the vector.

Definition at line 44 of file vector4.h.

Referenced by Cross(), csDVector4(), operator+=(), and operator-=().

double csDVector4::y
 

The Y component of the vector.

Definition at line 46 of file vector4.h.

Referenced by Cross(), csDVector4(), operator+=(), and operator-=().

double csDVector4::z
 

The Z component of the vector.

Definition at line 48 of file vector4.h.

Referenced by Cross(), csDVector4(), operator+=(), and operator-=().


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.4.4