## Public API Reference

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

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

# 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.
csDVector3 & | operator *= (double f)
| Multiply this vector by a scalar.
csDVector3 | operator+ () const
| Unary + operator.
csDVector3 & | operator+= (const csDVector3 &v)
| Add another vector to this vector.
csDVector3 | operator- () const
| Unary - operator.
csDVector3 & | operator-= (const csDVector3 &v)
| Subtract another vector from this vector.
csDVector3 & | operator/= (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. Referenced by csDPlane::Classify(), Cross(), csDVector3(), operator+=(), operator-=(), csDSquaredDist::PointPoint(), csDMath3::SetMinMax(), and csDMath3::WhichSide3D().

double csDVector3::y

| The Y component of the vector. Definition at line 57 of file math3d_d.h. Referenced by csDPlane::Classify(), Cross(), csDVector3(), operator+=(), operator-=(), csDSquaredDist::PointPoint(), csDMath3::SetMinMax(), and csDMath3::WhichSide3D().

double csDVector3::z

| The Z component of the vector. Definition at line 59 of file math3d_d.h. Referenced by csDPlane::Classify(), Cross(), csDVector3(), operator+=(), operator-=(), csDSquaredDist::PointPoint(), csDMath3::SetMinMax(), and csDMath3::WhichSide3D().

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

- csgeom/math3d_d.h