#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 |