#include <cml/mathlib/matrix_basis.h>
#include <cml/mathlib/matrix_rotation.h>
#include <cml/mathlib/matrix_translation.h>
Go to the source code of this file.
Namespaces | |
namespace | cml |
Functions | |
template<typename E , class A , class B , class L , class MatT > | |
void | cml::matrix_3D_affine_from_2D_affine (matrix< E, A, B, L > &m, const MatT &affine_2D) |
Construct a 3D affine transform from a 2D affine transform. | |
template<typename E , class A , class B , class L , class MatT > | |
void | cml::matrix_3D_affine_from_3D_affine (matrix< E, A, B, L > &m, const MatT &affine_3D) |
Construct a 3D affine transform from another 3D affine transform. | |
template<typename E , class A , class B , class L , class XprT , class VecT > | |
void | cml::matrix_affine_transform (matrix< E, A, B, L > &m, const et::MatrixXpr< XprT > &linear, const VecT &translation) |
3D affine transform from a matrix expression and a translation | |
template<typename E , class A , class B , class L , typename ME , class MA , class MB , class ML , class VecT > | |
void | cml::matrix_affine_transform (matrix< E, A, B, L > &m, const matrix< ME, MA, MB, ML > &linear, const VecT &translation) |
3D affine transform from a matrix and a translation | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_affine_transform (matrix< E, A, B, L > &m, E angle_0, E angle_1, E angle_2, EulerOrder order, const VecT &translation) |
3D affine transform from an Euler-angle triple and a translation | |
template<typename E , class A , class B , class L , class VecT_1 , class VecT_2 > | |
void | cml::matrix_affine_transform (matrix< E, A, B, L > &m, const VecT_1 &axis, E angle, const VecT_2 &translation) |
3D affine transform from an axis-angle pair and a translation | |
template<typename E , class A , class B , class L , class XprT , class VecT > | |
void | cml::matrix_affine_transform (matrix< E, A, B, L > &m, const et::QuaternionXpr< XprT > &q, const VecT &translation) |
3D affine transform from a quaternion expression and a translation | |
template<typename E , class A , class B , class L , typename QE , class QA , class O , class C , class VecT > | |
void | cml::matrix_affine_transform (matrix< E, A, B, L > &m, const quaternion< QE, QA, O, C > &q, const VecT &translation) |
3D affine transform from a quaternion and a translation | |
template<typename E , class A , class B , class L , class VecT_1 , class VecT_2 , class VecT_3 , class VecT_4 > | |
void | cml::matrix_affine_transform (matrix< E, A, B, L > &m, const VecT_1 &x, const VecT_2 &y, const VecT_3 &z, const VecT_4 &translation) |
3D affine transform from three basis vectors and a translation | |
template<typename E , class A , class B , class L , class MatT , class VecT > | |
void | cml::matrix_affine_transform_2D (matrix< E, A, B, L > &m, const MatT &linear, const VecT &translation) |
2D affine transform from a matrix and a translation | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_affine_transform_2D (matrix< E, A, B, L > &m, E angle, const VecT &translation) |
2D affine transform from a rotation angle and a translation | |
template<typename E , class A , class B , class L , class VecT_1 , class VecT_2 , class VecT_3 > | |
void | cml::matrix_affine_transform_2D (matrix< E, A, B, L > &m, const VecT_1 &x, const VecT_2 &y, const VecT_3 &translation) |
2D affine transform from two basis vectors and a translation | |
template<typename E , class A , class B , class L , class VecT_1 , class VecT_2 > | |
void | cml::matrix_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_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 > | |
void | cml::matrix_aim_at_2D (matrix< E, A, B, L > &m, const VecT_1 &pos, const VecT_2 &target, 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 , class VecT_3 > | |
void | cml::matrix_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 , class MatT > | |
void | cml::matrix_aim_at_viewplane (matrix< E, A, B, L > &m, const VecT &pos, const MatT &view_matrix, Handedness handedness, AxisOrder order=axis_order_zyx) |
See vector_ortho.h for details. | |
template<class MatT , typename Real , typename E , class A > | |
void | cml::matrix_decompose_SRT (const MatT &m, Real &scale_x, Real &scale_y, Real &scale_z, vector< E, A > &axis, Real &angle, vector< E, A > &translation, Real tolerance=epsilon< Real >::placeholder()) |
template<class MatT , typename Real , typename E , class A > | |
void | cml::matrix_decompose_SRT (const MatT &m, Real &scale_x, Real &scale_y, Real &scale_z, Real &angle_0, Real &angle_1, Real &angle_2, EulerOrder order, vector< E, A > &translation, Real tolerance=epsilon< Real >::placeholder()) |
template<class MatT , typename Real , typename QE , class QA , class O , class C , typename VE , class VA > | |
void | cml::matrix_decompose_SRT (const MatT &m, Real &scale_x, Real &scale_y, Real &scale_z, quaternion< QE, QA, O, C > &rotation, vector< VE, VA > &translation) |
template<class MatT , typename Real , typename ME , class MA , class B , class L , typename VE , class VA > | |
void | cml::matrix_decompose_SRT (const MatT &m, Real &scale_x, Real &scale_y, Real &scale_z, matrix< ME, MA, B, L > &rotation, vector< VE, VA > &translation) |
template<class MatT , typename Real , typename E , class A > | |
void | cml::matrix_decompose_SRT_2D (const MatT &m, Real &scale_x, Real &scale_y, Real &angle, vector< E, A > &translation) |
template<class MatT , typename Real , typename ME , class MA , class B , class L , typename VE , class VA > | |
void | cml::matrix_decompose_SRT_2D (const MatT &m, Real &scale_x, Real &scale_y, matrix< ME, MA, B, L > &rotation, vector< VE, VA > &translation) |
template<typename E , class A , class B , class L , class MatT > | |
void | cml::matrix_linear_transform (matrix< E, A, B, L > &m, const MatT &linear) |
Build a matrix from the 3x3 linear transform part of another matrix. | |
template<typename E , class A , class B , class L , class MatT > | |
void | cml::matrix_linear_transform_2D (matrix< E, A, B, L > &m, const MatT &linear) |
Build a matrix from the 2x2 linear transform part of another matrix. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_look_at (matrix< E, A, B, L > &m, E eye_x, E eye_y, E eye_z, E target_x, E target_y, E target_z, E up_x, E up_y, E up_z, Handedness handedness) |
Build a matrix representing a 'look at' view transform. | |
template<typename E , class A , class B , class L , class VecT_1 , class VecT_2 , class VecT_3 > | |
void | cml::matrix_look_at (matrix< E, A, B, L > &m, const VecT_1 &eye, const VecT_2 &target, const VecT_3 &up, Handedness handedness) |
Build a matrix representing a 'look at' view transform. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_look_at_LH (matrix< E, A, B, L > &m, E eye_x, E eye_y, E eye_z, E target_x, E target_y, E target_z, E up_x, E up_y, E up_z) |
Build a matrix representing a left-handed'look at' view transform. | |
template<typename E , class A , class B , class L , class VecT_1 , class VecT_2 , class VecT_3 > | |
void | cml::matrix_look_at_LH (matrix< E, A, B, L > &m, const VecT_1 &eye, const VecT_2 &target, const VecT_3 &up) |
Build a matrix representing a left-handedness 'look at' view transform. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_look_at_RH (matrix< E, A, B, L > &m, E eye_x, E eye_y, E eye_z, E target_x, E target_y, E target_z, E up_x, E up_y, E up_z) |
Build a matrix representing a right-handed'look at' view transform. | |
template<typename E , class A , class B , class L , class VecT_1 , class VecT_2 , class VecT_3 > | |
void | cml::matrix_look_at_RH (matrix< E, A, B, L > &m, const VecT_1 &eye, const VecT_2 &target, const VecT_3 &up) |
Build a matrix representing a right-handedness 'look at' view transform. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_ortho_project (matrix< E, A, B, L > &m, size_t axis) |
Build a matrix representing an orthographic projection onto a plane. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_ortho_project_2D (matrix< E, A, B, L > &m, size_t axis) |
Build a matrix representing a 2D orthographic projection. | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_ortho_project_to_hplane (matrix< E, A, B, L > &m, const VecT &normal) |
Build a matrix representing a 3D orthographic projection about the given hyperplane passing through the origin. | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_ortho_project_to_hplane_2D (matrix< E, A, B, L > &m, const VecT &normal) |
Build a matrix representing a 2D orthographic projection about the given hyperplane passing through the origin. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_ortho_project_x_2D (matrix< E, A, B, L > &m) |
Build a matrix representing an orthographic projection onto the x axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_ortho_project_xy (matrix< E, A, B, L > &m) |
Build a matrix representing an orthographic projection onto the zy plane. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_ortho_project_y_2D (matrix< E, A, B, L > &m) |
Build a matrix representing an orthographic projection onto the y axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_ortho_project_yz (matrix< E, A, B, L > &m) |
Build a matrix representing an orthographic projection onto the yz plane. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_ortho_project_zx (matrix< E, A, B, L > &m) |
Build a matrix representing an orthographic projection onto the zx plane. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_reflect (matrix< E, A, B, L > &m, size_t axis) |
Build a matrix representing a 3D reflection along the given world axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_reflect_2D (matrix< E, A, B, L > &m, size_t axis) |
Build a matrix representing a 2D reflection along the given world axis. | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_reflect_about_hplane (matrix< E, A, B, L > &m, const VecT &normal) |
Build a matrix representing a 3D reflection about the given hyperplane. | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_reflect_about_hplane_2D (matrix< E, A, B, L > &m, const VecT &normal) |
Build a matrix representing a 2D reflection about the given hyperplane. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_reflect_x (matrix< E, A, B, L > &m) |
Build a matrix representing a 3D reflection along the world x axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_reflect_x_2D (matrix< E, A, B, L > &m) |
Build a matrix representing a 2D reflection along the world x axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_reflect_y (matrix< E, A, B, L > &m) |
Build a matrix representing a 3D reflection along the world y axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_reflect_y_2D (matrix< E, A, B, L > &m) |
Build a matrix representing a 2D reflection along the world y axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_reflect_z (matrix< E, A, B, L > &m) |
Build a matrix representing a 3D reflection along the world z axis. | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_scale (matrix< E, A, B, L > &m, const VecT &scale) |
Build a matrix representing a non-uniform 3D scale. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_scale (matrix< E, A, B, L > &m, E scale_x, E scale_y, E scale_z) |
Build a matrix representing a non-uniform 3D scale. | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_scale_2D (matrix< E, A, B, L > &m, const VecT &scale) |
Build a matrix representing a non-uniform 2D scale. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_scale_2D (matrix< E, A, B, L > &m, E scale_x, E scale_y) |
Build a matrix representing a non-uniform 2D scale. | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_scale_along_axis (matrix< E, A, B, L > &m, const VecT &axis, E scale) |
Build a matrix representing a 3D scale along an arbitrary axis. | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_scale_along_axis_2D (matrix< E, A, B, L > &m, const VecT &axis, E scale) |
Build a matrix representing a 2D scale along an arbitrary axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_shear (matrix< E, A, B, L > &m, size_t axis, E shear_s, E shear_t) |
Build a matrix representing a 3D shear along the specified world axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_shear_2D (matrix< E, A, B, L > &m, size_t axis, E shear) |
Build a matrix representing a 2D shear along the specified world axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_shear_x (matrix< E, A, B, L > &m, E shear_s, E shear_t) |
Build a matrix representing a 3D shear along the world x axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_shear_x_2D (matrix< E, A, B, L > &m, E shear) |
Build a matrix representing a 2D shear along the world x axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_shear_y (matrix< E, A, B, L > &m, E shear_s, E shear_t) |
Build a matrix representing a 3D shear along the world y axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_shear_y_2D (matrix< E, A, B, L > &m, E shear) |
Build a matrix representing a 2D shear along the world y axis. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_shear_z (matrix< E, A, B, L > &m, E shear_s, E shear_t) |
Build a matrix representing a 3D shear along the world z axis. | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_translation (matrix< E, A, B, L > &m, const VecT &translation) |
Build a matrix representing a 3D translation. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_translation (matrix< E, A, B, L > &m, E x, E y) |
Build a matrix representing a 3D translation with z set to 0. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_translation (matrix< E, A, B, L > &m, E x, E y, E z) |
Build a matrix representing a 3D translation. | |
template<typename E , class A , class B , class L , class VecT > | |
void | cml::matrix_translation_2D (matrix< E, A, B, L > &m, const VecT &translation) |
Build a matrix representing a 2D translation. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_translation_2D (matrix< E, A, B, L > &m, E x, E y) |
Build a matrix representing a 2D translation. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_uniform_scale (matrix< E, A, B, L > &m, E scale) |
Build a matrix representing a uniform 3D scale. | |
template<typename E , class A , class B , class L > | |
void | cml::matrix_uniform_scale_2D (matrix< E, A, B, L > &m, E scale) |
Build a matrix representing a uniform 2D scale. |
Definition in file matrix_transform.h.