Compounds | |
| class | gmtl::AABox |
| Describes an axially aligned box in 3D space. More... | |
| class | gmtl::AxisAngle |
| AxisAngle: Represents a "twist about an axis" AxisAngle is used to specify a rotation in 3-space. More... | |
| struct | gmtl::CompareIndexPointProjections |
| class | gmtl::Coord |
| coord is a position/rotation pair. More... | |
| class | gmtl::Eigen |
| class | gmtl::EulerAngle |
| EulerAngle: Represents a group of euler angles. More... | |
| class | gmtl::LineSeg |
| Describes a line segment. More... | |
| class | gmtl::Matrix |
| Matrix: 4x4 Matrix class (OpenGL ordering). More... | |
| class | gmtl::OOBox |
| class | gmtl::Plane |
| Plane: Defines a geometrical plane. More... | |
| class | gmtl::Point |
| Point Use points when you need to represent a position. More... | |
| class | gmtl::Quat |
| Quat: Class to encapsulate quaternion behaviors. More... | |
| class | gmtl::Ray |
| Describes a ray. More... | |
| struct | gmtl::RotationOrderBase |
| Base class for Rotation orders. More... | |
| class | gmtl::Matrix::RowAccessor |
| Helper class for Matrix op[]. More... | |
| class | gmtl::Sphere |
| Describes a sphere in 3D space by its center point and its radius. More... | |
| struct | gmtl::static_assert_test |
| struct | gmtl::STATIC_ASSERTION_FAILURE< true > |
| class | gmtl::Tri |
| This class defines a triangle as a set of 3 points order in CCW fashion. More... | |
| struct | gmtl::Type2Type |
| A lightweight identifier you can pass to overloaded functions to typefy them. More... | |
| class | gmtl::Vec |
| A representation of a vector with SIZE components using DATA_TYPE as the data type for each component. More... | |
| class | gmtl::VecBase |
| Base type for vector-like objects including Points and Vectors. More... | |
| struct | gmtl::XYZ |
| XYZ Rotation order. More... | |
| struct | gmtl::ZXY |
| ZXY Rotation order. More... | |
| struct | gmtl::ZYX |
| ZYX Rotation order. More... | |
AABox Comparitors | |
| template<class DATA_TYPE> bool | operator== (const AABox< DATA_TYPE > &b1, const AABox< DATA_TYPE > &b2) |
| Compare two AABoxes to see if they are EXACTLY the same. More... | |
| template<class DATA_TYPE> bool | operator!= (const AABox< DATA_TYPE > &b1, const AABox< DATA_TYPE > &b2) |
| Compare two AABoxes to see if they are not EXACTLY the same. More... | |
| template<class DATA_TYPE> bool | isEqual (const AABox< DATA_TYPE > &b1, const AABox< DATA_TYPE > &b2, const DATA_TYPE &eps) |
| Compare two AABoxes to see if they are the same within the given tolerance. More... | |
AxisAngle Comparitors | |
| template<class DATA_TYPE> bool | operator== (const AxisAngle< DATA_TYPE > &a1, const AxisAngle< DATA_TYPE > &a2) |
| Compares 2 AxisAngles to see if they are exactly the same. More... | |
| template<class DATA_TYPE> bool | operator!= (const AxisAngle< DATA_TYPE > &a1, const AxisAngle< DATA_TYPE > &a2) |
| Compares 2 AxisAngles to see if they are NOT exactly the same. More... | |
| template<class DATA_TYPE> bool | isEqual (const AxisAngle< DATA_TYPE > &a1, const AxisAngle< DATA_TYPE > &a2, const DATA_TYPE &eps=(DATA_TYPE) 0) |
| Compares a1 and a2 to see if they are the same within the given epsilon tolerance. More... | |
Coord Comparitors | |
| template<typename POS_TYPE, typename ROT_TYPE> bool | operator== (const Coord< POS_TYPE, ROT_TYPE > &c1, const Coord< POS_TYPE, ROT_TYPE > &c2) |
| Compare two coordinate frames for equality. More... | |
| template<typename POS_TYPE, typename ROT_TYPE> bool | operator!= (const Coord< POS_TYPE, ROT_TYPE > &c1, const Coord< POS_TYPE, ROT_TYPE > &c2) |
| Compare two coordinate frames for not-equality. More... | |
| template<typename POS_TYPE, typename ROT_TYPE> bool | isEqual (const Coord< POS_TYPE, ROT_TYPE > &c1, const Coord< POS_TYPE, ROT_TYPE > &c2, typename Coord< POS_TYPE, ROT_TYPE >::DataType tol=(typename Coord< POS_TYPE, ROT_TYPE >::DataType) 0.0) |
| Compare two coordinate frames for equality with a given tolerance. More... | |
EulerAngle Comparitors | |
| template<class DATA_TYPE, typename ROT_ORDER> bool | operator== (const EulerAngle< DATA_TYPE, ROT_ORDER > &e1, const EulerAngle< DATA_TYPE, ROT_ORDER > &e2) |
| Compares 2 EulerAngles (component-wise) to see if they are exactly the same. More... | |
| template<class DATA_TYPE, typename ROT_ORDER> bool | operator!= (const EulerAngle< DATA_TYPE, ROT_ORDER > &e1, const EulerAngle< DATA_TYPE, ROT_ORDER > &e2) |
| Compares e1 and e2 (component-wise) to see if they are NOT exactly the same. More... | |
| template<class DATA_TYPE, typename ROT_ORDER> bool | isEqual (const EulerAngle< DATA_TYPE, ROT_ORDER > &e1, const EulerAngle< DATA_TYPE, ROT_ORDER > &e2, const DATA_TYPE &eps=(DATA_TYPE) 0) |
| Compares e1 and e2 (component-wise) to see if they are the same within a given tolerance. More... | |
Generic Generators (any type) | |
| template<typename TARGET_TYPE, typename SOURCE_TYPE> TARGET_TYPE | make (const SOURCE_TYPE &src, Type2Type< TARGET_TYPE > t=Type2Type< TARGET_TYPE >()) |
| Construct an object from another object of a different type. More... | |
| template<typename ROTATION_TYPE, typename SOURCE_TYPE> ROTATION_TYPE | makeRot (const SOURCE_TYPE &coord, Type2Type< ROTATION_TYPE > t=Type2Type< ROTATION_TYPE >()) |
| Create a rotation datatype from another rotation datatype. More... | |
| template<typename ROTATION_TYPE> ROTATION_TYPE | makeDirCos (const Vec< typename ROTATION_TYPE::DataType, 3 > &xDestAxis, const Vec< typename ROTATION_TYPE::DataType, 3 > &yDestAxis, const Vec< typename ROTATION_TYPE::DataType, 3 > &zDestAxis, const Vec< typename ROTATION_TYPE::DataType, 3 > &xSrcAxis=Vec< typename ROTATION_TYPE::DataType, 3 >(1, 0, 0), const Vec< typename ROTATION_TYPE::DataType, 3 > &ySrcAxis=Vec< typename ROTATION_TYPE::DataType, 3 >(0, 1, 0), const Vec< typename ROTATION_TYPE::DataType, 3 > &zSrcAxis=Vec< typename ROTATION_TYPE::DataType, 3 >(0, 0, 1), Type2Type< ROTATION_TYPE > t=Type2Type< ROTATION_TYPE >()) |
| Create a rotation matrix or quaternion (or any other rotation data type) using direction cosines. More... | |
| template<typename TRANS_TYPE, typename SRC_TYPE> TRANS_TYPE | makeTrans (const SRC_TYPE &arg, Type2Type< TRANS_TYPE > t=Type2Type< TRANS_TYPE >()) |
| Make a translation datatype from another translation datatype. More... | |
| template<typename ROTATION_TYPE> ROTATION_TYPE | makeRot (const Vec< typename ROTATION_TYPE::DataType, 3 > &from, const Vec< typename ROTATION_TYPE::DataType, 3 > &to) |
| Create a rotation datatype that will xform first vector to the second. More... | |
| template<typename DEST_TYPE, typename DATA_TYPE> DEST_TYPE & | setRot (DEST_TYPE &result, const Vec< DATA_TYPE, 3 > &from, const Vec< DATA_TYPE, 3 > &to) |
| set a rotation datatype that will xform first vector to the second. More... | |
Vec Generators | |
| template<typename DATA_TYPE> Vec< DATA_TYPE, 3 > | makeVec (const Quat< DATA_TYPE > &quat) |
| create a vector from the vector component of a quaternion. More... | |
| template<typename DATA_TYPE, unsigned SIZE> Vec< DATA_TYPE, SIZE > | makeNormal (Vec< DATA_TYPE, SIZE > vec) |
| create a normalized vector from the given vector. More... | |
| template<typename VEC_TYPE, typename DATA_TYPE, unsigned ROWS, unsigned COLS> VEC_TYPE & | setTrans (VEC_TYPE &result, const Matrix< DATA_TYPE, ROWS, COLS > &arg) |
| Set vector using translation portion of the matrix. More... | |
Quat Generators | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | setPure (Quat< DATA_TYPE > &quat, const Vec< DATA_TYPE, 3 > &vec) |
| Set pure quaternion. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > | makePure (const Vec< DATA_TYPE, 3 > &vec) |
| create a pure quaternion. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > | makeNormal (const Quat< DATA_TYPE > &quat) |
| Normalize a quaternion. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > | makeConj (const Quat< DATA_TYPE > &quat) |
| quaternion complex conjugate. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > | makeInvert (const Quat< DATA_TYPE > &quat) |
| create quaternion from the inverse of another quaternion. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | set (Quat< DATA_TYPE > &result, const AxisAngle< DATA_TYPE > &axisAngle) |
| Convert an AxisAngle to a Quat. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | setRot (Quat< DATA_TYPE > &result, const AxisAngle< DATA_TYPE > &axisAngle) |
| Redundant duplication of the set(quat,axisangle) function, this is provided only for template compatibility. More... | |
| template<typename DATA_TYPE, typename ROT_ORDER> Quat< DATA_TYPE > & | set (Quat< DATA_TYPE > &result, const EulerAngle< DATA_TYPE, ROT_ORDER > &euler) |
| Convert an EulerAngle rotation to a Quaternion rotation. More... | |
| template<typename DATA_TYPE, typename ROT_ORDER> Quat< DATA_TYPE > & | setRot (Quat< DATA_TYPE > &result, const EulerAngle< DATA_TYPE, ROT_ORDER > &euler) |
| Redundant duplication of the set(quat,eulerangle) function, this is provided only for template compatibility. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Quat< DATA_TYPE > & | set (Quat< DATA_TYPE > &quat, const Matrix< DATA_TYPE, ROWS, COLS > &mat) |
| Convert a Matrix to a Quat. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Quat< DATA_TYPE > & | setRot (Quat< DATA_TYPE > &result, const Matrix< DATA_TYPE, ROWS, COLS > &mat) |
| Redundant duplication of the set(quat,mat) function, this is provided only for template compatibility. More... | |
AxisAngle Generators | |
| template<typename DATA_TYPE> AxisAngle< DATA_TYPE > & | set (AxisAngle< DATA_TYPE > &axisAngle, Quat< DATA_TYPE > quat) |
| Convert a rotation quaternion to an AxisAngle. More... | |
| template<typename DATA_TYPE> AxisAngle< DATA_TYPE > & | setRot (AxisAngle< DATA_TYPE > &result, Quat< DATA_TYPE > quat) |
| Redundant duplication of the set(axisangle,quat) function, this is provided only for template compatibility. More... | |
| template<typename DATA_TYPE> AxisAngle< DATA_TYPE > | makeNormal (const AxisAngle< DATA_TYPE > &a) |
| make the axis of an AxisAngle normalized. More... | |
EulerAngle Generators | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS, typename ROT_ORDER> EulerAngle< DATA_TYPE, ROT_ORDER > & | set (EulerAngle< DATA_TYPE, ROT_ORDER > &euler, const Matrix< DATA_TYPE, ROWS, COLS > &mat) |
| Convert Matrix to EulerAngle. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS, typename ROT_ORDER> EulerAngle< DATA_TYPE, ROT_ORDER > & | setRot (EulerAngle< DATA_TYPE, ROT_ORDER > &result, const Matrix< DATA_TYPE, ROWS, COLS > &mat) |
| Redundant duplication of the set(eulerangle,quat) function, this is provided only for template compatibility. More... | |
Matrix Generators | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS, unsigned SIZE> Matrix< DATA_TYPE, ROWS, COLS > & | setTrans (Matrix< DATA_TYPE, ROWS, COLS > &result, const Vec< DATA_TYPE, SIZE > &trans) |
| Set matrix translation from vec. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS, unsigned SIZE> Matrix< DATA_TYPE, ROWS, COLS > & | setScale (Matrix< DATA_TYPE, ROWS, COLS > &result, const Vec< DATA_TYPE, SIZE > &scale) |
| Set the scale part of a matrix. More... | |
| template<typename MATRIX_TYPE, unsigned SIZE> MATRIX_TYPE | makeScale (const Vec< typename MATRIX_TYPE::DataType, SIZE > &scale, Type2Type< MATRIX_TYPE > t=Type2Type< MATRIX_TYPE >()) |
| Create a scale matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | setScale (Matrix< DATA_TYPE, ROWS, COLS > &result, const DATA_TYPE scale) |
| Sets the scale part of a matrix. More... | |
| template<typename MATRIX_TYPE> MATRIX_TYPE | makeScale (const typename MATRIX_TYPE::DataType scale, Type2Type< MATRIX_TYPE > t=Type2Type< MATRIX_TYPE >()) |
| Create a scale matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | setRot (Matrix< DATA_TYPE, ROWS, COLS > &result, const AxisAngle< DATA_TYPE > &axisAngle) |
| Set the rotation portion of a rotation matrix using an axis and an angle (in radians). More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | set (Matrix< DATA_TYPE, ROWS, COLS > &result, const AxisAngle< DATA_TYPE > &axisAngle) |
| Convert an AxisAngle to a rotation matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS, typename ROT_ORDER> Matrix< DATA_TYPE, ROWS, COLS > & | setRot (Matrix< DATA_TYPE, ROWS, COLS > &result, const EulerAngle< DATA_TYPE, ROT_ORDER > &euler) |
| Set (only) the rotation part of a matrix using an EulerAngle (angles are in radians). More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS, typename ROT_ORDER> Matrix< DATA_TYPE, ROWS, COLS > & | set (Matrix< DATA_TYPE, ROWS, COLS > &result, const EulerAngle< DATA_TYPE, ROT_ORDER > &euler) |
| Convert an EulerAngle to a rotation matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> DATA_TYPE | makeYRot (const Matrix< DATA_TYPE, ROWS, COLS > &mat) |
| Extracts the Y axis rotation information from the matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> DATA_TYPE | makeXRot (const Matrix< DATA_TYPE, ROWS, COLS > &mat) |
| Extracts the X-axis rotation information from the matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> DATA_TYPE | makeZRot (const Matrix< DATA_TYPE, ROWS, COLS > &mat) |
| Extracts the Z-axis rotation information from the matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | setDirCos (Matrix< DATA_TYPE, ROWS, COLS > &result, const Vec< DATA_TYPE, 3 > &xDestAxis, const Vec< DATA_TYPE, 3 > &yDestAxis, const Vec< DATA_TYPE, 3 > &zDestAxis, const Vec< DATA_TYPE, 3 > &xSrcAxis=Vec< DATA_TYPE, 3 >(1, 0, 0), const Vec< DATA_TYPE, 3 > &ySrcAxis=Vec< DATA_TYPE, 3 >(0, 1, 0), const Vec< DATA_TYPE, 3 > &zSrcAxis=Vec< DATA_TYPE, 3 >(0, 0, 1)) |
| create a rotation matrix that will rotate from SrcAxis to DestAxis. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | setAxes (Matrix< DATA_TYPE, ROWS, COLS > &result, const Vec< DATA_TYPE, 3 > &xAxis, const Vec< DATA_TYPE, 3 > &yAxis, const Vec< DATA_TYPE, 3 > &zAxis) |
| set the matrix given the raw coordinate axes. More... | |
| template<typename ROTATION_TYPE> ROTATION_TYPE | makeAxes (const Vec< typename ROTATION_TYPE::DataType, 3 > &xAxis, const Vec< typename ROTATION_TYPE::DataType, 3 > &yAxis, const Vec< typename ROTATION_TYPE::DataType, 3 > &zAxis, Type2Type< ROTATION_TYPE > t=Type2Type< ROTATION_TYPE >()) |
| set the matrix given the raw coordinate axes. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > | makeTranspose (const Matrix< DATA_TYPE, ROWS, COLS > &m) |
| create a matrix transposed from the source. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > | makeInverse (const Matrix< DATA_TYPE, ROWS, COLS > &src) |
| Creates a matrix that is the inverse of the given source matrix. More... | |
| template<typename DATATYPE, typename POS_TYPE, typename ROT_TYPE, unsigned MATCOLS, unsigned MATROWS> Matrix< DATATYPE, MATROWS, MATCOLS > & | set (Matrix< DATATYPE, MATROWS, MATCOLS > &mat, const Coord< POS_TYPE, ROT_TYPE > &coord) |
| Convert a Coord to a Matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | setRot (Matrix< DATA_TYPE, ROWS, COLS > &mat, const Quat< DATA_TYPE > &q) |
| Set the rotation portion of a matrix (3x3) from a rotation quaternion. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | set (Matrix< DATA_TYPE, ROWS, COLS > &mat, const Quat< DATA_TYPE > &q) |
| Convert a Quat to a rotation Matrix. More... | |
Coord Generators | |
| template<typename DATATYPE, typename POS_TYPE, typename ROT_TYPE, unsigned MATCOLS, unsigned MATROWS> Coord< POS_TYPE, ROT_TYPE > & | set (Coord< POS_TYPE, ROT_TYPE > &eulercoord, const Matrix< DATATYPE, MATROWS, MATCOLS > &mat) |
| convert Matrix to Coord. More... | |
| template<typename DATATYPE, typename POS_TYPE, typename ROT_TYPE, unsigned MATCOLS, unsigned MATROWS> Coord< POS_TYPE, ROT_TYPE > & | setRot (Coord< POS_TYPE, ROT_TYPE > &result, const Matrix< DATATYPE, MATROWS, MATCOLS > &mat) |
| Redundant duplication of the set(coord,mat) function, this is provided only for template compatibility. More... | |
Matrix Operations | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | identity (Matrix< DATA_TYPE, ROWS, COLS > &result) |
| Make identity matrix out the matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | zero (Matrix< DATA_TYPE, ROWS, COLS > &result) |
| zero out the matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned INTERNAL, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | mult (Matrix< DATA_TYPE, ROWS, COLS > &result, const Matrix< DATA_TYPE, ROWS, INTERNAL > &lhs, const Matrix< DATA_TYPE, INTERNAL, COLS > &rhs) |
| matrix multiply. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned INTERNAL, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > | operator * (const Matrix< DATA_TYPE, ROWS, INTERNAL > &lhs, const Matrix< DATA_TYPE, INTERNAL, COLS > &rhs) |
| matrix * matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | sub (Matrix< DATA_TYPE, ROWS, COLS > &result, const Matrix< DATA_TYPE, ROWS, COLS > &lhs, const Matrix< DATA_TYPE, ROWS, COLS > &rhs) |
| matrix subtraction (algebraic operation for matrix). More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | add (Matrix< DATA_TYPE, ROWS, COLS > &result, const Matrix< DATA_TYPE, ROWS, COLS > &lhs, const Matrix< DATA_TYPE, ROWS, COLS > &rhs) |
| matrix addition (algebraic operation for matrix). More... | |
| template<typename DATA_TYPE, unsigned SIZE> Matrix< DATA_TYPE, SIZE, SIZE > & | postMult (Matrix< DATA_TYPE, SIZE, SIZE > &result, const Matrix< DATA_TYPE, SIZE, SIZE > &operand) |
| matrix postmultiply. More... | |
| template<typename DATA_TYPE, unsigned SIZE> Matrix< DATA_TYPE, SIZE, SIZE > & | preMult (Matrix< DATA_TYPE, SIZE, SIZE > &result, const Matrix< DATA_TYPE, SIZE, SIZE > &operand) |
| matrix preMultiply. More... | |
| template<typename DATA_TYPE, unsigned SIZE> Matrix< DATA_TYPE, SIZE, SIZE > & | operator *= (Matrix< DATA_TYPE, SIZE, SIZE > &result, const Matrix< DATA_TYPE, SIZE, SIZE > &operand) |
| matrix postmult (operator *=). More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | mult (Matrix< DATA_TYPE, ROWS, COLS > &result, const Matrix< DATA_TYPE, ROWS, COLS > &mat, float scalar) |
| matrix scalar mult. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | mult (Matrix< DATA_TYPE, ROWS, COLS > &result, DATA_TYPE scalar) |
| matrix scalar mult. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | operator *= (Matrix< DATA_TYPE, ROWS, COLS > &result, DATA_TYPE scalar) |
| matrix scalar mult (operator *=). More... | |
| template<typename DATA_TYPE, unsigned SIZE> Matrix< DATA_TYPE, SIZE, SIZE > & | transpose (Matrix< DATA_TYPE, SIZE, SIZE > &result) |
| matrix transpose in place. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | transpose (Matrix< DATA_TYPE, ROWS, COLS > &result, const Matrix< DATA_TYPE, COLS, ROWS > &source) |
| matrix transpose from one type to another (i.e. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | invertFull (Matrix< DATA_TYPE, ROWS, COLS > &result, const Matrix< DATA_TYPE, ROWS, COLS > &src) |
| full matrix inversion. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | invert (Matrix< DATA_TYPE, ROWS, COLS > &result, const Matrix< DATA_TYPE, ROWS, COLS > &src) |
| smart matrix inversion. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Matrix< DATA_TYPE, ROWS, COLS > & | invert (Matrix< DATA_TYPE, ROWS, COLS > &result) |
| smart matrix inversion (in place) Does matrix inversion by intelligently selecting what type of inversion to use depending on the types of operations your Matrix has been through. More... | |
Matrix Comparitors | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> bool | operator== (const Matrix< DATA_TYPE, ROWS, COLS > &lhs, const Matrix< DATA_TYPE, ROWS, COLS > &rhs) |
| Tests 2 matrices for equality. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> bool | operator!= (const Matrix< DATA_TYPE, ROWS, COLS > &lhs, const Matrix< DATA_TYPE, ROWS, COLS > &rhs) |
| Tests 2 matrices for inequality. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> bool | isEqual (const Matrix< DATA_TYPE, ROWS, COLS > &lhs, const Matrix< DATA_TYPE, ROWS, COLS > &rhs, const DATA_TYPE &eps=(DATA_TYPE) 0) |
| Tests 2 matrices for equality within a tolerance. More... | |
Output Stream Operators | |
| template<class DATA_TYPE, unsigned SIZE> std::ostream & | operator<< (std::ostream &out, const VecBase< DATA_TYPE, SIZE > &v) |
| Outputs a string representation of the given VecBase type to the given output stream. More... | |
| template<class DATA_TYPE, typename ROTATION_ORDER> std::ostream & | operator<< (std::ostream &out, const EulerAngle< DATA_TYPE, ROTATION_ORDER > &e) |
| Outputs a string representation of the given EulerAngle type to the given output stream. More... | |
| template<class DATA_TYPE, unsigned ROWS, unsigned COLS> std::ostream & | operator<< (std::ostream &out, const Matrix< DATA_TYPE, ROWS, COLS > &m) |
| Outputs a string representation of the given Matrix to the given output stream. More... | |
| template<typename DATA_TYPE> std::ostream & | operator<< (std::ostream &out, const Quat< DATA_TYPE > &q) |
| Outputs a string representation of the given Matrix to the given output stream. More... | |
| template<typename DATA_TYPE> std::ostream & | operator<< (std::ostream &out, const Tri< DATA_TYPE > &t) |
| Outputs a string representation of the given Tri to the given output stream. More... | |
| template<typename DATA_TYPE> std::ostream & | operator<< (std::ostream &out, const Plane< DATA_TYPE > &p) |
| Outputs a string representation of the given Plane to the given output stream. More... | |
| template<typename DATA_TYPE> std::ostream & | operator<< (std::ostream &out, const Sphere< DATA_TYPE > &s) |
| Outputs a string representation of the given Sphere to the given output stream. More... | |
| template<typename DATA_TYPE> std::ostream & | operator<< (std::ostream &out, const AABox< DATA_TYPE > &b) |
| Outputs a string representation of the given AABox to the given output stream. More... | |
Plane Operations | |
| template<class DATA_TYPE> DATA_TYPE | distance (const Plane< DATA_TYPE > &plane, const Point< DATA_TYPE, 3 > &pt) |
| Computes the distance from the plane to the point. More... | |
| template<class DATA_TYPE> PlaneSide | whichSide (const Plane< DATA_TYPE > &plane, const Point< DATA_TYPE, 3 > &pt) |
| Determines which side of the plane the given point lies. More... | |
| template<class DATA_TYPE> PlaneSide | whichSide (const Plane< DATA_TYPE > &plane, const Point< DATA_TYPE, 3 > &pt, const DATA_TYPE &eps) |
| Determines which side of the plane the given point lies with the given epsilon tolerance. More... | |
| template<class DATA_TYPE> DATA_TYPE | findNearestPt (const Plane< DATA_TYPE > &plane, const Point< DATA_TYPE, 3 > &pt, Point< DATA_TYPE, 3 > &result) |
| Finds the point on the plane that is nearest to the given point. More... | |
Plane Comparitors | |
| template<class DATA_TYPE> bool | operator== (const Plane< DATA_TYPE > &p1, const Plane< DATA_TYPE > &p2) |
| Compare two planes to see if they are EXACTLY the same. More... | |
| template<class DATA_TYPE> bool | operator!= (const Plane< DATA_TYPE > &p1, const Plane< DATA_TYPE > &p2) |
| Compare two planes to see if they are not EXACTLY the same. More... | |
| template<class DATA_TYPE> bool | isEqual (const Plane< DATA_TYPE > &p1, const Plane< DATA_TYPE > &p2, const DATA_TYPE &eps) |
| Compare two planes to see if they are the same within the given tolerance. More... | |
Quat Operations | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | mult (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| product of two quaternions (quaternion product) multiplication of quats is much like multiplication of typical complex numbers. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > | operator * (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| product of two quaternions (quaternion product) Does quaternion multiplication. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | operator *= (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q2) |
| quaternion postmult. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | negate (Quat< DATA_TYPE > &result) |
| Vector negation - negate each element in the quaternion vector. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > | operator- (const Quat< DATA_TYPE > &quat) |
| Vector negation - (operator-) return a temporary that is the negative of the given quat. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | mult (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q, DATA_TYPE s) |
| vector scalar multiplication. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > | operator * (const Quat< DATA_TYPE > &q, DATA_TYPE s) |
| vector scalar multiplication. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | operator *= (Quat< DATA_TYPE > &q, DATA_TYPE s) |
| vector scalar multiplication. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | div (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q1, Quat< DATA_TYPE > q2) |
| quotient of two quaternions. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > | operator/ (const Quat< DATA_TYPE > &q1, Quat< DATA_TYPE > q2) |
| quotient of two quaternions. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | operator/= (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q2) |
| quotient of two quaternions. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | div (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q, DATA_TYPE s) |
| quaternion vector scale. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > | operator/ (const Quat< DATA_TYPE > &q, DATA_TYPE s) |
| vector scalar division. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | operator/= (const Quat< DATA_TYPE > &q, DATA_TYPE s) |
| vector scalar division. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | add (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector addition. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > | operator+ (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector addition. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | operator+= (Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector addition. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | sub (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector subtraction. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > | operator- (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector subtraction. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | operator-= (Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector subtraction. More... | |
| template<typename DATA_TYPE> DATA_TYPE | dot (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector dot product between two quaternions. More... | |
| template<typename DATA_TYPE> DATA_TYPE | lengthSquared (const Quat< DATA_TYPE > &q) |
| quaternion "norm" (also known as vector length squared) using this can be faster than using length for some operations... More... | |
| template<typename DATA_TYPE> DATA_TYPE | length (const Quat< DATA_TYPE > &q) |
| quaternion "absolute" (also known as vector length or magnitude) using this can be faster than using length for some operations... More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | normalize (Quat< DATA_TYPE > &result) |
| set self to the normalized quaternion of self. More... | |
| template<typename DATA_TYPE> bool | isNormalized (const Quat< DATA_TYPE > &q1, const DATA_TYPE eps=(DATA_TYPE) 0.0001f) |
| Determines if the given quaternion is normalized within the given tolerance. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | conj (Quat< DATA_TYPE > &result) |
| quaternion complex conjugate. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | invert (Quat< DATA_TYPE > &result) |
| quaternion multiplicative inverse. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | exp (Quat< DATA_TYPE > &result) |
| complex exponentiation. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | log (Quat< DATA_TYPE > &result) |
| complex logarithm. More... | |
| template<typename DATA_TYPE> void | squad (Quat< DATA_TYPE > &result, DATA_TYPE t, const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2, const Quat< DATA_TYPE > &a, const Quat< DATA_TYPE > &b) |
| WARNING: not implemented (do not use). More... | |
| template<typename DATA_TYPE> void | meanTangent (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2, const Quat< DATA_TYPE > &q3) |
| WARNING: not implemented (do not use). More... | |
Quaternion Interpolation | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | slerp (Quat< DATA_TYPE > &result, const DATA_TYPE t, const Quat< DATA_TYPE > &from, const Quat< DATA_TYPE > &to, bool adjustSign=true) |
| spherical linear interpolation between two rotation quaternions. More... | |
| template<typename DATA_TYPE> Quat< DATA_TYPE > & | lerp (Quat< DATA_TYPE > &result, const DATA_TYPE t, const Quat< DATA_TYPE > &from, const Quat< DATA_TYPE > &to) |
| linear interpolation between two quaternions. More... | |
Quat Comparisons | |
| template<typename DATA_TYPE> bool | operator== (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| Compare two quaternions for equality. More... | |
| template<typename DATA_TYPE> bool | operator!= (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| Compare two quaternions for not-equality. More... | |
| template<typename DATA_TYPE> bool | isEqual (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2, DATA_TYPE tol=0.0) |
| Compare two quaternions for equality with tolerance. More... | |
| template<typename DATA_TYPE> bool | isEquiv (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2, DATA_TYPE tol=0.0) |
| Compare two quaternions for geometric equivelence (with tolerance). More... | |
Sphere Comparitors | |
| template<class DATA_TYPE> bool | operator== (const Sphere< DATA_TYPE > &s1, const Sphere< DATA_TYPE > &s2) |
| Compare two spheres to see if they are EXACTLY the same. More... | |
| template<class DATA_TYPE> bool | operator!= (const Sphere< DATA_TYPE > &s1, const Sphere< DATA_TYPE > &s2) |
| Compare two spheres to see if they are not EXACTLY the same. More... | |
| template<class DATA_TYPE> bool | isEqual (const Sphere< DATA_TYPE > &s1, const Sphere< DATA_TYPE > &s2, const DATA_TYPE &eps) |
| Compare two spheres to see if they are the same within the given tolerance. More... | |
Triangle Operations | |
| template<class DATA_TYPE> Point< DATA_TYPE, 3 > | center (const Tri< DATA_TYPE > &tri) |
| Computes the point at the center of the given triangle. More... | |
| template<class DATA_TYPE> Vec< DATA_TYPE, 3 > | normal (const Tri< DATA_TYPE > &tri) |
| Computes the normal for this triangle. More... | |
Triangle Comparitors | |
| template<class DATA_TYPE> bool | operator== (const Tri< DATA_TYPE > &tri1, const Tri< DATA_TYPE > &tri2) |
| Compare two triangles to see if they are EXACTLY the same. More... | |
| template<class DATA_TYPE> bool | operator!= (const Tri< DATA_TYPE > &tri1, const Tri< DATA_TYPE > &tri2) |
| Compare two triangle to see if they are not EXACTLY the same. More... | |
| template<class DATA_TYPE> bool | isEqual (const Tri< DATA_TYPE > &tri1, const Tri< DATA_TYPE > &tri2, const DATA_TYPE &eps) |
| Compare two triangles to see if they are the same within the given tolerance. More... | |
[NOHEADER] | |
| template<class T> void | ignore_unused_variable_warning (const T &) |
Vector/Point Operations | |
| template<typename DATA_TYPE, unsigned SIZE> Vec< DATA_TYPE, SIZE > | operator- (const VecBase< DATA_TYPE, SIZE > &v1) |
| Negates v1. More... | |
| template<class DATA_TYPE, unsigned SIZE> VecBase< DATA_TYPE, SIZE > & | operator+= (VecBase< DATA_TYPE, SIZE > &v1, const VecBase< DATA_TYPE, SIZE > &v2) |
| Adds v2 to v1 and stores the result in v1. More... | |
| template<class DATA_TYPE, unsigned SIZE> VecBase< DATA_TYPE, SIZE > | operator+ (const VecBase< DATA_TYPE, SIZE > &v1, const VecBase< DATA_TYPE, SIZE > &v2) |
| Adds v2 to v1 and returns the result. More... | |
| template<class DATA_TYPE, unsigned SIZE> VecBase< DATA_TYPE, SIZE > & | operator-= (VecBase< DATA_TYPE, SIZE > &v1, const VecBase< DATA_TYPE, SIZE > &v2) |
| Subtracts v2 from v1 and stores the result in v1. More... | |
| template<class DATA_TYPE, unsigned SIZE> Vec< DATA_TYPE, SIZE > | operator- (const VecBase< DATA_TYPE, SIZE > &v1, const VecBase< DATA_TYPE, SIZE > &v2) |
| Subtracts v2 from v1 and returns the result. More... | |
| template<class DATA_TYPE, unsigned SIZE, class SCALAR_TYPE> VecBase< DATA_TYPE, SIZE > & | operator *= (VecBase< DATA_TYPE, SIZE > &v1, const SCALAR_TYPE &scalar) |
| Multiplies v1 by a scalar value and stores the result in v1. More... | |
| template<class DATA_TYPE, unsigned SIZE, class SCALAR_TYPE> VecBase< DATA_TYPE, SIZE > | operator * (const VecBase< DATA_TYPE, SIZE > &v1, const SCALAR_TYPE &scalar) |
| Multiplies v1 by a scalar value and returns the result. More... | |
| template<class DATA_TYPE, unsigned SIZE, class SCALAR_TYPE> VecBase< DATA_TYPE, SIZE > | operator * (const SCALAR_TYPE &scalar, const VecBase< DATA_TYPE, SIZE > &v1) |
| Multiplies v1 by a scalar value and returns the result. More... | |
| template<class DATA_TYPE, unsigned SIZE, class SCALAR_TYPE> VecBase< DATA_TYPE, SIZE > & | operator/= (VecBase< DATA_TYPE, SIZE > &v1, const SCALAR_TYPE &scalar) |
| Divides v1 by a scalar value and stores the result in v1. More... | |
| template<class DATA_TYPE, unsigned SIZE, class SCALAR_TYPE> VecBase< DATA_TYPE, SIZE > | operator/ (const VecBase< DATA_TYPE, SIZE > &v1, const SCALAR_TYPE &scalar) |
| Divides v1 by a scalar value and returns the result. More... | |
Vector Operations | |
| template<class DATA_TYPE, unsigned SIZE> DATA_TYPE | dot (const Vec< DATA_TYPE, SIZE > &v1, const Vec< DATA_TYPE, SIZE > &v2) |
| Computes dot product of v1 and v2 and returns the result. More... | |
| template<class DATA_TYPE, unsigned SIZE> DATA_TYPE | length (const Vec< DATA_TYPE, SIZE > &v1) |
| Computes the length of the given vector. More... | |
| template<class DATA_TYPE, unsigned SIZE> DATA_TYPE | lengthSquared (const Vec< DATA_TYPE, SIZE > &v1) |
| Computes the square of the length of the given vector. More... | |
| template<class DATA_TYPE, unsigned SIZE> DATA_TYPE | normalize (Vec< DATA_TYPE, SIZE > &v1) |
| Normalizes the given vector in place causing it to be of unit length. More... | |
| template<class DATA_TYPE, unsigned SIZE> bool | isNormalized (const Vec< DATA_TYPE, SIZE > &v1, const DATA_TYPE eps=(DATA_TYPE) 0.0001) |
| Determines if the given vector is normalized within the given tolerance. More... | |
| template<class DATA_TYPE> Vec< DATA_TYPE, 3 > | cross (const Vec< DATA_TYPE, 3 > &v1, const Vec< DATA_TYPE, 3 > &v2) |
| Computes the cross product between v1 and v2 and returns the result. More... | |
| template<class DATA_TYPE> Vec< DATA_TYPE, 3 > & | cross (Vec< DATA_TYPE, 3 > &result, const Vec< DATA_TYPE, 3 > &v1, const Vec< DATA_TYPE, 3 > &v2) |
| Computes the cross product between v1 and v2 and stores the result in result. More... | |
| template<class DATA_TYPE, unsigned SIZE> VecBase< DATA_TYPE, SIZE > & | reflect (VecBase< DATA_TYPE, SIZE > &result, const VecBase< DATA_TYPE, SIZE > &vec, const Vec< DATA_TYPE, SIZE > &normal) |
| Reflect a vector about a normal. More... | |
Vector Interpolation | |
| template<typename DATA_TYPE, unsigned SIZE> VecBase< DATA_TYPE, SIZE > & | lerp (VecBase< DATA_TYPE, SIZE > &result, const DATA_TYPE &lerpVal, const VecBase< DATA_TYPE, SIZE > &from, const VecBase< DATA_TYPE, SIZE > &to) |
| Linearly interpolates between to vectors. More... | |
Vector Comparitors | |
| template<class DATA_TYPE, unsigned SIZE> bool | operator== (const VecBase< DATA_TYPE, SIZE > &v1, const VecBase< DATA_TYPE, SIZE > &v2) |
| Compares v1 and v2 to see if they are exactly the same. More... | |
| template<class DATA_TYPE, unsigned SIZE> bool | operator!= (const VecBase< DATA_TYPE, SIZE > &v1, const VecBase< DATA_TYPE, SIZE > &v2) |
| Compares v1 and v2 to see if they are NOT exactly the same with zero tolerance. More... | |
| template<class DATA_TYPE, unsigned SIZE> bool | isEqual (const VecBase< DATA_TYPE, SIZE > &v1, const VecBase< DATA_TYPE, SIZE > &v2, const DATA_TYPE &eps) |
| Compares v1 and v2 to see if they are the same within the given epsilon tolerance. More... | |
Vector Transform (Quaternion) | |
| template<typename DATA_TYPE> VecBase< DATA_TYPE, 3 > & | xform (VecBase< DATA_TYPE, 3 > &result, const Quat< DATA_TYPE > &rot, const VecBase< DATA_TYPE, 3 > &vector) |
| transform a vector by a rotation quaternion. More... | |
| template<typename DATA_TYPE> VecBase< DATA_TYPE, 3 > | operator * (const Quat< DATA_TYPE > &rot, const VecBase< DATA_TYPE, 3 > &vector) |
| transform a vector by a rotation quaternion. More... | |
| template<typename DATA_TYPE> VecBase< DATA_TYPE, 3 > | operator *= (VecBase< DATA_TYPE, 3 > &vector, const Quat< DATA_TYPE > &rot) |
| transform a vector by a rotation quaternion. More... | |
Vector Transform (Matrix) | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Vec< DATA_TYPE, COLS > & | 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. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Vec< DATA_TYPE, COLS > | operator * (const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Vec< DATA_TYPE, COLS > &vector) |
| matrix * vector xform. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS, unsigned VEC_SIZE> Vec< DATA_TYPE, VEC_SIZE > & | 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). More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS, unsigned COLS_MINUS_ONE> Vec< DATA_TYPE, COLS_MINUS_ONE > | 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). More... | |
Point Transform (Matrix) | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Point< DATA_TYPE, COLS > & | xform (Point< DATA_TYPE, COLS > &result, const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Point< DATA_TYPE, COLS > &point) |
| transform point by a matrix. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Point< DATA_TYPE, COLS > | operator * (const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Point< DATA_TYPE, COLS > &point) |
| matrix * point. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS, unsigned PNT_SIZE> Point< DATA_TYPE, PNT_SIZE > & | 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. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS, unsigned COLS_MINUS_ONE> Point< DATA_TYPE, COLS_MINUS_ONE > | operator * (const Matrix< DATA_TYPE, ROWS, COLS > &matrix, const Point< DATA_TYPE, COLS_MINUS_ONE > &point) |
| matrix * partially specified point. More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Point< DATA_TYPE, COLS > | 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] ). More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS> Point< DATA_TYPE, COLS > | 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] ). More... | |
| template<typename DATA_TYPE, unsigned ROWS, unsigned COLS, unsigned COLS_MINUS_ONE> Point< DATA_TYPE, COLS_MINUS_ONE > | 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] ). More... | |
Constants | |
| const float | GMTL_EPSILON = 1.0e-6f |
| const float | GMTL_MAT_EQUAL_EPSILON = 0.001f |
| const float | GMTL_VEC_EQUAL_EPSILON = 0.0001f |
Typedefs | |
| typedef AABox< float > | AABoxf |
| typedef AABox< double > | AABoxd |
| typedef AxisAngle< float > | AxisAnglef |
| typedef AxisAngle< double > | AxisAngled |
| typedef Coord< Vec3d, EulerAngleXYZd > | CoordVec3EulerAngleXYZd |
| typedef Coord< Vec3f, EulerAngleXYZf > | CoordVec3EulerAngleXYZf |
| typedef Coord< Vec4d, EulerAngleXYZd > | CoordVec4EulerAngleXYZd |
| typedef Coord< Vec4f, EulerAngleXYZf > | CoordVec4EulerAngleXYZf |
| typedef Coord< Vec3d, EulerAngleZYXd > | CoordVec3EulerAngleZYXd |
| typedef Coord< Vec3f, EulerAngleZYXf > | CoordVec3EulerAngleZYXf |
| typedef Coord< Vec4d, EulerAngleZYXd > | CoordVec4EulerAngleZYXd |
| typedef Coord< Vec4f, EulerAngleZYXf > | CoordVec4EulerAngleZYXf |
| typedef Coord< Vec3d, EulerAngleZXYd > | CoordVec3EulerAngleZXYd |
| typedef Coord< Vec3f, EulerAngleZXYf > | CoordVec3EulerAngleZXYf |
| typedef Coord< Vec4d, EulerAngleZXYd > | CoordVec4EulerAngleZXYd |
| typedef Coord< Vec4f, EulerAngleZXYf > | CoordVec4EulerAngleZXYf |
| typedef Coord< Vec3d, AxisAngled > | CoordVec3AxisAngled |
| typedef Coord< Vec3f, AxisAnglef > | CoordVec3AxisAnglef |
| typedef Coord< Vec4d, AxisAngled > | CoordVec4AxisAngled |
| typedef Coord< Vec4f, AxisAnglef > | CoordVec4AxisAnglef |
| typedef Coord< Vec3f, EulerAngleXYZf > | Coord3fXYZ |
| 3 elt types. More... | |
| typedef Coord< Vec3f, EulerAngleZYXf > | Coord3fZYX |
| typedef Coord< Vec3f, EulerAngleZXYf > | Coord3fZXY |
| typedef Coord< Vec3d, EulerAngleXYZd > | Coord3dXYZ |
| typedef Coord< Vec3d, EulerAngleZYXd > | Coord3dZYX |
| typedef Coord< Vec3d, EulerAngleZXYd > | Coord3dZXY |
| typedef Coord< Vec4f, EulerAngleXYZf > | Coord4fXYZ |
| 4 elt types. More... | |
| typedef Coord< Vec4f, EulerAngleZYXf > | Coord4fZYX |
| typedef Coord< Vec4f, EulerAngleZXYf > | Coord4fZXY |
| typedef Coord< Vec4d, EulerAngleXYZd > | Coord4dXYZ |
| typedef Coord< Vec4d, EulerAngleZYXd > | Coord4dZYX |
| typedef Coord< Vec4d, EulerAngleZXYd > | |