geomc 1.0
A c++ linear algebra template library
|
A rotation in N-dimensional space. More...
#include <geomc/linalg/Rotation.h>
Related Symbols | |
(Note that these are not member symbols.) | |
template<typename T> | |
Rotation< T, 2 > | mix (T s, const Rotation< T, 2 > &a, const Rotation< T, 2 > &b) |
Minimally interpolate two rotations. | |
template<typename T> | |
Rotation< T, 3 > | mix (T s, const Rotation< T, 3 > &a, const Rotation< T, 3 > &b) |
Minimally interpolate two rotations. | |
template<typename T, index_t N> | |
Isometry< T, N > | operator* (const Isometry< T, N > &i, const Rotation< T, N > &r) |
Apply an isometry to a rotation. | |
template<typename T> | |
Rotation< T, 2 > | operator* (const Rotation< T, 2 > &o, T s) |
Extend a rotation. | |
template<typename T> | |
Rotation< T, 3 > | operator* (const Rotation< T, 3 > &o, T s) |
Extend a rotation. | |
template<typename T, index_t N> | |
Isometry< T, N > | operator* (const Rotation< T, N > &r, const Isometry< T, N > &i) |
Apply a rotation to an isometry. | |
template<typename T, index_t N> | |
Similarity< T, N > | operator* (const Rotation< T, N > &r, const Similarity< T, N > &i) |
Apply a rotation to a similarity. | |
template<typename T, index_t N> | |
Similarity< T, N > | operator* (const Similarity< T, N > &i, const Rotation< T, N > &r) |
Apply a similarity to a rotation. | |
template<typename T> | |
Rotation< T, 2 > | operator* (T s, const Rotation< T, 2 > &o) |
Extend a rotation. | |
template<typename T> | |
Rotation< T, 3 > | operator* (T s, const Rotation< T, 3 > &o) |
Extend a rotation. | |
template<typename T> | |
Vec< T, 2 > | operator/ (const Vec< T, 2 > &v, const Rotation< T, 2 > &r) |
Apply the inverse of a rotation to a vector. | |
template<typename T> | |
Vec< T, 3 > | operator/ (const Vec< T, 3 > &v, const Rotation< T, 3 > &r) |
Apply the inverse of a rotation to a vector. | |
A rotation in N-dimensional space.
Currently 2D and 3D are implemented. See Rotation<T,2> and Rotation<T,3>.
Rotations meet the Transform concept.
For transforms which include a translation, see Isometry.
For transforms which include a translation and a scaling, see Similarity.
For nonuniform scaling or skew transforms, see AffineTransform.
Rotations are composed like transforms, with multiplication on the left:
Rotation<T,N> r1, r2; Rotation<T,N> r3 = r2 * r1; // rotation which applies r1, then r2 Vec<T,N> v = r3 * r1 * v0; // apply r1 to v0, then r3 to the result
Rotations can be inverted with the /
operator:
Rotation<T,N> r1, r2; Rotation<T,N> r3 = r2 / r1; // rotation which takes r1 to r2 Vec<T,N> v = v0 / r3; // apply the inverse of r3 to v0