GEO Namespace Reference

Geometry library. More...


Classes

struct  Vector4
 A 4d vector or point. More...
struct  Vector3
 A 3d vector or point. More...
struct  Vector2
 A 2d vector or point. More...
struct  Matrix4
 A 4x4 matrix. More...
struct  Matrix3
 A 3x3 matrix. More...
struct  Matrix2
 A 2x2 matrix. More...
struct  VectorN
 Base type of all vectors. More...
struct  MatrixN
 Base type of all square matrices (row-based). More...

Functions

float MatDeterminant (const Matrix4 &mat)
 finds the determinant of a matrix
float MatDeterminant (const Matrix3 &mat)
 finds the determinant of a matrix
Matrix4 MatProjectionFoV (float fov=PI/2, float aspectYdivX=1.0f, float nearZ=1.0f, float farZ=1000.0f)
 constructs a perspective projection transform
Matrix4 MatProjectionOrtho (float left, float right, float bottom, float top, float nearZ=1.0f, float farZ=1000.0f)
 constructs a parallel projection transform
Matrix4 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
bool NearEqual (float c0, float c1, float tolerance=FLOAT_TOLERANCE)
 compare elements for "near equal"
template<typename VecType>
bool NearEqual (const VecType &v1, const VecType &v2, float tolerance=FLOAT_TOLERANCE)
 compare elements for "near equal"
template<typename VecType>
bool NearEqual (const VecType &v, float c, float tolerance=FLOAT_TOLERANCE)
 compare elements for "near equal"
bool IsFinite (float c)
 return true if a float is valid
template<typename VecType>
bool IsFinite (VecType &v)
 returns true if all elements are valid floats
template<typename VecType1, typename VecType2>
float VecDot (const VecType1 &v1, const VecType2 &v2)
 dot product
struct Vector3 VecCross (const struct Vector3 &v1, const struct Vector3 &v2)
 cross product
template<typename VecType>
VecType VecNormal (const VecType &v)
 get the normalized version of a vector
template<typename VecType>
void VecNormalize (VecType &v)
 normalize a vector
template<typename VecType1, typename VecType2>
float VecAngleBetween (const VecType1 &l1, const VecType2 &l2)
 angle between vectors
template<typename VecType1, typename VecType2>
float VecDistance (const VecType1 &l1, const VecType2 &l2)
 distance between two points
template<typename VecType1, typename VecType2>
VecType1 VecReflect (const VecType1 &vec, const VecType2 &norm)
 reflect a vector off of a normal
template<typename MatType>
MatType MatMul (const MatType &m1, const MatType &m2)
 multiply two matrices
float MatDeterminant (const Matrix2 &mat)
 finds the determinant of a matrix
template<typename MatType>
MatType MatTranspose (const MatType &mat)
 finds the transpose of a matrix
template<typename MatType>
MatType MatInverse (const MatType &mat)
 finds the inverse of a matrix (undefined behaviour if inverse does not exist)
Matrix3 MatRotateX (float angle)
 creates a matrix that rotates around the x axis
Matrix3 MatRotateY (float angle)
 creates a matrix that rotates around the y axis
Matrix3 MatRotateZ (float angle)
 creates a matrix that rotates around the z axis
Matrix3 MatRotateAxis (const Vector3 &axis, float angle)
 creates a matrix that rotates around an axis
template<typename VecType>
VecType::GreaterMatrixType MatTranslate (const VecType &offset)
 builds a translation matrix
Matrix4 MatProjectionOrtho (float nearZ=1.0f, float farZ=1000.0f)
 constructs a parallel projection transform (from -1 to 1 on the x and y axis)
template<typename VecType>
VecType TransformVector (const typename VecType::MatrixType &m, const VecType &v)
 multiply a matrix by a vector
template<typename T>
Lerp (const T &e0, const T &e1, float w)
 interpolates between two entities, with w as the interpolator between 0 and 1
template<typename T>
Bilerp (const T &e00, const T &e10, const T &e01, const T &e11, float x, float y)
 bilinearly interpolates between four entities (with x and y from 0 to 1)

Variables

const float PI2 = 6.2831853071f
 2 PI
const float PI = 3.14159265f
 PI.
const float FLOAT_TOLERANCE = 0.00001f
 Acceptable range of closeness to count floats as equal.


Detailed Description

Geometry library.

Generated on Sat Aug 9 15:05:10 2008 for MPMA Framework by  doxygen 1.5.6