Métodos públicos | Métodos públicos estáticos | Atributos públicos estáticos

Referencia de la Clase Math

Esta Clase proporciona funciones y constantes matematicas de uso comun. Más...

#include <Maths.h>

Lista de todos los miembros.

Métodos públicos

void cylindricalToCartesian (float radius, float theta, float height, unsigned int axis, float &x, float &y, float &z)
void cartesianToCylindrical (float x, float y, float z, float &radius, float &theta, float &height, unsigned int axis, float tolerance=EPSILON)
void polarToCartesian (float radius, float theta, float &x, float &y)
void cartesian_to_polar (float x, float y, float &radius, float &theta, float tolerance=EPSILON)

Métodos públicos estáticos

template<typename T >
static T lerp (const T &a, const T &b, float t)
template<typename T >
static T bilerp (const T &a, const T &b, const T &c, const T &d, float u, float v)
static void cartesianToSpherical (float x, float y, float z, float &rho, float &phi, float &theta)
static void sphericalToCartesian (float rho, float phi, float theta, float &x, float &y, float &z)
static bool closeEnough (float f1, float f2)
static float degreesToRadians (float degrees)
static float radiansToDegrees (float radians)
static long floatToLong (float f)
static bool isPower2 (int x)
static int nextPower2 (int x)
static int nextMultipleOf (int multiple, int value)
static float random (float min, float max)
static float smoothstep (float a, float b, float x)

Atributos públicos estáticos

static const float PI = 3.1415926f
static const float HALF_PI = Math::PI / 2.0f
static const float QUARTER_PI = Math::PI / 4.0f
static const float TWO_PI = Math::PI * 2.0f
static const float INV_PI = 1 / Math::PI
static const float INV_TWO_PI = 1 / Math::TWO_PI
static const float EPSILON = 1e-6f

Descripción detallada

Esta Clase proporciona funciones y constantes matematicas de uso comun.


Documentación de las funciones miembro

template<typename T >
static T Math::bilerp ( const T &  a,
const T &  b,
const T &  c,
const T &  d,
float  u,
float  v 
) [inline, static]

Realiza una interpolacion bilinear. P(u,v) = e + v(f - e) donde e = a + u(b - a) f = c + u(d - c) u en rango [0,1] v en rango [0,1]

void Math::cartesian_to_polar ( float  x,
float  y,
float &  radius,
float &  theta,
float  tolerance = EPSILON 
) [inline]

Convierte coordenadas Cartesianas a polares en R2

void Math::cartesianToCylindrical ( float  x,
float  y,
float  z,
float &  radius,
float &  theta,
float &  height,
unsigned int  axis,
float  tolerance = EPSILON 
) [inline]

Convierte coordenadas Cartesianas a Cilindricas en R3, axis indica el eje del cilindro 0=x 1=y 2=z

static void Math::cartesianToSpherical ( float  x,
float  y,
float  z,
float &  rho,
float &  phi,
float &  theta 
) [inline, static]

Todos los angulos estan en radianes. rho = distancia del origen O al punto P (ej: largo de OP) phi = angulo entre OP y el plano XZ theta = angulo entre eje X y OP proyectado al plano XZ

static bool Math::closeEnough ( float  f1,
float  f2 
) [inline, static]

Determina si los dos valores floating-point f1 y f2 son suficientemente cercanos como para considerarlos iguales.

void Math::cylindricalToCartesian ( float  radius,
float  theta,
float  height,
unsigned int  axis,
float &  x,
float &  y,
float &  z 
) [inline]

Convierte coordenadas cilindricas a Cartesianas en R3, axis indica el eje del cilindro 0=x 1=y 2=z

static long Math::floatToLong ( float  f  )  [inline, static]

Convierte un numero floating point en un entero. Valores fraccionales son truncados segun ANSI C. 5 o 6 veces mas rapido que castear a entero.

template<typename T >
static T Math::lerp ( const T &  a,
const T &  b,
float  t 
) [inline, static]

Realiza una interpolacion linear. P(t) = (1 - t)a + tb = a + t(b - a)

donde t en el rango [0,1]

static int Math::nextMultipleOf ( int  multiple,
int  value 
) [inline, static]

Retorna el multiplo de multiple mas cercano a value que no es menor que value.

void Math::polarToCartesian ( float  radius,
float  theta,
float &  x,
float &  y 
) [inline]

Convierte coordenadas polares a Cartesianas en R2

static float Math::random ( float  min,
float  max 
) [inline, static]

Retorna un numero al azar dentro del rango [min,max].

static float Math::smoothstep ( float  a,
float  b,
float  x 
) [inline, static]

Retorna una transicion gradual de 'x' desde 0 a 1 comenzando en 'a' y finalizando en 'b'.

Referencias: [1] http://www.rendermanacademy.com/docs/smoothstep.htm [2] http://www.brlcad.org/doxygen/d8/d33/noise_8c-source.html [3] Natalya Tatarchuk, "Efficient High-Level Shader Development", Game Developers Conference Europe, August 2003.

static void Math::sphericalToCartesian ( float  rho,
float  phi,
float  theta,
float &  x,
float &  y,
float &  z 
) [inline, static]

Todos los angulos estan en radianes. rho = distancia del origen O al punto P (ej: largo de OP) phi = angulo entre OP y el plano XZ theta = angulo entre eje X y OP proyectado al plano XZ


La documentación para esta clase fue generada a partir de los siguientes ficheros: