#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