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


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 VecType> | |
| float | GEO::VecDot (const VecType &v1, const VecType &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 VecType> | |
| float | GEO::VecAngleBetween (const VecType &l1, const VecType &l2) |
| angle between vectors | |
| template<typename VecType> | |
| VecType | GEO::VecReflect (const VecType &vec, const VecType &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 left-handed perspective projection transform | |
| 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 | |
1.5.4