Geometry library. More...
Namespaces | |
| namespace | INTERSECT |
Intersection detection. | |
| namespace | RESOLVE |
Collision resolution. | |
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... | |
| struct | Line |
| A line or ray. More... | |
| struct | Plane |
| A plane. More... | |
| struct | Sphere |
| A sphere. More... | |
| struct | AARectoid |
| Axis-aligned 3d rectangle. More... | |
| struct | XAlignedUnboundedCylinder |
| A an unbounded cylendar aligned along the x axis. More... | |
| struct | YAlignedEllipsoid |
| An ellipsoid whose stretch is aligned along the y axis. More... | |
| struct | Line2D |
| A line or ray. More... | |
| struct | Circle |
| a circle More... | |
| struct | AxisAlignedEllipse |
| an ellipse aligned to the x and y axis 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 | |
| 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 | |
| template<typename VecType > | |
| VecType::GreaterMatrixType | MatScale (const VecType &scale) |
| builds a scaling 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 | |
| struct Vector3 | VecCross (const struct Vector3 &v1, const struct Vector3 &v2) |
| cross product | |
| template<typename T > | |
| 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 > | |
| 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. | |
Geometry library.
1.7.1