Castor3D 0.16.0
Multiplatform 3D engine
|
Représentation d'un quaternion. Plus de détails...
#include <Quaternion.hpp>
Fonctions membres publiques | |
QuaternionT () | |
Constructeur. | |
QuaternionT (QuaternionT const &rhs) | |
Constructeur par copie. | |
QuaternionT (QuaternionT &&rhs) noexcept | |
Constructeur par déplacement. | |
QuaternionT (double const *values) | |
Constructeur. | |
QuaternionT (float const *values) | |
Constructeur. | |
QuaternionT (Point4f const &values) | |
Constructeur. | |
QuaternionT (Point4d const &values) | |
Constructeur. | |
~QuaternionT () noexcept=default | |
Destructeur. | |
QuaternionT< T > & | operator= (QuaternionT< T > const &rhs) |
Opérateur d'affectation par copie. | |
QuaternionT< T > & | operator= (QuaternionT< T > &&rhs) noexcept |
Opérateur d'affectation par déplacement. | |
QuaternionT< T > & | operator+= (QuaternionT< T > const &rhs) |
Opérateur d'affectation par addition. | |
QuaternionT< T > & | operator-= (QuaternionT< T > const &rhs) |
Opérateur d'affectation par soustraction. | |
QuaternionT< T > & | operator*= (QuaternionT< T > const &rhs) |
Opérateur d'affectation par multiplication. | |
QuaternionT< T > & | operator*= (double rhs) |
Opérateur d'affectation par multiplication. | |
QuaternionT< T > & | operator*= (float rhs) |
Opérateur d'affectation par multiplication. | |
template<Vector3fT PtT> | |
PtT & | transform (PtT const &vector, PtT &result) const |
Transforme un vecteur et donne le résultat. | |
template<Vector3dT PtT> | |
PtT & | transform (PtT const &vector, PtT &result) const |
Transforme un vecteur et donne le résultat. | |
void | toMatrix (float *matrix) const |
Remplit une matrice de rotation à partir de ce Quaternion. | |
void | toMatrix (double *matrix) const |
Remplit une matrice de rotation à partir de ce Quaternion. | |
void | toMatrix (Matrix4x4f &matrix) const |
Remplit une matrice de rotation à partir de ce Quaternion. | |
void | toMatrix (Matrix4x4d &matrix) const |
Remplit une matrice de rotation à partir de ce Quaternion. | |
void | toAxisAngle (Point3f &vector, Angle &angle) const |
Calcule l'axe et l'angle de ce Quaternion. | |
void | toAxisAngle (Point3d &vector, Angle &angle) const |
Calcule l'axe et l'angle de ce Quaternion. | |
void | toAxes (Point3f &x, Point3f &y, Point3f &z) const |
Calcule 3 axes à partir de ce quaternion. | |
void | toAxes (Point3d &x, Point3d &y, Point3d &z) const |
Calcule 3 axes à partir de ce quaternion. | |
void | conjugate () |
Définit ce Quaternion à son conjugué | |
QuaternionT< T > | getConjugate () const |
Récupère le conjugué de ce Quaternion. | |
double | getMagnitude () const |
Récupère la magnitude de ce Quaternion. | |
AngleT< T > | getPitch () const |
AngleT< T > | getYaw () const |
AngleT< T > | getRoll () const |
QuaternionT< T > | mix (QuaternionT< T > const &target, double factor) const |
Interpolation sphérique linéaire de deux quaternions. | |
QuaternionT< T > | mix (QuaternionT< T > const &target, float factor) const |
Interpolation sphérique linéaire de deux quaternions. | |
QuaternionT< T > | lerp (QuaternionT< T > const &target, double factor) const |
Interpolation linéaire de deux quaternions. | |
QuaternionT< T > | lerp (QuaternionT< T > const &target, float factor) const |
Interpolation linéaire de deux quaternions. | |
QuaternionT< T > | slerp (QuaternionT< T > const &target, double factor) const |
Interpolation sphérique linéaire de deux quaternions. | |
QuaternionT< T > | slerp (QuaternionT< T > const &target, float factor) const |
Interpolation sphérique linéaire de deux quaternions. | |
PointData< T, 4u > * | operator-> () |
PointData< T, 4u > const * | operator-> () const |
Fonctions membres publiques hérités de castor::DataHolderT< QuaternionDataT< T > > | |
DataHolderT () noexcept=default | |
DataHolderT (QuaternionDataT< T > d) noexcept | |
QuaternionDataT< T > & | getData () |
QuaternionDataT< T > const & | getData () const |
void | setData (QuaternionDataT< T > data) |
Fonctions membres publiques hérités de castor::Coords< T, Count > | |
void | swap (Coords &rhs) noexcept |
Echange les données de c epoint avec celles du point donné | |
uint32_t | size () const |
T const & | operator[] (uint32_t index) const |
Récupère la donnée à l'index donné | |
T & | operator[] (uint32_t index) |
Récupère la donnée à l'index donné | |
T * | ptr () |
Récupère un pointeur non constant sur les données. | |
T const * | constPtr () const |
Récupère un pointeur constant sur les données. | |
iterator | begin () |
Récupère un itérateur sur le premier élément. | |
const_iterator | begin () const |
Récupère un itérateur constant sur le premier élément. | |
iterator | end () |
Récupère un itérateur sur le dernier élément. | |
const_iterator | end () const |
Récupère un itérateur constant sur le dernier élément. | |
Coords ()=default | |
Coords (Point< T, Count > &rhs) | |
Coords (T *rhs) | |
Coords & | operator= (T *rhs) |
Coords & | operator= (Point< T, Count > const &rhs) |
template<typename U , uint32_t UCount> | |
Coords & | operator+= (Coords< U, UCount > const &rhs) |
template<typename U , uint32_t UCount> | |
Coords & | operator-= (Coords< U, UCount > const &rhs) |
template<typename U , uint32_t UCount> | |
Coords & | operator*= (Coords< U, UCount > const &rhs) |
template<typename U , uint32_t UCount> | |
Coords & | operator/= (Coords< U, UCount > const &rhs) |
template<typename U , uint32_t UCount> | |
Coords & | operator+= (Point< U, UCount > const &rhs) |
template<typename U , uint32_t UCount> | |
Coords & | operator-= (Point< U, UCount > const &rhs) |
template<typename U , uint32_t UCount> | |
Coords & | operator*= (Point< U, UCount > const &rhs) |
template<typename U , uint32_t UCount> | |
Coords & | operator/= (Point< U, UCount > const &rhs) |
template<typename U > | |
Coords & | operator+= (U const *coords) |
template<typename U > | |
Coords & | operator-= (U const *coords) |
template<typename U > | |
Coords & | operator*= (U const *coords) |
template<typename U > | |
Coords & | operator/= (U const *coords) |
Coords & | operator+= (T const &coord) |
Coords & | operator-= (T const &coord) |
Coords & | operator*= (T const &coord) |
Coords & | operator/= (T const &coord) |
Fonctions membres publiques statiques | |
static QuaternionT< T > | fromMatrix (Matrix4x4f const &matrix) |
Met à jour ce Quaternion à partir d'une matrice de rotation. | |
static QuaternionT< T > | fromMatrix (Matrix4x4d const &matrix) |
Met à jour ce Quaternion à partir d'une matrice de rotation. | |
static QuaternionT< T > | fromMatrix (float const *matrix) |
Met à jour ce Quaternion à partir d'une matrice de rotation. | |
static QuaternionT< T > | fromMatrix (double const *matrix) |
Met à jour ce Quaternion à partir d'une matrice de rotation. | |
static QuaternionT< T > | fromAxisAngle (Point3f const &vector, Angle const &angle) |
Met à jour ce Quaternion à partir d'un axe et d'un angle. | |
static QuaternionT< T > | fromAxisAngle (Point3d const &vector, Angle const &angle) |
Met à jour ce Quaternion à partir d'un axe et d'un angle. | |
static QuaternionT< T > | fromAxes (Point3f const &x, Point3f const &y, Point3f const &z) |
Met à jour ce Quaternion à partir de 3 axes. | |
static QuaternionT< T > | fromAxes (Point3d const &x, Point3d const &y, Point3d const &z) |
Met à jour ce Quaternion à partir de 3 axes. | |
static QuaternionT< T > | fromComponents (float x, float y, float z, float w) |
Met à jour ce Quaternion à partir de 4 composantes. | |
static QuaternionT< T > | fromComponents (double x, double y, double z, double w) |
Met à jour ce Quaternion à partir de 4 composantes. | |
static QuaternionT< T > | identity () |
Récupère le Quaternion identité | |
static QuaternionT< T > | null () |
Récupère le Quaternion nul. | |
Membres hérités additionnels | |
Types publics hérités de castor::Coords< T, Count > | |
using | iterator = value_type * |
using | const_iterator = value_type const * |
Représentation d'un quaternion.
castor::QuaternionT< T >::QuaternionT | ( | ) |
Constructeur.
castor::QuaternionT< T >::QuaternionT | ( | QuaternionT< T > const & | rhs | ) |
Constructeur par copie.
[in] | rhs | L'objet Quaternion à copier |
|
noexcept |
Constructeur par déplacement.
[in] | rhs | L'objet Quaternion à déplacer |
|
explicit |
Constructeur.
[in] | values | Les valeurs du Quaternion |
|
explicit |
Constructeur.
[in] | values | Les valeurs du Quaternion |
|
explicit |
Constructeur.
[in] | values | Les valeurs du quaternion |
|
explicit |
Constructeur.
[in] | values | Les valeurs du quaternion |
|
defaultnoexcept |
Destructeur.
void castor::QuaternionT< T >::conjugate | ( | ) |
Définit ce Quaternion à son conjugué
|
static |
Met à jour ce Quaternion à partir de 3 axes.
[in] | x,y,z | Les axes |
|
static |
Met à jour ce Quaternion à partir de 3 axes.
[in] | x,y,z | Les axes |
|
static |
Met à jour ce Quaternion à partir d'un axe et d'un angle.
[in] | vector | L'axe |
[in] | angle | L'angle |
|
static |
Met à jour ce Quaternion à partir d'un axe et d'un angle.
[in] | vector | L'axe |
[in] | angle | L'angle |
|
static |
Met à jour ce Quaternion à partir de 4 composantes.
[in] | x,y,z,w | Les composantes |
|
static |
Met à jour ce Quaternion à partir de 4 composantes.
[in] | x,y,z,w | Les composantes |
|
static |
Met à jour ce Quaternion à partir d'une matrice de rotation.
[in] | matrix | La matrice de rotation |
|
static |
Met à jour ce Quaternion à partir d'une matrice de rotation.
[in] | matrix | La matrice de rotation |
|
static |
Met à jour ce Quaternion à partir d'une matrice de rotation.
[in] | matrix | La matrice de rotation |
|
static |
Met à jour ce Quaternion à partir d'une matrice de rotation.
[in] | matrix | La matrice de rotation |
QuaternionT< T > castor::QuaternionT< T >::getConjugate | ( | ) | const |
Récupère le conjugué de ce Quaternion.
double castor::QuaternionT< T >::getMagnitude | ( | ) | const |
Récupère la magnitude de ce Quaternion.
AngleT< T > castor::QuaternionT< T >::getPitch | ( | ) | const |
AngleT< T > castor::QuaternionT< T >::getRoll | ( | ) | const |
AngleT< T > castor::QuaternionT< T >::getYaw | ( | ) | const |
|
static |
Récupère le Quaternion identité
QuaternionT< T > castor::QuaternionT< T >::lerp | ( | QuaternionT< T > const & | target, |
double | factor ) const |
Interpolation linéaire de deux quaternions.
[in] | target | Le quaternion cible |
[in] | factor | Le facteur d'interpolation. L'interpolation est définie à l'intérieur de l'intervalle [0, 1]. |
QuaternionT< T > castor::QuaternionT< T >::lerp | ( | QuaternionT< T > const & | target, |
float | factor ) const |
Interpolation linéaire de deux quaternions.
[in] | target | Le quaternion cible |
[in] | factor | Le facteur d'interpolation. L'interpolation est définie à l'intérieur de l'intervalle [0, 1]. |
QuaternionT< T > castor::QuaternionT< T >::mix | ( | QuaternionT< T > const & | target, |
double | factor ) const |
Interpolation sphérique linéaire de deux quaternions.
[in] | target | Le quaternion cible |
[in] | factor | Le facteur d'interpolation. L'interpolation est définie hors de l'intervalle [0, 1]. |
QuaternionT< T > castor::QuaternionT< T >::mix | ( | QuaternionT< T > const & | target, |
float | factor ) const |
Interpolation sphérique linéaire de deux quaternions.
[in] | target | Le quaternion cible |
[in] | factor | Le facteur d'interpolation. L'interpolation est définie hors de l'intervalle [0, 1]. |
|
static |
Récupère le Quaternion nul.
QuaternionT< T > & castor::QuaternionT< T >::operator*= | ( | double | rhs | ) |
Opérateur d'affectation par multiplication.
[in] | rhs | Le scalaire à multiplier |
QuaternionT< T > & castor::QuaternionT< T >::operator*= | ( | float | rhs | ) |
Opérateur d'affectation par multiplication.
[in] | rhs | Le scalaire à multiplier |
QuaternionT< T > & castor::QuaternionT< T >::operator*= | ( | QuaternionT< T > const & | rhs | ) |
Opérateur d'affectation par multiplication.
[in] | rhs | L'objet Quaternion à multiplier |
QuaternionT< T > & castor::QuaternionT< T >::operator+= | ( | QuaternionT< T > const & | rhs | ) |
Opérateur d'affectation par addition.
[in] | rhs | L'objet Quaternion à ajouter |
QuaternionT< T > & castor::QuaternionT< T >::operator-= | ( | QuaternionT< T > const & | rhs | ) |
Opérateur d'affectation par soustraction.
[in] | rhs | L'objet Quaternion à soustraire |
|
inline |
Références castor::DataHolderT< QuaternionDataT< T > >::getData().
|
inline |
Références castor::DataHolderT< QuaternionDataT< T > >::getData().
|
noexcept |
Opérateur d'affectation par déplacement.
[in] | rhs | L'objet Quaternion à déplacer |
QuaternionT< T > & castor::QuaternionT< T >::operator= | ( | QuaternionT< T > const & | rhs | ) |
Opérateur d'affectation par copie.
[in] | rhs | L'objet Quaternion à copier |
QuaternionT< T > castor::QuaternionT< T >::slerp | ( | QuaternionT< T > const & | target, |
double | factor ) const |
Interpolation sphérique linéaire de deux quaternions.
[in] | target | Le quaternion cible |
[in] | factor | Le facteur d'interpolation. L'interpolation est définie hors de l'intervalle [0, 1]. |
Référencé par castor3d::InterpolatorT< castor::Quaternion, InterpolatorType::eLinear >::interpolate().
QuaternionT< T > castor::QuaternionT< T >::slerp | ( | QuaternionT< T > const & | target, |
float | factor ) const |
Interpolation sphérique linéaire de deux quaternions.
[in] | target | Le quaternion cible |
[in] | factor | Le facteur d'interpolation. L'interpolation est définie hors de l'intervalle [0, 1]. |
void castor::QuaternionT< T >::toAxes | ( | Point3d & | x, |
Point3d & | y, | ||
Point3d & | z ) const |
Calcule 3 axes à partir de ce quaternion.
[out] | x,y,z | Les axes |
void castor::QuaternionT< T >::toAxes | ( | Point3f & | x, |
Point3f & | y, | ||
Point3f & | z ) const |
Calcule 3 axes à partir de ce quaternion.
[out] | x,y,z | Les axes |
void castor::QuaternionT< T >::toAxisAngle | ( | Point3d & | vector, |
Angle & | angle ) const |
Calcule l'axe et l'angle de ce Quaternion.
[out] | vector | Reçoit l'axe |
[out] | angle | Reçoit l'angle |
void castor::QuaternionT< T >::toAxisAngle | ( | Point3f & | vector, |
Angle & | angle ) const |
Calcule l'axe et l'angle de ce Quaternion.
[out] | vector | Reçoit l'axe |
[out] | angle | Reçoit l'angle |
Référencé par castor3d::SceneNode::getAxisAngle().
void castor::QuaternionT< T >::toMatrix | ( | double * | matrix | ) | const |
Remplit une matrice de rotation à partir de ce Quaternion.
[out] | matrix | La matrice à remplir |
void castor::QuaternionT< T >::toMatrix | ( | float * | matrix | ) | const |
Remplit une matrice de rotation à partir de ce Quaternion.
[out] | matrix | La matrice à remplir |
void castor::QuaternionT< T >::toMatrix | ( | Matrix4x4d & | matrix | ) | const |
Remplit une matrice de rotation à partir de ce Quaternion.
[out] | matrix | La matrice à remplir |
void castor::QuaternionT< T >::toMatrix | ( | Matrix4x4f & | matrix | ) | const |
Remplit une matrice de rotation à partir de ce Quaternion.
[out] | matrix | La matrice à remplir |
PtT & castor::QuaternionT< T >::transform | ( | PtT const & | vector, |
PtT & | result ) const |
Transforme un vecteur et donne le résultat.
[in] | vector | Le vecteur à transformer |
[out] | result | Reçoit le résultat |
PtT & castor::QuaternionT< T >::transform | ( | PtT const & | vector, |
PtT & | result ) const |
Transforme un vecteur et donne le résultat.
[in] | vector | Le vecteur à transformer |
[out] | result | Reçoit le résultat |