| 
    MPMA Framework 0.4 
   | 
 
Vector and matrix primitives and operations. More...
Go to the source code of this file.
Classes | |
| struct | GEO::Vector4 | 
| A 4d vector or point.  More... | |
| struct | GEO::Vector3 | 
| A 3d vector or point.  More... | |
| struct | GEO::Vector2 | 
| A 2d vector or point.  More... | |
| struct | GEO::Vector1 | 
| A 1d value.  More... | |
| struct | GEO::Matrix4 | 
| A 4x4 matrix.  More... | |
| struct | GEO::Matrix3 | 
| A 3x3 matrix.  More... | |
| struct | GEO::Matrix2 | 
| A 2x2 matrix.  More... | |
Namespaces | |
| namespace | GEO | 
Geometry library.  | |
Functions | |
| bool | GEO::NearEqual (float c0, float c1, float tolerance=FLOAT_TOLERANCE) | 
| compare elements for "near equal"  | |
| template<typename VecType > | |
| bool | GEO::NearEqual (const VecType &v1, const VecType &v2, float tolerance=FLOAT_TOLERANCE) | 
| compare elements for "near equal"  | |
| template<typename VecType > | |
| bool | GEO::NearEqual (const VecType &v, float c, float tolerance=FLOAT_TOLERANCE) | 
| compare elements for "near equal"  | |
| bool | GEO::IsFinite (float c) | 
| return true if a float is valid  | |
| template<typename VecType > | |
| bool | GEO::IsFinite (VecType &v) | 
| returns true if all elements are valid floats  | |
| template<typename VecType > | |
| VecType | GEO::Clamp (const VecType &val, const VecType &min, const VecType &max) | 
| component-wise clamps val between min and max and returns the result  | |
| float | GEO::Clamp (const float &val, const float &min, const float &max) | 
| clamps val between min and max and returns the result  | |
| template<typename VecType1 , typename VecType2 > | |
| float | GEO::VecDot (const VecType1 &v1, const VecType2 &v2) | 
| dot product  | |
| struct Vector3 | GEO::VecCross (const struct Vector3 &v1, const struct Vector3 &v2) | 
| cross product  | |
| template<typename VecType > | |
| VecType | GEO::VecNormal (const VecType &v) | 
| get the normalized version of a vector  | |
| template<typename VecType > | |
| void | GEO::VecNormalize (VecType &v) | 
| normalize a vector  | |
| template<typename VecType1 , typename VecType2 > | |
| float | GEO::VecAngleBetween (const VecType1 &l1, const VecType2 &l2) | 
| angle between vectors  | |
| template<typename VecType1 , typename VecType2 > | |
| float | GEO::VecDistance (const VecType1 &l1, const VecType2 &l2) | 
| distance between two points  | |
| template<typename VecType1 , typename VecType2 > | |
| VecType1 | GEO::VecReflect (const VecType1 &vec, const VecType2 &norm) | 
| reflect a vector off of a normal  | |
| template<typename MatType > | |
| MatType | GEO::MatMul (const MatType &m1, const MatType &m2) | 
| multiply two matrices  | |
| float | GEO::MatDeterminant (const Matrix4 &mat) | 
| finds the determinant of a matrix  | |
| float | GEO::MatDeterminant (const Matrix3 &mat) | 
| finds the determinant of a matrix  | |
| float | GEO::MatDeterminant (const Matrix2 &mat) | 
| finds the determinant of a matrix  | |
| template<typename MatType > | |
| MatType | GEO::MatTranspose (const MatType &mat) | 
| finds the transpose of a matrix  | |
| template<typename MatType > | |
| MatType | GEO::MatInverse (const MatType &mat) | 
| finds the inverse of a matrix (undefined behaviour if inverse does not exist)  | |
| Matrix3 | GEO::MatRotateX (float angle) | 
| creates a matrix that rotates around the x axis  | |
| Matrix3 | GEO::MatRotateY (float angle) | 
| creates a matrix that rotates around the y axis  | |
| Matrix3 | GEO::MatRotateZ (float angle) | 
| creates a matrix that rotates around the z axis  | |
| Matrix3 | GEO::MatRotateAxis (const Vector3 &axis, float angle) | 
| creates a matrix that rotates around an axis  | |
| template<typename VecType > | |
| VecType::GreaterMatrixType | GEO::MatTranslate (const VecType &offset) | 
| builds a translation matrix  | |
| template<typename VecType > | |
| VecType::GreaterMatrixType | GEO::MatScale (const VecType &scale) | 
| builds a scaling matrix  | |
| Matrix4 | GEO::MatProjectionFoV (float fov=PI/2, float aspectYdivX=1.0f, float nearZ=1.0f, float farZ=1000.0f) | 
| constructs a perspective projection transform  | |
| Matrix4 | GEO::MatProjectionOrtho (float left, float right, float bottom, float top, float nearZ=1.0f, float farZ=1000.0f) | 
| constructs a parallel projection transform  | |
| Matrix4 | GEO::MatProjectionOrtho (float nearZ=1.0f, float farZ=1000.0f) | 
| constructs a parallel projection transform (from -1 to 1 on the x and y axis)  | |
| Matrix4 | GEO::MatViewLookAt (const Vector3 &pos, const Vector3 &tar, const Vector3 &vagueUp=Vector3(0, 0, 1), bool flipVert=false, bool flipHorz=false) | 
| constructs a look-at-based left-handed view transformation  | |
| template<typename VecType > | |
| VecType | GEO::TransformVector (const typename VecType::MatrixType &m, const VecType &v) | 
| multiply a matrix by a vector  | |
Vector and matrix primitives and operations.
 1.7.4