Geo.h File Reference

Vector and matrix primitives and operations. More...

#include <cmath>
#include <string>
#include "../base/Types.h"
#include "GeoBases.h"
#include "Geo.cpp"

Include dependency graph for Geo.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  GEO

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::Matrix4
 A 4x4 matrix. More...
struct  GEO::Matrix3
 A 3x3 matrix. More...
struct  GEO::Matrix2
 A 2x2 matrix. More...

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 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
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.


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