Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | Namespace Members | Class Members | Related Pages

XEngineMath Library


Detailed Description

This is the mathematic library component of XEngine, which contains various helpful maths classes for handling vectors, matrices and quaternions. Also various geometric objects such as points, lines, rays, or segments are available.

A lot of the distance routines in the XEngineMath library are modified routines from David H. Eberly's Wild Magic Engine which was distributed together with his excellent book "3D Eninge Design" and on his web site http://www.wild-magic.com. The source code parts used in XEngineMath are from the Free Magic part of the engine, and are usually heavily modified or completely rewritten.

Conventions:

Warning:
XEngineMath is an ever-growing library that gets extended from time to time. Also some functionality might not be fully implemented yet, which is usually indicated by a wxASSERT_MSG(false, wxT("Not yet implemented")). Contributions are more than welcome.


Namespaces

namespace  XEngine::Math::Curves
 The curves namespace.
namespace  XEngine::Math::DistanceAlgorithms
 Distance calculation algorithm functors/functor templates.
namespace  XEngine::Math
 The Math namespace that contains all mathematical functions and classes.

Classes

class  BezierCurve
 The Bézier curve class. More...
class  CardinalControlPoint
 The control point class for cardinal splines. More...
class  CardinalSpline
 The cardinale spline class. More...
class  CatmullRomSpline
 The Catmull-Rom spline class. More...
class  ClampedCubicSpline
 The clamped cubic spline class. More...
class  ControlPointCurve
 The base class for curves that use control points. More...
class  CubicSpline
 The base class for cubic splines. More...
class  Curve
 The abstract base class for all curves. More...
class  Curve2
 The abstract base class for all 2-dimensional planar curves. More...
class  Curve3
 The abstract base class for all 3-dimensional space curves. More...
class  GeneralHermiteControlPoint
 The control point class for general Hermite splines. More...
class  GeneralHermiteSpline
 The general Hermite spline class. More...
class  HermiteSpline
 The base class for cubic Hermite splines. More...
class  KochanekBartelsControlPoint
 The control point class for Kochanek-Bartels (TCB) splines. More...
class  KochanekBartelsSpline
 The Kochanek-Bartels (TCB) spline class. More...
class  LinearSegmentedCurve
 The linear segmented curve class. More...
class  NaturalCubicSpline
 The natural cubic spline class. More...
class  ControlPoint
 The control point class for segmented curves. More...
class  SegmentedCurve
 The base class for segmented curves. More...
class  Area
 An abstract base class for all kinds of finite areas (like triangles, rectangles...). More...
class  AxisAlignedBox
 An axis-aligned box class. More...
struct  ComputeFactorial
 A metafunction to compute the factorial. More...
struct  ComputeBinomialCoefficient
 A metafunction to compute the binomial coefficient. More...
class  PascalsTriangle
 A class representing Pascal's triangle. More...
class  BoundingVolume
 An abstract base class for bounding volumes. More...
class  Box
 An oriented box class. More...
struct  DistancePointToPoint
 Returns the distance between the two given points. More...
struct  DistancePointToLine
 Returns the distance of the given point to the given line. More...
struct  DistancePointToRay
 Returns the distance of the given point to the given ray. More...
struct  DistancePointToSegment
 Returns the distance of the given point to the given segment. More...
struct  DistanceLineToLine
 Returns the distance of two given lines. More...
struct  DistanceLineToRay
 Returns the distance of the given line to the given ray. More...
struct  DistanceLineToSegment
 Returns the distance of the given line to the given segment. More...
struct  DistanceRayToRay
 Returns the distance between the two given rays. More...
struct  DistanceRayToSegment
 Returns the distance between the given ray and the given segment. More...
struct  DistanceSegmentToSegment
 Returns the distance between the two given line segments. More...
struct  DistancePointToTriangle
 Returns the distance of the given point to the given triangle. More...
struct  DistanceLineToTriangle
 Returns the distance between the given line and triangle. More...
struct  DistanceRayToTriangle
 Returns the distance between the given ray and triangle. More...
struct  DistanceSegmentToTriangle
 Returns the distance between the given segment and triangle. More...
struct  DistanceTriangleToTriangle
 Returns the distance between the two given triangles. More...
struct  DistancePointToRectangle
 Returns the distance between the given rectangle and point. More...
struct  DistanceLineToRectangle
 Returns the distance between the given line and rectangle. More...
struct  DistanceRayToRectangle
 Returns the distance between the given ray and rectangle. More...
struct  DistanceSegmentToRectangle
 Returns the distance between the given segment and rectangle. More...
struct  DistanceRectangleToRectangle
 Returns the distance between the two given rectangles. More...
struct  DistanceLine2ToLine2
 Returns the distance between the two given 2D lines. More...
struct  DistanceLine2ToRay2
 Returns the distance between the given 2D line and ray. More...
struct  DistanceLine2ToSegment2
 Returns the distance between the given 2D line and segment. More...
struct  DistancePointToPlane
 Returns the distance between the given point and plane. More...
struct  DistancePointToAxisAlignedBox
 Returns the distance of the given point to the given axis-aligned box. More...
struct  DistancePointToBox
 Returns the distance of the given point to the given oriented box. More...
struct  DistancePointToSphere
 Returns the distance of the given point to the given sphere. More...
struct  DistancePlaneToPlane
 Returns the distance between the two given planes. More...
struct  DistancePlaneToLine
 Returns the distance of the given line to the given plane. More...
struct  DistancePlaneToRay
 Returns the distance of the given plane to the given ray. More...
struct  DistancePlaneToSegment
 Returns the distance of the given plane to the given segment. More...
struct  DistancePlaneToTriangle
 Returns the distance of the given plane to the given triangle. More...
struct  DistancePlaneToRectangle
 Returns the distance of the given plane to the given rectangle. More...
struct  DistancePlaneToAxisAlignedBox
 Returns the distance of the given plane to the given axis-aligned box. More...
struct  DistancePlaneToBox
 Returns the distance of the given plane to the given oriented box. More...
struct  DistancePlaneToSphere
 Returns the distance of the given plane to the given sphere. More...
struct  DistanceLineToSphere
 Returns the distance of the given line to the given sphere. More...
struct  DistanceRayToSphere
 Returns the distance of the given ray to the given sphere. More...
struct  DistanceSegmentToSphere
 Returns the distance of the given segment to the given sphere. More...
struct  DistanceTriangleToSphere
 Returns the distance of the given triangle to the given sphere. More...
struct  DistanceAxisAlignedBoxToAxisAlignedBox
 Returns the distance of the two given axis-aligned boxes. More...
struct  DistanceSphereToSphere
 Returns the distance of the two given spheres. More...
class  EigenSolver
 A simple eigensolver class for real, symmetric matrices. More...
class  Frustum
 A pyramidal frustum class. More...
class  GeometricObject
 An abstract base class for all kinds of geometric objects. More...
class  GeometricObject2
 An abstract base class for all kinds of geometric 2D objects. More...
class  GeometricObject3
 An abstract base class for all kinds of geometric 3D objects. More...
class  GetDistance2Impl
 A template class implementing GetDistance and GetDistanceSquared functions. More...
class  GetDistance3Impl
 A template class implementing GetDistance and GetDistanceSquared functions. More...
class  HouseholderTridiagonalizer
 The Householder matrix tridiagonlizer template class. More...
class  Line
 A line class. More...
class  LinearComponent
 An abstract base class for all kinds of linear components (like lines, rays...). More...
struct  GetVectorType
 A template metafunction to determine the most suitable vector type. More...
struct  GetSquareMatrixType
 A template metafunction to determine the most suitable matrix type. More...
class  Matrix2x2
 A 2x2 matrix class. More...
class  Matrix3x3
 A 3x3 matrix class. More...
class  Matrix4x4
 A 4x4 matrix class. More...
class  MatrixNxN
 A general NxN matrix class. More...
class  Plane
 A plane class. More...
class  Point
 A point class. More...
class  Quaternion
 A quaternion class. More...
class  Ray
 A ray class. More...
class  Rectangle
 A class representing a rectangle. More...
class  Segment
 A segment class. More...
class  Sphere
 A sphere class. More...
class  Transform
 This class represents an affine transformation. More...
class  Triangle
 A class representing a triangle. More...
class  Vector2
 A 2-component vector class. More...
class  Vector3
 A 3-component vector class. More...
class  Vector4
 A 4-component vector class. More...
class  VectorN
 An N-component vector template class. More...
class  Volume
 An abstract base class for all kinds of volumes (like boxes, cylinders etc.). More...

Typedefs

typedef wxFloat32 XEngine::real


Typedef Documentation

typedef wxFloat32 real
 

The type real represents floating-point numbers used by the engine. Per default the floating-point precision used is 32 bits. If the macro XENGINE_64BIT_REAL is defined, however, the precision will be 64 bits.

Warning:
Currently only 32 bits precision floating-point types are supported. So you should NEVER define XENGINE_64BIT_REAL for now. This probably will never change, as it would require a massive reimplemenation of various parts of the engine.