#include <math.h>
Represents a local coordinate basis comprising three axes that define a coordinate system.
The axes don't have to be normalized or orthogonal, but no pair of them should be parallel.
Public Member Functions | |
Base (void) | |
Creates a empty base with no valid axises. More... | |
Base (const Vector &vA, const Vector &vB, const Vector &vC) | |
Creates a base with the three specified vector axes. More... | |
bool | operator!= (const Base &o) const |
Returns true if the two base objects are different. More... | |
void | Derive (unsigned int iIndex, bool bRightHand=true) |
Derives one axis from the two others. (The new axis will be orthagonal to the other two) More... | |
void | Orthogonalize (unsigned int iIndex, unsigned int iSource=(unsigned int)-1 ) |
Force one basis axis to be orthagonal to another (or both other) basis axes. More... | |
void | Normalize (void) |
Normalize all the three axes. More... | |
Vector | TransformFrom (const Vector &cSource) const |
Converts a point (represented as a vector) from basis space to world space and returns it. More... | |
Vector | TransformTo (const Vector &cSource) const |
Converts a point (represented as a vector) from world space to this basis space and returns it. More... | |
Base | operator* (float fFactor) const |
Multiplies the base vectors with a scalar value and returns the result. More... | |
Base | operator+ (const Base &bOther) const |
Adds two bases. More... | |
Base | operator- (const Base &bOther) const |
Substracts two bases. More... | |
Vector & | Axis (unsigned int iIndex) |
Returns a reference to a basis axis. More... | |
const Vector & | Axis (unsigned int iIndex) const |
Returns a reference to a basis axis. More... | |
Public Attributes | |
Vector | a |
Vector | b |
Vector | c |
Creates a base with the three specified vector axes.
|
inline |
Derives one axis from the two others. (The new axis will be orthagonal to the other two)
[in] | iIndex | The axis to be recalculated. 0 for x, 1 for y, and 2 for z |
[in] | bRightHand | If true, make this a right-handed coordinate system |
Force one basis axis to be orthagonal to another (or both other) basis axes.
[in] | iIndex | Specifies which axis to orthogonalize. 0 for x, 1 for y, and 2 for z. |
[in] | iSource | Specifies which axis to use as a reference. 0 for x, 1 for y, and 2 for z – and -1 means "use both other axes" |
Converts a point (represented as a vector) from basis space to world space and returns it.
Converts a point (represented as a vector) from world space to this basis space and returns it.
Base operator* | ( | float | fFactor | ) | const |
Multiplies the base vectors with a scalar value and returns the result.
Returns a reference to a basis axis.
[in] | iIndex | 0 for x; 1 for y; 2 for z |
Returns a reference to a basis axis.
[in] | iIndex | 0 for x; 1 for y; 2 for z |