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

XEngine::Math Namespace Reference
[XEngineMath Library]


Detailed Description

This namespace provides various mathematics-related classes and a number of mathematical functions that mostly map exactly to already existing ANSI C library functions but might be replaced by faster versions in the future.

There are also a couple of global constants that should be used whenever applicable. Math::g_epsilon is especially important, as it is the error tolerance used when comparing real values (which is also used when comparing e.g. a Vector4 with another Vector4).

The most often used classes in this namespace are probably the vector and matrix classes which exist for various dimensions, such as Vector2, Vector3, Vector4, Matrix2x2, Matrix3x3, and Matrix4x4. There is also a quaternion class called Quaternion and a number of classes representing geometric objects. The 2-dimensional geometric objects are derived from GeometricObject2 and the 3-dimensional geometric objects from GeometricObject3.


Classes

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

Namespaces

namespace  @17
namespace  Curves
 The curves namespace.
namespace  DistanceAlgorithms
 Distance calculation algorithm functors/functor templates.

Functions

real IntegrateRomberg (real from, real to, const boost::function< real(real)> &f)
 Performs Romberg integration on the given 1-dimensional real function in the interval [from, to].
real IntegrateGaussianQuadrature (real from, real to, const boost::function< real(real)> &f)
 Performs integration with Gaussian quadrature on the given 1-dimensional real function in the interval [from, to].
XENGINEMATH_DLL_EXPORT real RadiansToDegrees (real radians)
 Converts from radians to degrees.
XENGINEMATH_DLL_EXPORT real DegreesToRadians (real degrees)
 Converts from degrees to radians.
XENGINEMATH_DLL_EXPORT real sqr (real value)
 Square.
XENGINEMATH_DLL_EXPORT real sqrt (real value)
 Square root.
XENGINEMATH_DLL_EXPORT real invsqrt (real value)
 1 / square root
XENGINEMATH_DLL_EXPORT real log (real value)
 Natural logarithm.
XENGINEMATH_DLL_EXPORT real log2 (real value)
 Logarithm with base 2.
XENGINEMATH_DLL_EXPORT real log10 (real value)
 Logarithm with base 10.
XENGINEMATH_DLL_EXPORT real exp (real value)
 Exponential function.
XENGINEMATH_DLL_EXPORT real pow (real x, real y)
 Calculates x raised to the power of y.
XENGINEMATH_DLL_EXPORT real fabs (real value)
 Absolute value.
XENGINEMATH_DLL_EXPORT real sign (real value)
 Returns the sign of the value, -1 for negative values, 1 for positive values or 0.
XENGINEMATH_DLL_EXPORT real floor (real value)
 Round down to the next lower integer.
XENGINEMATH_DLL_EXPORT real ceil (real value)
 Round up to the next higher integer.
XENGINEMATH_DLL_EXPORT real fmod (real x, real y)
 Remainder of x / y.
XENGINEMATH_DLL_EXPORT real sin (real value)
 Sine.
XENGINEMATH_DLL_EXPORT real cos (real value)
 Cosine.
XENGINEMATH_DLL_EXPORT real tan (real value)
 Tangent.
XENGINEMATH_DLL_EXPORT real cot (real value)
 Cotangent.
XENGINEMATH_DLL_EXPORT real sec (real value)
 Secant.
XENGINEMATH_DLL_EXPORT real csc (real value)
 Cosecant.
XENGINEMATH_DLL_EXPORT real sinh (real value)
 Hyperbolic sine.
XENGINEMATH_DLL_EXPORT real cosh (real value)
 Hyperbolic cosine.
XENGINEMATH_DLL_EXPORT real tanh (real value)
 Hyperbolic tangent.
XENGINEMATH_DLL_EXPORT real coth (real value)
 Hyperbolic cotangent.
XENGINEMATH_DLL_EXPORT real sech (real value)
 Hyperbolic secant.
XENGINEMATH_DLL_EXPORT real csch (real value)
 Hyperbolic cosecant.
XENGINEMATH_DLL_EXPORT real asin (real value)
 Inverse sine.
XENGINEMATH_DLL_EXPORT real acos (real value)
 Inverse cosine.
XENGINEMATH_DLL_EXPORT real atan (real value)
 Inverse tangent.
XENGINEMATH_DLL_EXPORT real atan2 (real x, real y)
 Inverse tangent of x / y.
XENGINEMATH_DLL_EXPORT real acot (real value)
 Inverse cotangent.
Matrix2x2 operator * (real value, const Matrix2x2 &m)
Matrix3x3 operator * (real value, const Matrix3x3 &m)
Matrix4x4 operator * (real value, const Matrix4x4 &m)
template<unsigned int N>
MatrixNxN< N > operator * (real value, const MatrixNxN< N > &m)
 Multiplication operator for scalar-matrix multiplication.
Quaternion operator * (real value, const Quaternion &q)
Vector2 operator * (real value, const Vector2 &v)
Vector3 operator * (real value, const Vector3 &v)
Vector4 operator * (real value, const Vector4 &v)
template<unsigned int N>
VectorN< N > operator * (real value, const VectorN< N > &v)
 Multiplication operator for scalar-vector multiplication.

Variables

const real g_pi = 3.14159265358979323846f
 The mathematical constant PI.
const real g_2pi = 6.28318530717958623200f
 2 * PI
const real g_piDiv2 = 1.57079632679489655800f
 PI / 2.
const real g_piDiv4 = 0.78539816339744827900f
 PI / 4.
const real g_invPi = 0.31830988618379069122f
 1 / PI
const real g_epsilon = 1.0e-6f
 The epsilon tolerance for real values that is used in most floating-point computations.


Function Documentation

XENGINEMATH_DLL_EXPORT real IntegrateGaussianQuadrature real  from,
real  to,
const boost::function< real(real)> &  f
 

Performs integration with Gaussian quadrature on the given 1-dimensional real function in the interval [from, to].

XENGINEMATH_DLL_EXPORT real IntegrateRomberg real  from,
real  to,
const boost::function< real(real)> &  f
 

Performs Romberg integration on the given 1-dimensional real function in the interval [from, to].

VectorN< N > operator * real  value,
const VectorN< N > &  v
 

Multiplication operator for scalar-vector multiplication.

Vector4 operator * real  value,
const Vector4 &  v
 

Friend multiplication operator for scalar-vector multiplication.

Vector3 operator * real  value,
const Vector3 &  v
 

Friend multiplication operator for scalar-vector multiplication.

Vector2 operator * real  value,
const Vector2 &  v
 

Friend multiplication operator for scalar-vector multiplication.

Quaternion operator * real  value,
const Quaternion &  q
 

Friend multiplication operator for scalar-quaternion multiplication.

MatrixNxN< N > operator * real  value,
const MatrixNxN< N > &  m
 

Multiplication operator for scalar-matrix multiplication.

Matrix4x4 operator * real  value,
const Matrix4x4 &  m
 

Friend multiplication operator for scalar-matrix multiplication.

Matrix3x3 operator * real  value,
const Matrix3x3 &  m
 

Friend multiplication operator for scalar-matrix multiplication.

Matrix2x2 operator * real  value,
const Matrix2x2 &  m
 

Friend multiplication operator for scalar-matrix multiplication.