template<class Real>
class sofa::type::QuatNoInit< Real >
Same as Quat except the values are not initialized by default.
|
constexpr | QuatNoInit () noexcept |
|
constexpr | Quat () |
|
constexpr | Quat (qNoInit) |
| Fast constructor: no initialization. More...
|
|
| ~Quat ()=default |
|
constexpr | Quat (Real x, Real y, Real z, Real w) |
|
template<class Real2 > |
constexpr | Quat (const Real2 q[]) |
|
template<class Real2 > |
constexpr | Quat (const Quat< Real2 > &q) |
|
| Quat (const Vec3 &axis, Real angle) |
|
| Quat (const Vec3 &vFrom, const Vec3 &vTo) |
|
void | set (Real x, Real y, Real z, Real w) |
|
const Real * | ptr () const |
| Cast into a standard C array of elements. More...
|
|
Real * | ptr () |
| Cast into a standard C array of elements. More...
|
|
bool | isNormalized () |
| Returns true if norm of Quaternion is one, false otherwise. More...
|
|
void | normalize () |
| Normalize a quaternion. More...
|
|
void | clear () |
|
void | fromFrame (const Vec3 &x, const Vec3 &y, const Vec3 &z) |
| Convert the reference frame orientation into an orientation quaternion. More...
|
|
void | fromMatrix (const Mat3x3 &m) |
| Convert a rotation matrix into an orientation quaternion. More...
|
|
void | toMatrix (Mat3x3 &m) const |
| Convert the quaternion into an orientation matrix. More...
|
|
constexpr void | toHomogeneousMatrix (Mat4x4 &m) const |
|
constexpr auto | rotate (const Vec3 &v) const -> Vec3 |
| Apply the rotation to a given vector. More...
|
|
constexpr auto | inverseRotate (const Vec3 &v) const -> Vec3 |
| Apply the inverse rotation to a given vector. More...
|
|
auto | operator+ (const Quat &q1) const -> Quat |
|
constexpr auto | operator* (const Quat &q1) const -> Quat |
|
constexpr auto | operator* (const Real &r) const -> Quat |
|
auto | operator/ (const Real &r) const -> Quat |
|
void | operator*= (const Real &r) |
|
void | operator/= (const Real &r) |
|
constexpr auto | quatVectMult (const Vec3 &vect) const -> Quat |
| Given two Quats, multiply them together to get a third quaternion. More...
|
|
constexpr auto | vectQuatMult (const Vec3 &vect) const -> Quat |
|
constexpr Real & | operator[] (Size index) |
|
constexpr const Real & | operator[] (Size index) const |
|
auto | inverse () const -> Quat |
|
auto | quatToRotationVector () const -> Vec3 |
| Given a quaternion, compute rotation vector (axis times angle) More...
|
|
auto | toEulerVector () const -> Vec3 |
|
void | slerp (const Quat &a, const Quat &b, Real t, bool allowFlip=true) |
| Returns the slerp interpolation of Quaternions a and b , at time t . More...
|
|
constexpr void | buildRotationMatrix (Real m[4][4]) const |
|
constexpr void | writeOpenGlMatrix (double *m) const |
|
constexpr void | writeOpenGlMatrix (float *m) const |
|
auto | axisToQuat (Vec3 a, Real phi) -> Quat |
| Given an axis and angle, compute quaternion. More...
|
|
void | quatToAxis (Vec3 &a, Real &phi) const |
| Given a quaternion, compute an axis and angle. More...
|
|
void | setFromUnitVectors (const Vec3 &vFrom, const Vec3 &vTo) |
| Sets this quaternion to the rotation required to rotate direction vector vFrom to direction vector vTo. vFrom and vTo are assumed to be normalized. More...
|
|
auto | slerp (const Quat &q1, Real t) const -> Quat |
|
auto | slerp2 (const Quat &q1, Real t) const -> Quat |
|
void | operator+= (const Quat &q2) |
|
constexpr void | operator*= (const Quat &q1) |
|
bool | operator== (const Quat &q) const |
|
bool | operator!= (const Quat &q) const |
|
|
static constexpr Size | static_size = 4 |
|
static constexpr Size | total_size = 4 |
| Compile-time constant specifying the number of scalars within this vector (equivalent to the size() method) More...
|
|
static constexpr Size | spatial_dimensions = 3 |
| Compile-time constant specifying the number of dimensions of space (NOT equivalent to total_size for quaternions) More...
|
|
static Quat | identity () |
|
static auto | createQuaterFromFrame (const Vec3 &lox, const Vec3 &loy, const Vec3 &loz) -> Quat |
|
static auto | createFromRotationVector (const Vec3 &a) -> Quat |
| Create using rotation vector (axis*angle) given in parent coordinates. More...
|
|
static auto | createQuaterFromEuler (const Vec3 &v, EulerOrder order=EulerOrder::ZYX) -> Quat |
|
static auto | fromEuler (Real alpha, Real beta, Real gamma, EulerOrder order=EulerOrder::ZYX) -> Quat |
| Create a quaternion from Euler angles. More...
|
|
static auto | createFromRotationVector (Real a0, Real a1, Real a2) -> Quat |
| Create using the entries of a rotation vector (axis*angle) given in parent coordinates. More...
|
|
static auto | set (const Vec3 &a) |
| Create using rotation vector (axis*angle) given in parent coordinates. More...
|
|
static auto | set (Real a0, Real a1, Real a2) |
| Create using using the entries of a rotation vector (axis*angle) given in parent coordinates. More...
|
|
static auto | quatDiff (Quat a, const Quat &b) -> Quat |
| Return the quaternion resulting of the movement between 2 quaternions. More...
|
|
static auto | angularDisplacement (const Quat &a, const Quat &b) -> Vec3 |
| Return the eulerian vector resulting of the movement between 2 quaternions. More...
|
|
static Size | size () |
|