Meta::MMath Class Reference

Precise/exact math routines. More...

#include <MMath.h>

List of all members.

Static Public Member Functions

static mnode degrees (const mvar &deg, MObject *obj=0)
static mnode pi (MObject *obj=0)
static mnode euler (MObject *obj=0)
static mnode catalan (MObject *obj=0)
static mnode sqrt (const mvar &v, MObject *obj=0)
static mnode pow (const mvar &v, const mvar &exponent, MObject *obj=0)
static mnode exp (const mvar &v, MObject *obj=0)
static mvar abs (const mvar &v)
static mnode log10 (const mvar &v, MObject *obj=0)
static mnode log (const mvar &v, MObject *obj)
static mnode cos (const mvar &v, MObject *obj=0)
static mnode acos (const mvar &v, MObject *obj=0)
static mnode cosh (const mvar &v, MObject *obj=0)
static mnode sin (const mvar &v, MObject *obj=0)
static mnode asin (const mvar &v, MObject *obj=0)
static mnode sinh (const mvar &v, MObject *obj=0)
static mnode tan (const mvar &v, MObject *obj=0)
static mnode atan (const mvar &v, MObject *obj=0)
static mnode atan2 (const mvar &y, const mvar &x, MObject *obj=0)
static mnode tanh (const mvar &v, MObject *obj=0)
static mvar floor (const mvar &v)
static mvar ceil (const mvar &v)
static mvar round (const mvar &v, double precision=1)
static bool nearInteger (double v, mvar &n)
static mnode distance (const mvar &u, const mvar &v, MObject *obj=0)
static double fastDistance (const mvar &u, const mvar &v)
static mvar scaleVector (const mvar &u, double magnitude)
static mvec vectorRange (const mvar &b)
static mvec vectorRange (const mvar &a, const mvar &b)
static mvec vectorRange (const mvar &a, const mvar &b, const mvar &inc)
static mlist listRange (const mvar &b)
static mlist listRange (const mvar &a, const mvar &b)
static mlist listRange (const mvar &a, const mvar &b, const mvar &inc)
static mvar clamp (const mvar &v, const mvar &min, const mvar &max)

Detailed Description

Precise/exact math routines.

MMath provides a library of precise/exact math routines. Most methods take an optional MObject obj which is used for symbolic manipulation as needed -- obj is required to be passed for exact answers (if null then floating point approximations may be returned). As a brief example of what exact means in this context, calling cos(2) returns Cos(2), while cos(0) returns the integer 1.


Member Function Documentation

static mvar Meta::MMath::abs ( const mvar v  )  [static]
Returns:
The absolute value of v.
static mnode Meta::MMath::acos ( const mvar v,
MObject obj = 0 
) [static]
Returns:
The arccosine of v.
static mnode Meta::MMath::asin ( const mvar v,
MObject obj = 0 
) [static]
Returns:
The arcsin of v.
static mnode Meta::MMath::atan ( const mvar v,
MObject obj = 0 
) [static]
Returns:
The arctan of v.
static mnode Meta::MMath::atan2 ( const mvar y,
const mvar x,
MObject obj = 0 
) [static]
Returns:
The arctan of v, 2*pi periodic.
static mnode Meta::MMath::catalan ( MObject obj = 0  )  [static]
Returns:
The high precision/exact Catalan constant.
static mvar Meta::MMath::ceil ( const mvar v  )  [static]
Returns:
The ceiling of v.
static mvar Meta::MMath::clamp ( const mvar v,
const mvar min,
const mvar max 
) [static]
Returns:
v clamped to [min,max]

e.g: clamp(10, 1, 20) => 10. clamp(5, 7, 10) => 7. clamp(20, 7, 10) => 10.

static mnode Meta::MMath::cos ( const mvar v,
MObject obj = 0 
) [static]
Returns:
The cosine of v.
static mnode Meta::MMath::cosh ( const mvar v,
MObject obj = 0 
) [static]
Returns:
The hyperbolic cosine of v.
static mnode Meta::MMath::degrees ( const mvar deg,
MObject obj = 0 
) [static]
Returns:
deg degrees converted to radians.
static mnode Meta::MMath::distance ( const mvar u,
const mvar v,
MObject obj = 0 
) [static]
Returns:
The Euclidean distance between points u and v in an arbitray number of dimensions.
static mnode Meta::MMath::euler ( MObject obj = 0  )  [static]
Returns:
The high precision/exact Euler constant.
static mnode Meta::MMath::exp ( const mvar v,
MObject obj = 0 
) [static]
Returns:
v raised to power e.
static double Meta::MMath::fastDistance ( const mvar u,
const mvar v 
) [static]

An imprecise/fast version of distance().

static mvar Meta::MMath::floor ( const mvar v  )  [static]
Returns:
The floor of v.
static mlist Meta::MMath::listRange ( const mvar a,
const mvar b,
const mvar inc 
) [static]

Return a list range. e.g: listRange(1,2,0.5) => (1,1.5,2)

static mlist Meta::MMath::listRange ( const mvar a,
const mvar b 
) [inline, static]

Return a list range. e.g: listRange(1,3) => (1,2,3)

static mlist Meta::MMath::listRange ( const mvar b  )  [inline, static]

Return a list range. e.g: listRange(5) => (0,1,2,3,4,5)

static mnode Meta::MMath::log ( const mvar v,
MObject obj 
) [static]
Returns:
Log base e of v.
static mnode Meta::MMath::log10 ( const mvar v,
MObject obj = 0 
) [static]
Returns:
Log base 10 of v.
static bool Meta::MMath::nearInteger ( double  v,
mvar n 
) [static]
Returns:
true if v is sufficiently near an integer.
Parameters:
n On output, if true is returned, the nearest integer.
static mnode Meta::MMath::pi ( MObject obj = 0  )  [static]
Returns:
The high precision/exact constant pi.
static mnode Meta::MMath::pow ( const mvar v,
const mvar exponent,
MObject obj = 0 
) [static]
Returns:
v raised to exponent.
static mvar Meta::MMath::round ( const mvar v,
double  precision = 1 
) [static]
Returns:
v rounded to the specified precision e.g: round(12.3491, 0.01) => 12.35.
static mvar Meta::MMath::scaleVector ( const mvar u,
double  magnitude 
) [static]

Scale a vector by magnitude.

static mnode Meta::MMath::sin ( const mvar v,
MObject obj = 0 
) [static]
Returns:
The sine of v.
static mnode Meta::MMath::sinh ( const mvar v,
MObject obj = 0 
) [static]
Returns:
The hyperbolic sine of v.
static mnode Meta::MMath::sqrt ( const mvar v,
MObject obj = 0 
) [static]
Returns:
The square root of v.
static mnode Meta::MMath::tan ( const mvar v,
MObject obj = 0 
) [static]
Returns:
The tangent of v.
static mnode Meta::MMath::tanh ( const mvar v,
MObject obj = 0 
) [static]
Returns:
The hyperbolic tangent of v.
static mvec Meta::MMath::vectorRange ( const mvar a,
const mvar b,
const mvar inc 
) [static]

Return a vector range. e.g: vectorRange(1,2,0.5) => [1,1.5,2]

static mvec Meta::MMath::vectorRange ( const mvar a,
const mvar b 
) [inline, static]

Return a vector range. e.g: vectorRange(1,3) => [1,2,3]

static mvec Meta::MMath::vectorRange ( const mvar b  )  [inline, static]

Return a vector range. e.g: vectorRange(5) => [0,1,2,3,4,5]


The documentation for this class was generated from the following file:

Generated on Wed Mar 24 16:22:42 2010 for AndroMeta by  doxygen 1.6.1