matrix_transform.h File Reference

#include <cml/mathlib/matrix_basis.h>
#include <cml/mathlib/matrix_rotation.h>
#include <cml/mathlib/matrix_translation.h>

Include dependency graph for matrix_transform.h:

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

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.


Detailed Description

Definition in file matrix_transform.h.


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