Three dimensional unit vector class. More...
#include <unit3.h>
Public Member Functions | |
Unit3 () | |
Default constructor. Creates [0.0, 0.0, 1.0] vector. | |
Unit3 (const Scalar &x, const Scalar &y, const Scalar &z) | |
Unit3 (const Scalar *u) | |
Constructor for pointer input. | |
Unit3 (const Vector3 &v) | |
Constructor for Vector3 input. | |
Unit3 & | operator= (const Vector3 &v) |
bool | operator== (const Unit3 &u) const |
bool | operator!= (const Unit3 &u) const |
Scalar | angleCos (const Unit3 &u) const |
Cosine of the angle between vectors. | |
Scalar | angle (const Unit3 &u) const |
Angle between vectors in the range [0, pi] expressed in radians. | |
void | setValue (const Scalar &x, const Scalar &y, const Scalar &z) |
Sets vector values from three input values. | |
void | setValue (const Scalar *u) |
Sets vector values from pointer input. | |
![]() | |
Vector3 () | |
Default constructor. Creates a null vector [0.0, 0.0, 0.0]. | |
Vector3 (const Scalar &x, const Scalar &y, const Scalar &z) | |
Constructor for three input values. | |
Vector3 (const Scalar *v) | |
Constructor for pointer input. | |
Scalar & | operator[] (size_t n) |
Unchecked element access. | |
const Scalar & | operator[] (size_t n) const |
Unchecked element access. | |
Vector3 & | operator+= (const Vector3 &v) |
Vector3 & | operator-= (const Vector3 &v) |
Vector3 & | operator*= (const Scalar &s) |
Scalar-vector product. | |
Vector3 & | operator*= (const Vector3 &v) |
Memberwise product. | |
Vector3 & | operator/= (const Scalar &s) |
Scalar-vector division. | |
Vector3 & | operator/= (const Vector3 &v) |
Memberwise division. | |
bool | operator== (const Vector3 &v) const |
bool | operator!= (const Vector3 &v) const |
Scalar | sum () const |
Vector element sum. | |
Scalar | dot (const Vector3 &v) const |
Dot product. | |
Vector3 | cross (const Vector3 &v) const |
Cross product. | |
Scalar | length2 () const |
Squared vector length. | |
Scalar | length () const |
Vector length. | |
Vector3 & | normalize () |
Normalize vector to unit length. | |
Scalar | distance2 (const Vector3 &v) const |
Squared distance between vectors. | |
Scalar | distance (const Vector3 &v) const |
Distance between vectors. | |
Scalar | angleCos (const Vector3 &v) const |
Cosine of the angle between vectors. | |
Scalar | angleSin (const Vector3 &v) const |
Sine of the angle between vectors. | |
Scalar | angle (const Vector3 &v) const |
Angle between vectors in the range [0, pi] expressed in radians. | |
size_t | minAxis () const |
Index of element with minimum value. | |
size_t | maxAxis () const |
Index of element with maximum value. | |
size_t | furthestAxis () const |
Index of furthest axis. | |
size_t | closestAxis () const |
Index of closest axis. | |
Scalar | min () const |
Minimum value. | |
Scalar | max () const |
Maximum value. | |
Scalar & | at (size_t n) |
Checked element access. | |
const Scalar & | at (size_t n) const |
Checked element access. |
Three dimensional unit vector class.
The Unit3 class provides the usual operators and functions used in vector algebra and manipulation.
The main difference from Vector3, its base class, is that the vector length is always guarranteed to be unity, so for example, a unit vector cannot be initialized with a null vector, and if a vector with length different than unity is assigned to a unit vector, it is scaled to unit length. Also, the comparison criterion used for equality and difference is based only on the angle between the Unit3's instead of both distance and angle for Vector3's. This is an example of how to use the Unit3 class and its differences with the Vector3 class:
|
inline |
Constructor for three input values.
The input values need not define a vector of unit length, since a vector is constructed and then normalized.
Assignment operator.
v | The Vector3 to assign to this object. |
|
inline |
Equality operator. The comparison criterion is that the angle between the two vectors must be equal to zero.