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

Referencia de la Clase Quaternion

Esta Clase proporciona una notacion matematica para representar las orientaciones y las rotaciones de objetos en tres dimensiones mediante Cuateniones. Comparados con las matrices de rotacion, son mas eficientes y mas estables numericamente. Más...

#include <Maths.h>

Lista de todos los miembros.

Métodos públicos

 Quaternion (float w_, float x_, float y_, float z_)
 Quaternion (float headDegrees, float pitchDegrees, float rollDegrees)
 Quaternion (const Vector3 &axis, float degrees)
 Quaternion (const Matrix3 &m)
 Quaternion (const Matrix4 &m)
bool operator== (const Quaternion &rhs) const
bool operator!= (const Quaternion &rhs) const
Quaternionoperator+= (const Quaternion &rhs)
Quaternionoperator-= (const Quaternion &rhs)
Quaternionoperator*= (const Quaternion &rhs)
Quaternionoperator*= (float scalar)
Quaternionoperator/= (float scalar)
Quaternion operator+ (const Quaternion &rhs) const
Quaternion operator- (const Quaternion &rhs) const
Quaternion operator* (const Quaternion &rhs) const
Quaternion operator* (float scalar) const
Quaternion operator/ (float scalar) const
Quaternion conjugate () const
void fromAxisAngle (const Vector3 &axis, float degrees)
void fromHeadPitchRoll (float headDegrees, float pitchDegrees, float rollDegrees)
void fromMatrix (const Matrix3 &m)
void fromMatrix (const Matrix4 &m)
void identity ()
Quaternion inverse () const
float magnitude () const
void normalize ()
void set (float w_, float x_, float y_, float z_)
void toAxisAngle (Vector3 &axis, float &degrees) const
void toHeadPitchRoll (float &headDegrees, float &pitchDegrees, float &rollDegrees) const
Matrix3 toMatrix3 () const
Matrix4 toMatrix4 () const

Métodos públicos estáticos

static Quaternion slerp (const Quaternion &a, const Quaternion &b, float t)

Atributos públicos

float w
float x
float y
float z

Atributos públicos estáticos

static const Quaternion IDENTITY

Amigas

Quaternion operator* (float lhs, const Quaternion &rhs)

Descripción detallada

Esta Clase proporciona una notacion matematica para representar las orientaciones y las rotaciones de objetos en tres dimensiones mediante Cuateniones. Comparados con las matrices de rotacion, son mas eficientes y mas estables numericamente.

Esta clase Quaternion concatena cuaterniones de izquierda a derecha. La razon para esto es mantener el mismo significado en la multiplicacion que con las clases Matrix3 y Matrix4.


Documentación de las funciones miembro

void Quaternion::fromMatrix ( const Matrix3 m  ) 

Crea un quaternion desde una matriz de rotacion. El algoritmo usado es de Allan and Mark Watt's "Advanced Animation and Rendering Techniques" (ACM Press 1992).

void Quaternion::fromMatrix ( const Matrix4 m  ) 

Crea un quaternion desde una matriz de rotacion. El algoritmo usado es de Allan and Mark Watt's "Advanced Animation and Rendering Techniques" (ACM Press 1992).

Quaternion Quaternion::slerp ( const Quaternion a,
const Quaternion b,
float  t 
) [static]

Suavemente interpola del quaternion 'a' al quaternion 'b' usando interpolacion lineal esferica.

Ambos quaterniones deben estar normalizados y representar rotaciones absolutas. En particular quaternion 'b' no debe ser relativo al quaternion 'a'. Si 'b' es relativo a 'a' hacer a 'b' rotacion absoluta mediante: b = a * b.

El parametro de interpolacion 't' se encuentra en el rango [0,1]. Cuando t = 0 el resultado es 'a'. Cuando t = 1 el resultado es 'b'.

El algoritmo usado es adaptado de Allan and Mark Watt's "Advanced Animation and Rendering Techniques" (ACM Press 1992).

Matrix3 Quaternion::toMatrix3 (  )  const

Convierte este quaternion a una matriz de rotacion.

| 1 - 2(y^2 + z^2) 2(xy + wz) 2(xz - wy) | | 2(xy - wz) 1 - 2(x^2 + z^2) 2(yz + wx) | | 2(xz + wy) 2(yz - wx) 1 - 2(x^2 + y^2) |

Matrix4 Quaternion::toMatrix4 (  )  const

Convierte este quaternion a una matriz de rotacion.

| 1 - 2(y^2 + z^2) 2(xy + wz) 2(xz - wy) 0 | | 2(xy - wz) 1 - 2(x^2 + z^2) 2(yz + wx) 0 | | 2(xz + wy) 2(yz - wx) 1 - 2(x^2 + y^2) 0 | | 0 0 0 1 |


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