geomc 1.0
A c++ linear algebra template library
Loading...
Searching...
No Matches
Rotation< T, N > Class Template Reference

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.
 

Detailed Description

template<typename T, index_t N>
class geom::Rotation< T, N >

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

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