#include <cml/mathlib/matrix_misc.h>#include <cml/mathlib/vector_ortho.h>


Go to the source code of this file.
Namespaces | |
| namespace | cml | 
| namespace | cml::detail | 
Defines | |
| #define | MAT_TEMP_2X2 | 
| A fixed-size temporary 2x2 matrix.   | |
| #define | MAT_TEMP_3X3 | 
| A fixed-size temporary 3x3 matrix.   | |
Functions | |
| template<class MatT_1 , class MatT_2 > | |
| MAT_TEMP_3X3 | cml::detail::matrix_concat_rotations (const MatT_1 &m1, const MatT_2 &m2) | 
| Concatenate two 3D rotation matrices in the order m1->m2.   | |
| template<class MatT_1 , class MatT_2 > | |
| MAT_TEMP_3X3 | cml::detail::matrix_concat_rotations (const MatT_1 &m1, const MatT_2 &m2, col_basis) | 
| Concatenate two 3D col-basis rotation matrices in the order m1->m2.   | |
| template<class MatT_1 , class MatT_2 > | |
| MAT_TEMP_3X3 | cml::detail::matrix_concat_rotations (const MatT_1 &m1, const MatT_2 &m2, row_basis) | 
| Concatenate two 3D row-basis rotation matrices in the order m1->m2.   | |
| template<class MatT_1 , class MatT_2 > | |
| MAT_TEMP_2X2 | cml::detail::matrix_concat_rotations_2D (const MatT_1 &m1, const MatT_2 &m2) | 
| Concatenate two 2D rotation matrices in the order m1->m2.   | |
| template<class MatT_1 , class MatT_2 > | |
| MAT_TEMP_2X2 | cml::detail::matrix_concat_rotations_2D (const MatT_1 &m1, const MatT_2 &m2, col_basis) | 
| Concatenate two 2D col-basis rotation matrices in the order m1->m2.   | |
| template<class MatT_1 , class MatT_2 > | |
| MAT_TEMP_2X2 | cml::detail::matrix_concat_rotations_2D (const MatT_1 &m1, const MatT_2 &m2, row_basis) | 
| Concatenate two 2D row-basis rotation matrices in the order m1->m2.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotate_2D (matrix< E, A, B, L > &m, E angle) | 
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotate_about_local_axis (matrix< E, A, B, L > &m, size_t axis, E angle) | 
| Rotate a rotation matrix about the given local axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotate_about_local_x (matrix< E, A, B, L > &m, E angle) | 
| Rotate a rotation matrix about its local x axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotate_about_local_y (matrix< E, A, B, L > &m, E angle) | 
| Rotate a rotation matrix about its local y axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotate_about_local_z (matrix< E, A, B, L > &m, E angle) | 
| Rotate a rotation matrix about its local z axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotate_about_world_axis (matrix< E, A, B, L > &m, size_t axis, E angle) | 
| Rotate a rotation matrix about the given world axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotate_about_world_x (matrix< E, A, B, L > &m, E angle) | 
| Rotate a rotation matrix about the world x axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotate_about_world_y (matrix< E, A, B, L > &m, E angle) | 
| Rotate a rotation matrix about the world y axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotate_about_world_z (matrix< E, A, B, L > &m, E angle) | 
| Rotate a rotation matrix about the world z axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotation_2D (matrix< E, A, B, L > &m, E angle) | 
| Build a matrix representing a 2D rotation.   | |
| template<typename E , class A , class B , class L , class VecT_1 , class VecT_2 > | |
| void | cml::matrix_rotation_aim_at (matrix< E, A, B, L > &m, 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 B , class L , class VecT_1 , class VecT_2 , class VecT_3 > | |
| void | cml::matrix_rotation_aim_at (matrix< E, A, B, L > &m, 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 B , class L , class VecT_1 , class VecT_2 , class VecT_3 > | |
| void | cml::matrix_rotation_aim_at_axial (matrix< E, A, B, L > &m, 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 B , class L , class VecT > | |
| void | cml::matrix_rotation_align (matrix< E, A, B, L > &m, const VecT &align, bool normalize=true, AxisOrder order=axis_order_zyx) | 
| See vector_ortho.h for details.   | |
| template<typename E , class A , class B , class L , class VecT_1 , class VecT_2 > | |
| void | cml::matrix_rotation_align (matrix< E, A, B, L > &m, 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 B , class L , class VecT > | |
| void | cml::matrix_rotation_align_2D (matrix< E, A, B, L > &m, const VecT &align, bool normalize=true, AxisOrder2D order=axis_order_xy) | 
| See vector_ortho.h for details.   | |
| template<typename E , class A , class B , class L , class VecT_1 , class VecT_2 > | |
| void | cml::matrix_rotation_align_axial (matrix< E, A, B, L > &m, 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 B , class L , class MatT > | |
| void | cml::matrix_rotation_align_viewplane (matrix< E, A, B, L > &m, const MatT &view_matrix, Handedness handedness, AxisOrder order=axis_order_zyx) | 
| See vector_ortho.h for details.   | |
| template<typename E , class A , class B , class L , class MatT > | |
| void | cml::matrix_rotation_align_viewplane_LH (matrix< E, A, B, L > &m, const MatT &view_matrix, AxisOrder order=axis_order_zyx) | 
| See vector_ortho.h for details.   | |
| template<typename E , class A , class B , class L , class MatT > | |
| void | cml::matrix_rotation_align_viewplane_RH (matrix< E, A, B, L > &m, const MatT &view_matrix, AxisOrder order=axis_order_zyx) | 
| See vector_ortho.h for details.   | |
| template<typename E , class A , class B , class L , class VecT > | |
| void | cml::matrix_rotation_axis_angle (matrix< E, A, B, L > &m, const VecT &axis, E angle) | 
| Build a rotation matrix from an axis-angle pair.   | |
| template<class MatT_1 , class MatT_2 > | |
| MAT_TEMP_3X3 | cml::matrix_rotation_difference (const MatT_1 &m1, const MatT_2 &m2) | 
| Return the rotational 'difference' between two 3D rotation matrices.   | |
| template<class MatT_1 , class MatT_2 > | |
| MAT_TEMP_2X2 | cml::matrix_rotation_difference_2D (const MatT_1 &m1, const MatT_2 &m2) | 
| Return the rotational 'difference' between two 2D rotation matrices.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotation_euler (matrix< E, A, B, L > &m, E angle_0, E angle_1, E angle_2, EulerOrder order) | 
| Build a rotation matrix from an Euler-angle triple.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotation_euler_derivatives (matrix< E, A, B, L > &m, int axis, E angle_0, E angle_1, E angle_2, EulerOrder order) | 
| Build a matrix of derivatives of Euler angles about the specified axis.   | |
| template<typename E , class A , class B , class L , class QuatT > | |
| void | cml::matrix_rotation_quaternion (matrix< E, A, B, L > &m, const QuatT &q) | 
| Build a rotation matrix from a quaternion.   | |
| template<class E , class A , class B , class L , class VecT_1 , class VecT_2 > | |
| void | cml::matrix_rotation_vec_to_vec (matrix< E, A, B, L > &m, const VecT_1 &v1, const VecT_2 &v2, bool unit_length_vectors=false) | 
| Build a rotation matrix to rotate from one vector to another.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotation_world_axis (matrix< E, A, B, L > &m, size_t axis, E angle) | 
| Build a matrix representing a 3D rotation about the given world axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotation_world_x (matrix< E, A, B, L > &m, E angle) | 
| Build a matrix representing a 3D rotation about the world x axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotation_world_y (matrix< E, A, B, L > &m, E angle) | 
| Build a matrix representing a 3D rotation about the world y axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_rotation_world_z (matrix< E, A, B, L > &m, E angle) | 
| Build a matrix representing a 3D rotation about the world z axis.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_scale_rotation_angle (matrix< E, A, B, L > &m, E t, E tolerance=epsilon< E >::placeholder()) | 
| Scale the angle of a 3D rotation matrix.   | |
| template<typename E , class A , class B , class L > | |
| void | cml::matrix_scale_rotation_angle_2D (matrix< E, A, B, L > &m, E t, E tolerance=epsilon< E >::placeholder()) | 
| Scale the angle of a 2D rotation matrix.   | |
| template<class MatT_1 , class MatT_2 , typename E > | |
| MAT_TEMP_3X3 | cml::matrix_slerp (const MatT_1 &m1, const MatT_2 &m2, E t, E tolerance=epsilon< E >::placeholder()) | 
| Spherical linear interpolation of two 3D rotation matrices.   | |
| template<class MatT_1 , class MatT_2 , typename E > | |
| MAT_TEMP_2X2 | cml::matrix_slerp_2D (const MatT_1 &m1, const MatT_2 &m2, E t, E tolerance=epsilon< E >::placeholder()) | 
| Spherical linear interpolation of two 2D rotation matrices.   | |
| template<class MatT , typename E , class A > | |
| void | cml::matrix_to_axis_angle (const MatT &m, vector< E, A > &axis, E &angle, E tolerance=epsilon< E >::placeholder()) | 
| Convert a 3D rotation matrix to an axis-angle pair.   | |
| template<class MatT , typename Real > | |
| void | cml::matrix_to_euler (const MatT &m, Real &angle_0, Real &angle_1, Real &angle_2, EulerOrder order, Real tolerance=epsilon< Real >::placeholder()) | 
| Convert a 3D rotation matrix to an Euler-angle triple.   | |
| template<class MatT > | |
| MatT::value_type | cml::matrix_to_rotation_2D (const MatT &m) | 
| Convert a 2D rotation matrix to a rotation angle.   | |
Definition in file matrix_rotation.h.
| #define MAT_TEMP_2X2 | 
Value:
matrix<         \
    typename et::ScalarPromote<      \
        typename MatT_1::value_type, \
        typename MatT_2::value_type  \
    >::type,                         \
    fixed<2,2>,                      \
    typename MatT_1::basis_orient,   \
    row_major                        \
>
Definition at line 735 of file matrix_rotation.h.
Referenced by cml::matrix_slerp_2D().
| #define MAT_TEMP_3X3 | 
Value:
matrix<         \
    typename et::ScalarPromote<      \
        typename MatT_1::value_type, \
        typename MatT_2::value_type  \
    >::type,                         \
    fixed<3,3>,                      \
    typename MatT_1::basis_orient,   \
    row_major                        \
>
Definition at line 724 of file matrix_rotation.h.
Referenced by cml::matrix_slerp().
 1.5.9