Namespaces | Functions

Xforms.h File Reference

#include <gmtl/Point.h>
#include <gmtl/Vec.h>
#include <gmtl/Matrix.h>
#include <gmtl/MatrixOps.h>
#include <gmtl/Quat.h>
#include <gmtl/QuatOps.h>
#include <gmtl/Ray.h>
#include <gmtl/LineSeg.h>
#include <gmtl/Util/StaticAssert.h>
Include dependency graph for Xforms.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  gmtl
 

Meta programming classes.


Functions

template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
Ray< DATA_TYPE > & gmtl::xform (Ray< DATA_TYPE > &result, const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Ray< DATA_TYPE > &ray)
 transform ray by a matrix.
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
Ray< DATA_TYPE > gmtl::operator* (const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Ray< DATA_TYPE > &ray)
 ray * a matrix multiplication of [m x k] matrix by a ray.
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
Ray< DATA_TYPE > & gmtl::operator*= (Ray< DATA_TYPE > &ray, const Matrix< DATA_TYPE, ROWS, COLS > &matrix)
 ray *= a matrix multiplication of [m x k] matrix by a ray.
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
LineSeg< DATA_TYPE > & gmtl::xform (LineSeg< DATA_TYPE > &result, const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const LineSeg< DATA_TYPE > &seg)
 transform seg by a matrix.
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
LineSeg< DATA_TYPE > gmtl::operator* (const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const LineSeg< DATA_TYPE > &seg)
 seg * a matrix multiplication of [m x k] matrix by a seg.
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
LineSeg< DATA_TYPE > & gmtl::operator*= (LineSeg< DATA_TYPE > &seg, const Matrix< DATA_TYPE, ROWS, COLS > &matrix)
 seg *= a matrix multiplication of [m x k] matrix by a seg.
Vector Transform (Quaternion)

template<typename DATA_TYPE >
VecBase< DATA_TYPE, 3 > & gmtl::xform (VecBase< DATA_TYPE, 3 > &result, const Quat< DATA_TYPE > &rot, const VecBase< DATA_TYPE, 3 > &vector)
 transform a vector by a rotation quaternion.
template<typename DATA_TYPE >
VecBase< DATA_TYPE, 3 > gmtl::operator* (const Quat< DATA_TYPE > &rot, const VecBase< DATA_TYPE, 3 > &vector)
 transform a vector by a rotation quaternion.
template<typename DATA_TYPE >
VecBase< DATA_TYPE, 3 > gmtl::operator*= (VecBase< DATA_TYPE, 3 > &vector, const Quat< DATA_TYPE > &rot)
 transform a vector by a rotation quaternion.
Vector Transform (Matrix)

template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
Vec< DATA_TYPE, COLS > & gmtl::xform (Vec< DATA_TYPE, COLS > &result, const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Vec< DATA_TYPE, COLS > &vector)
 xform a vector by a matrix.
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
Vec< DATA_TYPE, COLS > gmtl::operator* (const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Vec< DATA_TYPE, COLS > &vector)
 matrix * vector xform.
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS, unsigned VEC_SIZE>
Vec< DATA_TYPE, VEC_SIZE > & gmtl::xform (Vec< DATA_TYPE, VEC_SIZE > &result, const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Vec< DATA_TYPE, VEC_SIZE > &vector)
 partially transform a partially specified vector by a matrix, assumes last elt of vector is 0 (the 0 makes it only partially transformed).
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS, unsigned COLS_MINUS_ONE>
Vec< DATA_TYPE, COLS_MINUS_ONE > gmtl::operator* (const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Vec< DATA_TYPE, COLS_MINUS_ONE > &vector)
 matrix * partial vector, assumes last elt of vector is 0 (partial transform).
Point Transform (Matrix)

template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
Point< DATA_TYPE, COLS > & gmtl::xform (Point< DATA_TYPE, COLS > &result, const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Point< DATA_TYPE, COLS > &point)
 transform point by a matrix.
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
Point< DATA_TYPE, COLS > gmtl::operator* (const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Point< DATA_TYPE, COLS > &point)
 matrix * point.
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS, unsigned PNT_SIZE>
Point< DATA_TYPE, PNT_SIZE > & gmtl::xform (Point< DATA_TYPE, PNT_SIZE > &result, const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Point< DATA_TYPE, PNT_SIZE > &point)
 transform a partially specified point by a matrix, assumes last elt of point is 1.
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS, unsigned COLS_MINUS_ONE>
Point< DATA_TYPE, COLS_MINUS_ONE > gmtl::operator* (const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Point< DATA_TYPE, COLS_MINUS_ONE > &point)
 matrix * partially specified point.
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
Point< DATA_TYPE, COLS > gmtl::operator* (const Point< DATA_TYPE, COLS > &point, const Matrix< DATA_TYPE, ROWS, COLS > &matrix)
 point * a matrix multiplication of [m x k] matrix by a [k x 1] matrix (also known as a Point [with w == 1 for points by definition] ).
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS>
Point< DATA_TYPE, COLS > gmtl::operator*= (Point< DATA_TYPE, COLS > &point, const Matrix< DATA_TYPE, ROWS, COLS > &matrix)
 point *= a matrix multiplication of [m x k] matrix by a [k x 1] matrix (also known as a Point [with w == 1 for points by definition] ).
template<typename DATA_TYPE , unsigned ROWS, unsigned COLS, unsigned COLS_MINUS_ONE>
Point< DATA_TYPE,
COLS_MINUS_ONE > & 
gmtl::operator*= (Point< DATA_TYPE, COLS_MINUS_ONE > &point, const Matrix< DATA_TYPE, ROWS, COLS > &matrix)
 partial point *= a matrix multiplication of [m x k] matrix by a [k-1 x 1] matrix (also known as a Point [with w == 1 for points by definition] ).