Tapioca Engine 1.0
Motor de videojuegos creado por Bubble Studios
Cargando...
Buscando...
Nada coincide
Métodos públicos | Atributos públicos | Lista de todos los miembros
Referencia de la clase Tapioca::Quaternion

Usamos el sistema diestro (https://danceswithcode.net/engineeringnotes/quaternions/quaternions.html). Cualquier rotacion en un espacio tridimensional se puede definir con un vector unitario y una cantidad de giro sobre ese vector. Más...

#include <Quaternion.h>

Métodos públicos

 Quaternion (const float q0, const float q1, const float q2, const float q3)
 Constructor de la clase Quaternion. Se contruye un a partir de 4 floats que describen el angulo y vector que definen el quaternion.
 
 Quaternion (const float alfa, const Vector3 &vec)
 Constructor de la clase Quaternion. Se construye a partir de la descripcion la rotacion de alfa grados en el eje vec.
 
 Quaternion (const Vector3 &euler)
 Constructor de la clase Quaternion. Se construye a partir de rotaciones en los 3 ejes globales (x y z) en grados sexagesimales.
 
Quaternion inverse ()
 Devuelve el quaternion inverso (el conjugado entre la magnitud)
 
Quaternion conjugate ()
 Devuelve el cuaternion conjugado.
 
float magnitude ()
 Devuelve la magnitud del quaternion.
 
Vector3 toEuler ()
 Devuelve un vector con la rotacion en angulos sexadecimales pitch, yaw, roll (x,y,z) en un sistema y up.
 
Quaternion operator* (const Quaternion &rhs)
 Multiplica el cuaternion por rhs. Para rotar un punto se puede hacer q * p * q(conjugado)
 
Quaternion operator* (const float s)
 Multiplicacio por un escalar.
 
Quaternion operator/ (const float s)
 Divide el cuaternion por un escalar Para rotar un punto se puede hacer q * p * q(conjugado).
 
Vector3 rotatePoint (const Vector3 &point)
 Multiplicacion "vectorizada" con la "Formula Rodrigues" Para rotar un punto se puede hacer q * p * q(conjugado)
 
Quaternion normalized ()
 Devuelve el quaternion normalizado.
 
void normalize ()
 Normaliza el quaternion.
 

Atributos públicos

float scalar
 
Vector3 vector
 
float angle
 

Descripción detallada

Usamos el sistema diestro (https://danceswithcode.net/engineeringnotes/quaternions/quaternions.html). Cualquier rotacion en un espacio tridimensional se puede definir con un vector unitario y una cantidad de giro sobre ese vector.

q = x + yi + zj +wk, donde x y z w son numeros reales y ddone i j k son numeros complejos, vectores unitarios ortogonales entre si. i^2 = j^2 = k^2 = -1

Para pasar de eje + angulo a quaternion: 0 + (x,y,z), q = q0 + q1 + q2 + q3, q0 = cos(0/2), q1 = xsin(0/2), q2 = ysin(0/2), q3 = zsin(0/2)

Para rotar un punto se multiplica por el cuaternion y luego por su conjugado: pr = q*p*qc

Documentación de constructores y destructores

◆ Quaternion() [1/3]

Tapioca::Quaternion::Quaternion ( const float q0,
const float q1,
const float q2,
const float q3 )

Constructor de la clase Quaternion. Se contruye un a partir de 4 floats que describen el angulo y vector que definen el quaternion.

Parámetros
q0Cantidad de giro que se aplica sobre el vector
q1Valor de la componente x del vector
q2Valor de la componente y del vector
q3Valor de la componente z del vector

◆ Quaternion() [2/3]

Tapioca::Quaternion::Quaternion ( const float alfa,
const Vector3 & vec )

Constructor de la clase Quaternion. Se construye a partir de la descripcion la rotacion de alfa grados en el eje vec.

Parámetros
alfaRotacion del vector en grados sexagesimales
vecVector que define el giro

◆ Quaternion() [3/3]

Tapioca::Quaternion::Quaternion ( const Vector3 & euler)

Constructor de la clase Quaternion. Se construye a partir de rotaciones en los 3 ejes globales (x y z) en grados sexagesimales.

Parámetros
eulerRotacion en los 3 ejes globales

Documentación de funciones miembro

◆ conjugate()

Quaternion Tapioca::Quaternion::conjugate ( )

Devuelve el cuaternion conjugado.

Devuelve
Quaternion conjugado

◆ inverse()

Quaternion Tapioca::Quaternion::inverse ( )

Devuelve el quaternion inverso (el conjugado entre la magnitud)

Devuelve
Inverso del quaternion

◆ magnitude()

float Tapioca::Quaternion::magnitude ( )

Devuelve la magnitud del quaternion.

Devuelve
Magnitud del quaternion

◆ normalize()

void Tapioca::Quaternion::normalize ( )

Normaliza el quaternion.

◆ normalized()

Quaternion Tapioca::Quaternion::normalized ( )

Devuelve el quaternion normalizado.

◆ operator*() [1/2]

Multiplicacio por un escalar.

Parámetros
sEscalar por el que se multiplican todos los miembros del quaternion
Devuelve
Resultado de multiplicar el quaternion por s

◆ operator*() [2/2]

Multiplica el cuaternion por rhs. Para rotar un punto se puede hacer q * p * q(conjugado)

Parámetros
rhsElemento diestro de la multiplicacion (right hand side)
Devuelve
Resultado de multiplicar el quaternion por rhs

◆ operator/()

Divide el cuaternion por un escalar Para rotar un punto se puede hacer q * p * q(conjugado).

Parámetros
sEscalar por el que se dividen todos los miembros del quaternion
Devuelve
Resultado de multiplicar el quaternion por rhs

◆ rotatePoint()

Vector3 Tapioca::Quaternion::rotatePoint ( const Vector3 & point)

Multiplicacion "vectorizada" con la "Formula Rodrigues" Para rotar un punto se puede hacer q * p * q(conjugado)

Parámetros
pointPunto por el que se multiplica
Devuelve
Resultado de multiplicar el quaternion por el punto

◆ toEuler()

Vector3 Tapioca::Quaternion::toEuler ( )

Devuelve un vector con la rotacion en angulos sexadecimales pitch, yaw, roll (x,y,z) en un sistema y up.

Devuelve
Vector con la rotacion en angulos sexadecimales en sistema ZYX

Documentación de datos miembro

◆ angle

float Tapioca::Quaternion::angle

◆ scalar

float Tapioca::Quaternion::scalar

◆ vector

Vector3 Tapioca::Quaternion::vector

La documentación de esta clase está generada de los siguientes archivos: