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 > | Coord4dZXY |
typedef Coord< Vec3f, Quatf > | Coord3fQuat |
| 3 elt types. More...
|
typedef Coord< Vec3d, Quatd > | Coord3dQuat |
typedef Coord< Vec4f, Quatf > | Coord4fQuat |
| 4 elt types. More...
|
typedef Coord< Vec4d, Quatd > | Coord4dQuat |
typedef Coord< Vec3f, AxisAnglef > | Coord3fAxisAngle |
| 3 elt types. More...
|
typedef Coord< Vec3d, AxisAngled > | Coord3dAxisAngle |
typedef Coord< Vec4f, AxisAnglef > | Coord4fAxisAngle |
| 4 elt types. More...
|
typedef Coord< Vec4d, AxisAngled > | Coord4dAxisAngle |
typedef EulerAngle< float,
XYZ > | EulerAngleXYZf |
typedef EulerAngle< double,
XYZ > | EulerAngleXYZd |
typedef EulerAngle< float,
ZYX > | EulerAngleZYXf |
typedef EulerAngle< double,
ZYX > | EulerAngleZYXd |
typedef EulerAngle< float,
ZXY > | EulerAngleZXYf |
typedef EulerAngle< double,
ZXY > | EulerAngleZXYd |
typedef LineSeg< float > | LineSegf |
typedef LineSeg< double > | LineSegd |
typedef Matrix< float, 2, 2 > | Matrix22f |
typedef Matrix< double, 2, 2 > | Matrix22d |
typedef Matrix< float, 2, 3 > | Matrix23f |
typedef Matrix< double, 2, 3 > | Matrix23d |
typedef Matrix< float, 3, 3 > | Matrix33f |
typedef Matrix< double, 3, 3 > | Matrix33d |
typedef Matrix< float, 3, 4 > | Matrix34f |
typedef Matrix< double, 3, 4 > | Matrix34d |
typedef Matrix< float, 4, 4 > | Matrix44f |
typedef Matrix< double, 4, 4 > | Matrix44d |
typedef Plane< float > | Planef |
typedef Plane< double > | Planed |
typedef Point< int, 2 > | Point2i |
typedef Point< float, 2 > | Point2f |
typedef Point< double, 2 > | Point2d |
typedef Point< int, 3 > | Point3i |
typedef Point< float, 3 > | Point3f |
typedef Point< double, 3 > | Point3d |
typedef Point< int, 4 > | Point4i |
typedef Point< float, 4 > | Point4f |
typedef Point< double, 4 > | Point4d |
typedef Quat< float > | Quatf |
typedef Quat< double > | Quatd |
typedef Ray< float > | Rayf |
typedef Ray< double > | Rayd |
typedef Sphere< float > | Spheref |
typedef Sphere< double > | Sphered |
typedef Tri< float > | Trif |
typedef Tri< double > | Trid |
typedef Tri< int > | Trii |
typedef Vec< int, 2 > | Vec2i |
typedef Vec< float, 2 > | Vec2f |
typedef Vec< double, 2 > | Vec2d |
typedef Vec< int, 3 > | Vec3i |
typedef Vec< float, 3 > | Vec3f |
typedef Vec< double, 3 > | Vec3d |
typedef Vec< int, 4 > | Vec4i |
typedef Vec< float, 4 > | Vec4f |
typedef Vec< double, 4 > | Vec4d |
Enumerations |
enum | VectorIndex { Xelt = 0,
Yelt = 1,
Zelt = 2,
Welt = 3
} |
| use the values in this enum to index vector data types (such as Vec, Point, Quat). More...
|
enum | PlaneSide { ON_PLANE,
POS_SIDE,
NEG_SIDE
} |
| Used to describe where a point lies in relationship to a plane. More...
|
Functions |
const AxisAngle< float > | AXISANGLE_IDENTITYF (0.0f, 1.0f, 0.0f, 0.0f) |
const AxisAngle< double > | AXISANGLE_IDENTITYD (0.0, 1.0, 0.0, 0.0) |
template<class DATA_TYPE> bool | isInVolume (const Sphere< DATA_TYPE > &container, const Point< DATA_TYPE, 3 > &pt) |
| Tests if the given point is inside or on the surface of the given spherical volume. More...
|
template<class DATA_TYPE> bool | isInVolume (const Sphere< DATA_TYPE > &container, const Sphere< DATA_TYPE > &sphere) |
| Tests if the given sphere is completely inside or on the surface of the given spherical volume. More...
|
template<class DATA_TYPE> void | extendVolume (Sphere< DATA_TYPE > &container, const Point< DATA_TYPE, 3 > &pt) |
| Modifies the existing sphere to tightly enclose itself and the given point. More...
|
template<class DATA_TYPE> void | extendVolume (Sphere< DATA_TYPE > &container, const Sphere< DATA_TYPE > &sphere) |
| Modifies the container to tightly enclose itself and the given sphere. More...
|
template<class DATA_TYPE> void | makeVolume (Sphere< DATA_TYPE > &container, const std::vector< Point< DATA_TYPE, 3 > > &pts) |
| Modifies the given sphere to tightly enclose all points in the given std::vector. More...
|
template<class DATA_TYPE> bool | isOnVolume (const Sphere< DATA_TYPE > &container, const Point< DATA_TYPE, 3 > &pt) |
| Tests if the given point is on the surface of the container with zero tolerance. More...
|
template<class DATA_TYPE> bool | isOnVolume (const Sphere< DATA_TYPE > &container, const Point< DATA_TYPE, 3 > &pt, const DATA_TYPE &tol) |
| Tests of the given point is on the surface of the container with the given tolerance. More...
|
template<class DATA_TYPE> bool | isInVolume (const AABox< DATA_TYPE > &container, const Point< DATA_TYPE, 3 > &pt) |
| Tests if the given point is inside or on the surface of the given AABox volume. More...
|
template<class DATA_TYPE> bool | isInVolume (const AABox< DATA_TYPE > &container, const AABox< DATA_TYPE > &box) |
| Tests if the given AABox is completely inside or on the surface of the given AABox container. More...
|
template<class DATA_TYPE> void | extendVolume (AABox< DATA_TYPE > &container, const Point< DATA_TYPE, 3 > &pt) |
| Modifies the existing AABox to tightly enclose itself and the given point. More...
|
template<class DATA_TYPE> void | extendVolume (AABox< DATA_TYPE > &container, const AABox< DATA_TYPE > &box) |
| Modifies the container to tightly enclose itself and the given AABox. More...
|
template<class DATA_TYPE> void | makeVolume (AABox< DATA_TYPE > &box, const Sphere< DATA_TYPE > &sph) |
| Creates an AABox that tightly encloses the given Sphere. More...
|
const EulerAngle< float, XYZ > | EULERANGLE_IDENTITY_XYZF (0.0f, 0.0f, 0.0f) |
const EulerAngle< double,
XYZ > | EULERANGLE_IDENTITY_XYZD (0.0, 0.0, 0.0) |
const EulerAngle< float, ZYX > | EULERANGLE_IDENTITY_ZYXF (0.0f, 0.0f, 0.0f) |
const EulerAngle< double,
ZYX > | EULERANGLE_IDENTITY_ZYXD (0.0, 0.0, 0.0) |
const EulerAngle< float, ZXY > | EULERANGLE_IDENTITY_ZXYF (0.0f, 0.0f, 0.0f) |
const EulerAngle< double,
ZXY > | EULERANGLE_IDENTITY_ZXYD (0.0, 0.0, 0.0) |
Matrix44f & | set (Matrix44f &mat, const osg::Matrix &osg_mat) |
| Convert an opensg matrix to a gmtl::Matrix. More...
|
osg::Matrix & | set (osg::Matrix &osg_mat, const Matrix44f &mat) |
| Convert a GMTL matrix to a OpenSG matrix. More...
|
void | GaussPointsFit (int iQuantity, const Point3 *akPoint, Point3 &rkCenter, Vec3 akAxis[3], float afExtent[3]) |
bool | GaussPointsFit (int iQuantity, const Vec3 *akPoint, const bool *abValid, Vec3 &rkCenter, Vec3 akAxis[3], float afExtent[3]) |
template<class DATA_TYPE> bool | intersect (const AABox< DATA_TYPE > &box1, const AABox< DATA_TYPE > &box2) |
| Tests if the given AABoxes intersect with each other. More...
|
template<class DATA_TYPE> bool | intersect (const AABox< DATA_TYPE > &box, const Point< DATA_TYPE, 3 > &point) |
| Tests if the given AABox and point intersect with each other. More...
|
template<class DATA_TYPE> bool | intersect (const AABox< DATA_TYPE > &box1, const Vec< DATA_TYPE, 3 > &path1, const AABox< DATA_TYPE > &box2, const Vec< DATA_TYPE, 3 > &path2, DATA_TYPE &firstContact, DATA_TYPE &secondContact) |
| Tests if the given AABoxes intersect if moved along the given paths. More...
|
template<class DATA_TYPE> bool | intersect (const Sphere< DATA_TYPE > &sph1, const Vec< DATA_TYPE, 3 > &path1, const Sphere< DATA_TYPE > &sph2, const Vec< DATA_TYPE, 3 > &path2, DATA_TYPE &firstContact, DATA_TYPE &secondContact) |
| Tests if the given Spheres intersect if moved along the given paths. More...
|
template<class DATA_TYPE> bool | intersect (const AABox< DATA_TYPE > &box, const Sphere< DATA_TYPE > &sph) |
| Tests if the given AABox and Sphere intersect with each other. More...
|
template<class DATA_TYPE> bool | intersect (const Sphere< DATA_TYPE > &sph, const AABox< DATA_TYPE > &box) |
| Tests if the given AABox and Sphere intersect with each other. More...
|
template<class DATA_TYPE> bool | intersect (const Sphere< DATA_TYPE > &sphere, const Point< DATA_TYPE, 3 > &point) |
| intersect point/sphere. More...
|
template<typename T> bool | intersect (const Sphere< T > &sphere, const Ray< T > &ray, int &numhits, float &t0, float &t1) |
| intersect ray/sphere. More...
|
template<typename T> bool | intersect (const Sphere< T > &sphere, const LineSeg< T > &lineseg, int &numhits, float &t0, float &t1) |
template<class DATA_TYPE> bool | intersect (const Plane< DATA_TYPE > &plane, const Ray< DATA_TYPE > &ray, DATA_TYPE &t) |
| Tests if the given plane and ray intersect with each other. More...
|
template<class DATA_TYPE> bool | intersect (const Tri< DATA_TYPE > &tri, const Ray< DATA_TYPE > &ray, float &u, float &v, float &t) |
| Tests if the given triangle and ray intersect with each other. More...
|
template<class DATA_TYPE> bool | intersect (const Tri< DATA_TYPE > &tri, const LineSeg< DATA_TYPE > &lineseg, float &u, float &v, float &t) |
| Tests if the given triangle and line segment intersect with each other. More...
|
template<class DATA_TYPE> Point< DATA_TYPE, 3 > | findNearestPt (const LineSeg< DATA_TYPE > &lineseg, const Point< DATA_TYPE, 3 > &pt) |
| Finds the closest point on the line segment to a given point. More...
|
template<class DATA_TYPE> DATA_TYPE | distance (const LineSeg< DATA_TYPE > &lineseg, const Point< DATA_TYPE, 3 > &pt) |
| Computes the shortest distance from the line segment to the given point. More...
|
template<class DATA_TYPE> DATA_TYPE | distanceSquared (const LineSeg< DATA_TYPE > &lineseg, const Point< DATA_TYPE, 3 > &pt) |
| Computes the shortest distance from the line segment to the given point. More...
|
template<class DATA_TYPE> bool | operator== (const LineSeg< DATA_TYPE > &ls1, const LineSeg< DATA_TYPE > &ls2) |
| Compare two line segments to see if they are EXACTLY the same. More...
|
template<class DATA_TYPE> bool | operator!= (const LineSeg< DATA_TYPE > &ls1, const LineSeg< DATA_TYPE > &ls2) |
| Compare two line segments to see if they are not EXACTLY the same. More...
|
template<class DATA_TYPE> bool | isEqual (const LineSeg< DATA_TYPE > &ls1, const LineSeg< DATA_TYPE > &ls2, const DATA_TYPE &eps) |
| Compare two line segments to see if the are the same within the given tolerance. More...
|
const Quat< float > | QUAT_MULT_IDENTITYF (0.0f, 0.0f, 0.0f, 1.0f) |
const Quat< float > | QUAT_ADD_IDENTITYF (0.0f, 0.0f, 0.0f, 0.0f) |
const Quat< float > | QUAT_IDENTITYF (QUAT_MULT_IDENTITYF) |
const Quat< double > | QUAT_MULT_IDENTITYD (0.0, 0.0, 0.0, 1.0) |
const Quat< double > | QUAT_ADD_IDENTITYD (0.0, 0.0, 0.0, 0.0) |
const Quat< double > | QUAT_IDENTITYD (QUAT_MULT_IDENTITYD) |
const char * | getVersion () |
Variables |
const Matrix22f | MAT_IDENTITY22F = Matrix22f() |
| 32bit floating point 2x2 identity matrix. More...
|
const Matrix22d | MAT_IDENTITY22D = Matrix22d() |
| 64bit floating point 2x2 identity matrix. More...
|
const Matrix23f | MAT_IDENTITY23F = Matrix23f() |
| 32bit floating point 2x2 identity matrix. More...
|
const Matrix23d | MAT_IDENTITY23D = Matrix23d() |
| 64bit floating point 2x2 identity matrix. More...
|
const Matrix33f | MAT_IDENTITY33F = Matrix33f() |
| 32bit floating point 3x3 identity matrix. More...
|
const Matrix33d | MAT_IDENTITY33D = Matrix33d() |
| 64bit floating point 3x3 identity matrix. More...
|
const Matrix34f | MAT_IDENTITY34F = Matrix34f() |
| 32bit floating point 3x4 identity matrix. More...
|
const Matrix34d | MAT_IDENTITY34D = Matrix34d() |
| 64bit floating point 3x4 identity matrix. More...
|
const Matrix44f | MAT_IDENTITY44F = Matrix44f() |
| 32bit floating point 4x4 identity matrix. More...
|
const Matrix44d | MAT_IDENTITY44D = Matrix44d() |
| 64bit floating point 4x4 identity matrix. More...
|