MPMA Framework 0.4
Classes | Namespaces | Functions
Geo.h File Reference

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

Detailed Description

Vector and matrix primitives and operations.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends