# csDVector3 Class Reference [Geometry utilities]

A 3D vector. More...

`#include <csgeom/math3d_d.h>`

List of all members.

## Public Member Functions

void Cross (const csDVector3 &px, const csDVector3 &py)
Take cross product of two vectors and put result in this vector.
csDVector3 (const csVector3 &)
Conversion from single precision vector to double.
csDVector3 (const csDVector3 &v)
Copy Constructor.
csDVector3 (double ix, double iy, double iz=0)
Make a new vector and initialize with the given values.
csDVector3 (double m)
Make a new initialized vector.
csDVector3 ()
Make a new vector.
double Norm () const
Returns the norm of this vector.
void Normalize ()
Scale this vector to length = 1.0.
csDVector3operator *= (double f)
Multiply this vector by a scalar.
csDVector3 operator+ () const
Unary + operator.
csDVector3operator+= (const csDVector3 &v)
Add another vector to this vector.
csDVector3 operator- () const
Unary - operator.
csDVector3operator-= (const csDVector3 &v)
Subtract another vector from this vector.
csDVector3operator/= (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)
Set the value of this vector.
double SquaredNorm () const
Returns the norm of this vector.
csDVector3 Unit () const
Returns the unit vector in the direction of this vector.

## Static Public Member Functions

static double Norm (const csDVector3 &v)
Returns the norm (magnitude) of a vector.
static csDVector3 Unit (const csDVector3 &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.

## Friends

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

## Detailed Description

A 3D vector.

Definition at line 51 of file math3d_d.h.

## Constructor & Destructor Documentation

 csDVector3::csDVector3 ( ) ` [inline]`

Make a new vector.

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

Definition at line 66 of file math3d_d.h.

 csDVector3::csDVector3 ( double 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 csDVector3(0)

Definition at line 73 of file math3d_d.h.

 csDVector3::csDVector3 ( double ix, double iy, double iz = `0` ) ` [inline]`

Make a new vector and initialize with the given values.

Definition at line 76 of file math3d_d.h.

 csDVector3::csDVector3 ( const csDVector3 & v ) ` [inline]`

Copy Constructor.

Definition at line 79 of file math3d_d.h.

References x, y, and z.

 csDVector3::csDVector3 ( const csVector3 & )

Conversion from single precision vector to double.

## Member Function Documentation

 void csDVector3::Cross ( const csDVector3 & px, const csDVector3 & py ) ` [inline]`

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

Definition at line 108 of file math3d_d.h.

References x, y, and z.

 static double csDVector3::Norm ( const csDVector3 & v ) ` [inline, static]`

Returns the norm (magnitude) of a vector.

Definition at line 210 of file math3d_d.h.

References Norm().

 double csDVector3::Norm ( ) const

Returns the norm of this vector.

Referenced by csDMath3::DoubleArea3(), and Norm().

 void csDVector3::Normalize ( )

Scale this vector to length = 1.0.

 csDVector3& csDVector3::operator *= ( double f ) ` [inline]`

Multiply this vector by a scalar.

Definition at line 180 of file math3d_d.h.

 csDVector3 csDVector3::operator+ ( ) const` [inline]`

Unary + operator.

Definition at line 188 of file math3d_d.h.

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

Add another vector to this vector.

Definition at line 160 of file math3d_d.h.

References x, y, and z.

 csDVector3 csDVector3::operator- ( ) const` [inline]`

Unary - operator.

Definition at line 191 of file math3d_d.h.

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

Subtract another vector from this vector.

Definition at line 170 of file math3d_d.h.

References x, y, and z.

 csDVector3& csDVector3::operator/= ( double f ) ` [inline]`

Divide this vector by a scalar.

Definition at line 184 of file math3d_d.h.

 double& csDVector3::operator[] ( int n ) ` [inline]`

Returns n-th component of the vector.

Definition at line 157 of file math3d_d.h.

 double csDVector3::operator[] ( int n ) const` [inline]`

Returns n-th component of the vector.

Definition at line 154 of file math3d_d.h.

 void csDVector3::Set ( double sx, double sy, double sz ) ` [inline]`

Set the value of this vector.

Definition at line 194 of file math3d_d.h.

 double csDVector3::SquaredNorm ( ) const

Returns the norm of this vector.

 static csDVector3 csDVector3::Unit ( const csDVector3 & v ) ` [inline, static]`

Normalizes a vector to a unit vector.

Definition at line 213 of file math3d_d.h.

References Unit().

 csDVector3 csDVector3::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 207 of file math3d_d.h.

Referenced by Unit().

## Friends And Related Function Documentation

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

Multiply a vector and a scalar.

Definition at line 120 of file math3d_d.h.

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

Multiply a vector and a scalar.

Definition at line 116 of file math3d_d.h.

 double operator * ( const csDVector3 & v1, const csDVector3 & v2 ) ` [friend]`

Take the dot product of two vectors.

Definition at line 95 of file math3d_d.h.

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

Check if two vectors are not equal.

Definition at line 132 of file math3d_d.h.

 csDVector3 operator% ( const csDVector3 & v1, const csDVector3 & v2 ) ` [friend]`

Take the cross product of two vectors.

Definition at line 100 of file math3d_d.h.

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

Add two vectors.

Definition at line 86 of file math3d_d.h.

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

Subtract two vectors.

Definition at line 91 of file math3d_d.h.

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

Divide a vector by a scalar.

Definition at line 124 of file math3d_d.h.

 bool operator< ( const csDVector3 & v, double f ) ` [friend]`

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

Definition at line 146 of file math3d_d.h.

 csDVector3 operator<< ( const csDVector3 & v1, const csDVector3 & v2 ) ` [friend]`

Project one vector onto another.

Definition at line 142 of file math3d_d.h.

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

Check if two vectors are equal.

Definition at line 128 of file math3d_d.h.

 bool operator> ( double f, const csDVector3 & v ) ` [friend]`

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

Definition at line 150 of file math3d_d.h.

 csDVector3 operator>> ( const csDVector3 & v1, const csDVector3 & v2 ) ` [friend]`

Project one vector onto another.

Definition at line 137 of file math3d_d.h.

## Member Data Documentation

 double csDVector3::x

The X component of the vector.

Definition at line 55 of file math3d_d.h.

 double csDVector3::y

The Y component of the vector.

Definition at line 57 of file math3d_d.h.

 double csDVector3::z

The Z component of the vector.

Definition at line 59 of file math3d_d.h.

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

Generated for Crystal Space 1.0.2 by doxygen 1.4.7