CrystalSpace

Public API Reference

Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

csDVector4 Class Reference
[Geometry utilities]

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

#include <vector4.h>

List of all members.

Public Methods

 csDVector4 ()
 Make a new vector.

 csDVector4 (double m)
 Make a new initialized vector.

 csDVector4 (double ix, double iy, double iz=0, double iw=1)
 Make a new vector and initialize with the given values.

 csDVector4 (const csDVector4 &v)
 Copy Constructor.

 csDVector4 (const csVector4 &)
 Conversion from single precision vector to double.

 csDVector4 (const csDVector3 &v)
 Conversion from a three-component vector. w is set to 1.

void Cross (const csDVector4 &v1, const csDVector4 &v2)
 Take cross product of two vectors and put result in this vector.

double operator[] (int n) const
 Returns n'th component of the vector.

double & operator[] (int n)
 Returns n'th component of the vector.

csDVector4 & operator+= (const csDVector4 &v)
 Add another vector to this vector.

csDVector4 & operator-= (const csDVector4 &v)
 Subtract another vector from this vector.

csDVector4 & operator *= (double f)
 Multiply this vector by a scalar.

csDVector4 & operator/= (double f)
 Divide this vector by a scalar.

csDVector4 operator+ () const
 Unary + operator.

csDVector4 operator- () const
 Unary - operator.

void Set (double sx, double sy, double sz, double sw)
 Set the value of this vector.

double Norm () const
 Returns the norm 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.

void Normalize ()
 Scale this vector to length = 1.0.


Static Public Methods

double Norm (const csDVector4 &v)
 Returns the norm (magnitude) of a vector.

csDVector4 Unit (const csDVector4 &v)
 Normalizes a vector to a unit vector.


Public Attributes

double x
 The X component of the vector.

double y
 The Y component of the vector.

double z
 The Z component of the vector.

double w
 The W component of the vector.


Friends

csDVector4 operator+ (const csDVector4 &v1, const csDVector4 &v2)
 Add two vectors.

csDVector4 operator- (const csDVector4 &v1, const csDVector4 &v2)
 Subtract two vectors.

double operator * (const csDVector4 &v1, const csDVector4 &v2)
 Take the dot product of two vectors.

csDVector4 operator% (const csDVector4 &v1, const csDVector4 &v2)
 Take the cross product of two vectors.

csDVector4 operator * (const csDVector4 &v, double f)
 Multiply a vector and a scalar.

csDVector4 operator * (double f, const csDVector4 &v)
 Multiply a vector and a scalar.

csDVector4 operator/ (const csDVector4 &v, double f)
 Divide a vector by a scalar.

bool operator== (const csDVector4 &v1, const csDVector4 &v2)
 Check if two vectors are equal.

bool operator!= (const csDVector4 &v1, const csDVector4 &v2)
 Check if two vectors are not equal.

csDVector4 operator>> (const csDVector4 &v1, const csDVector4 &v2)
 Project one vector onto another.

csDVector4 operator<< (const csDVector4 &v1, const csDVector4 &v2)
 Project one vector onto another.

bool operator< (const csDVector4 &v, double f)
 Test if each component of a vector is less than a small epsilon value.

bool operator> (double f, const csDVector4 &v)
 Test if each component of a vector is greater than a small epsilon value.


Detailed Description

A 4D vector with "double" components.

Definition at line 45 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 61 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 68 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 71 of file vector4.h.

csDVector4::csDVector4 const csDVector4 &    v [inline]
 

Copy Constructor.

Definition at line 75 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 81 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 110 of file vector4.h.

References w, x, y, and z.

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

Returns the norm (magnitude) of a vector.

Definition at line 218 of file vector4.h.

References Norm().

double csDVector4::Norm  
 

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 187 of file vector4.h.

csDVector4 csDVector4::operator+   const [inline]
 

Unary + operator.

Definition at line 195 of file vector4.h.

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

Add another vector to this vector.

Definition at line 165 of file vector4.h.

References w, x, y, and z.

csDVector4 csDVector4::operator-   const [inline]
 

Unary - operator.

Definition at line 198 of file vector4.h.

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

Subtract another vector from this vector.

Definition at line 176 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 191 of file vector4.h.

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

Returns n'th component of the vector.

Definition at line 161 of file vector4.h.

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

Returns n'th component of the vector.

Definition at line 157 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 201 of file vector4.h.

double csDVector4::SquaredNorm  
 

Returns the norm of this vector.

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

Normalizes a vector to a unit vector.

Definition at line 221 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 215 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 123 of file vector4.h.

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

Multiply a vector and a scalar.

Definition at line 119 of file vector4.h.

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

Take the dot product of two vectors.

Definition at line 94 of file vector4.h.

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

Check if two vectors are not equal.

Definition at line 135 of file vector4.h.

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

Take the cross product of two vectors.

Definition at line 98 of file vector4.h.

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

Add two vectors.

Definition at line 85 of file vector4.h.

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

Subtract two vectors.

Definition at line 90 of file vector4.h.

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

Divide a vector by a scalar.

Definition at line 127 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 149 of file vector4.h.

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

Project one vector onto another.

Definition at line 145 of file vector4.h.

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

Check if two vectors are equal.

Definition at line 131 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 153 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.


Member Data Documentation

double csDVector4::w
 

The W component of the vector.

Definition at line 55 of file vector4.h.

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

double csDVector4::x
 

The X component of the vector.

Definition at line 49 of file vector4.h.

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

double csDVector4::y
 

The Y component of the vector.

Definition at line 51 of file vector4.h.

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

double csDVector4::z
 

The Z component of the vector.

Definition at line 53 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.2.18