quaternion_rotation.h File Reference

#include <cml/mathlib/checking.h>

Include dependency graph for quaternion_rotation.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  cml
namespace  cml::detail

Functions

template<class E , class A , class O , class C >
void cml::quaternion_rotate_about_local_axis (quaternion< E, A, O, C > &q, size_t axis, E angle)
template<class E , class A , class O , class C >
void cml::quaternion_rotate_about_local_x (quaternion< E, A, O, C > &q, E angle)
template<class E , class A , class O , class C >
void cml::quaternion_rotate_about_local_y (quaternion< E, A, O, C > &q, E angle)
template<class E , class A , class O , class C >
void cml::quaternion_rotate_about_local_z (quaternion< E, A, O, C > &q, E angle)
template<class E , class A , class O , class C >
void cml::quaternion_rotate_about_world_axis (quaternion< E, A, O, C > &q, size_t axis, E angle)
template<class E , class A , class O , class C >
void cml::quaternion_rotate_about_world_x (quaternion< E, A, O, C > &q, E angle)
template<class E , class A , class O , class C >
void cml::quaternion_rotate_about_world_y (quaternion< E, A, O, C > &q, E angle)
template<class E , class A , class O , class C >
void cml::quaternion_rotate_about_world_z (quaternion< E, A, O, C > &q, E angle)
template<typename E , class A , class O , class C , class VecT_1 , class VecT_2 >
void cml::quaternion_rotation_aim_at (quaternion< E, A, O, C > &q, const VecT_1 &pos, const VecT_2 &target, AxisOrder order=axis_order_zyx)
 See vector_ortho.h for details.
template<typename E , class A , class O , class C , class VecT_1 , class VecT_2 , class VecT_3 >
void cml::quaternion_rotation_aim_at (quaternion< E, A, O, C > &q, const VecT_1 &pos, const VecT_2 &target, const VecT_3 &reference, AxisOrder order=axis_order_zyx)
 See vector_ortho.h for details.
template<typename E , class A , class O , class C , class VecT_1 , class VecT_2 , class VecT_3 >
void cml::quaternion_rotation_aim_at_axial (quaternion< E, A, O, C > &q, const VecT_1 &pos, const VecT_2 &target, const VecT_3 &axis, AxisOrder order=axis_order_zyx)
 See vector_ortho.h for details.
template<typename E , class A , class O , class C , class VecT >
void cml::quaternion_rotation_align (quaternion< E, A, O, C > &q, const VecT &align, bool normalize=true, AxisOrder order=axis_order_zyx)
 See vector_ortho.h for details.
template<typename E , class A , class O , class C , class VecT_1 , class VecT_2 >
void cml::quaternion_rotation_align (quaternion< E, A, O, C > &q, const VecT_1 &align, const VecT_2 &reference, bool normalize=true, AxisOrder order=axis_order_zyx)
 See vector_ortho.h for details.
template<typename E , class A , class O , class C , class VecT_1 , class VecT_2 >
void cml::quaternion_rotation_align_axial (quaternion< E, A, O, C > &q, const VecT_1 &align, const VecT_2 &axis, bool normalize=true, AxisOrder order=axis_order_zyx)
 See vector_ortho.h for details.
template<typename E , class A , class O , class C , class MatT >
void cml::quaternion_rotation_align_viewplane (quaternion< E, A, O, C > &q, const MatT &view_matrix, Handedness handedness, AxisOrder order=axis_order_zyx)
 See vector_ortho.h for details.
template<typename E , class A , class O , class C , class MatT >
void cml::quaternion_rotation_align_viewplane_LH (quaternion< E, A, O, C > &q, const MatT &view_matrix, AxisOrder order=axis_order_zyx)
 See vector_ortho.h for details.
template<typename E , class A , class O , class C , class MatT >
void cml::quaternion_rotation_align_viewplane_RH (quaternion< E, A, O, C > &q, const MatT &view_matrix, AxisOrder order=axis_order_zyx)
 See vector_ortho.h for details.
template<class E , class A , class O , class C , class VecT >
void cml::quaternion_rotation_axis_angle (quaternion< E, A, O, C > &q, const VecT &axis, E angle)
 Build a quaternion from an axis-angle pair.
template<class QuatT_1 , class QuatT_2 >
et::QuaternionPromote2
< QuatT_1, QuatT_2 >
::temporary_type 
cml::quaternion_rotation_difference (const QuatT_1 &q1, const QuatT_2 &q2)
 Return the rotational 'difference' between two quaternions.
template<class QuatT_1 , class QuatT_2 >
et::QuaternionPromote2
< QuatT_1, QuatT_2 >
::temporary_type 
cml::detail::quaternion_rotation_difference (const QuatT_1 &q1, const QuatT_2 &q2, negative_cross)
 Concatenate two quaternions in the order q1->q2.
template<class QuatT_1 , class QuatT_2 >
et::QuaternionPromote2
< QuatT_1, QuatT_2 >
::temporary_type 
cml::detail::quaternion_rotation_difference (const QuatT_1 &q1, const QuatT_2 &q2, positive_cross)
 Concatenate two quaternions in the order q1->q2.
template<class E , class A , class O , class C >
void cml::quaternion_rotation_euler (quaternion< E, A, O, C > &q, E angle_0, E angle_1, E angle_2, EulerOrder order)
 Build a quaternion from an Euler-angle triple.
template<class E , class A , class O , class C , class MatT >
void cml::quaternion_rotation_matrix (quaternion< E, A, O, C > &q, const MatT &m)
 Build a quaternion from a rotation matrix.
template<class E , class A , class O , class C , class VecT_1 , class VecT_2 >
void cml::quaternion_rotation_vec_to_vec (quaternion< E, A, O, C > &q, const VecT_1 &v1, const VecT_2 &v2, bool unit_length_vectors=false)
 Build a quaternion to rotate from one vector to another.
template<class E , class A , class O , class C >
void cml::quaternion_rotation_world_axis (quaternion< E, A, O, C > &q, size_t axis, E angle)
 Build a quaternion representing a rotation about the given world axis.
template<class E , class A , class O , class C >
void cml::quaternion_rotation_world_x (quaternion< E, A, O, C > &q, E angle)
 Build a quaternion representing a rotation about the world x axis.
template<class E , class A , class O , class C >
void cml::quaternion_rotation_world_y (quaternion< E, A, O, C > &q, E angle)
 Build a quaternion representing a rotation about the world y axis.
template<class E , class A , class O , class C >
void cml::quaternion_rotation_world_z (quaternion< E, A, O, C > &q, E angle)
 Build a quaternion representing a rotation about the world z axis.
template<typename E , class A , class O , class C >
void cml::quaternion_scale_angle (quaternion< E, A, O, C > &q, E t, E tolerance=epsilon< E >::placeholder())
template<class QuatT , typename E , class A >
void cml::quaternion_to_axis_angle (const QuatT &q, vector< E, A > &axis, E &angle, E tolerance=epsilon< E >::placeholder())
 Convert a quaternion to an axis-angle pair.
template<class QuatT , typename Real >
void cml::quaternion_to_euler (const QuatT &q, Real &angle_0, Real &angle_1, Real &angle_2, EulerOrder order, Real tolerance=epsilon< Real >::placeholder())
 Convert a quaternion to an Euler-angle triple.


Detailed Description

Definition in file quaternion_rotation.h.


Generated on Sat Jul 18 19:35:36 2009 for CML 1.0 by  doxygen 1.5.9