![]() |
Topaz 5.0
Topaz Game Engine
|
Quaternion. Represents a rotation in 3D space.
#include "quaternion.hpp"
Public Member Functions | |
| quat (tz::v4f vec) | |
| Create a quaternion directly from xyzw components. | |
| tz::m4f | matrix () const |
| Create a rotation matrix that transforms identically to the quaternion. | |
| quat | inverse () const |
| Create a quaternion that causes the inverse transformation. Such that the product of this and the result are the identity quaternion. | |
| quat | combine (const quat &rhs) const |
| Combine one quaternion with another, producing a result equal to applying both rotations. | |
| tz::v3f | rotate (tz::v3f pos) const |
| Rotate a 3D position by this quaternion. | |
| quat | normalise () const |
| Retrieve a normalised copy of the quaternion. | |
| quat | slerp (const quat &rhs, float factor) const |
| Retrieve a quaternion that represents a spherical interpolation between this quaternion and another, based upon a given factor. | |
Public Member Functions inherited from tz::vector< float, 4 > | |
| constexpr | vector (Ts &&... ts) |
| constexpr | vector (std::array< float, N > data) |
| vector ()=default | |
| const float & | operator[] (std::size_t idx) const |
| float & | operator[] (std::size_t idx) |
| vector< float, N > & | operator+= (const vector< float, N > &rhs) |
| Add one vector to another. | |
| vector< float, N > & | operator-= (const vector< float, N > &rhs) |
| Subtract one vector from another. | |
| vector< float, N > & | operator*= (const vector< float, N > &rhs) |
| Multiply one vector with another. | |
| vector< float, N > & | operator/= (const vector< float, N > &rhs) |
| Divide one vector by another. | |
| vector< float, N > | operator+ (const vector< float, N > &rhs) const |
| Add one vector to another. | |
| vector< float, N > | operator- (const vector< float, N > &rhs) const |
| Subtract one vector from another. | |
| vector< float, N > | operator* (const vector< float, N > &rhs) const |
| Multiply one vector with another. | |
| vector< float, N > | operator/ (const vector< float, N > &rhs) const |
| Divide one vector by another. | |
| float | length () const |
| Retrieve the magnitude of the vector. | |
| float | dot (const vector< float, N > &rhs) const |
| Retrieve the dot (scalar) product of two vectors. | |
| vector< float, N > | cross (const vector< float, N > &rhs) const |
| Retrieve a cross product between two three-dimensional vectors. | |
| bool | operator== (const vector< float, N > &rhs) const=default |
| Compare two vectors. Two vectors are equal if all of their components are exactly equal. | |
| constexpr | vector (Ts &&... ts) |
| constexpr | vector (std::array< float, N > data) |
| vector ()=default | |
| const float & | operator[] (std::size_t idx) const |
| float & | operator[] (std::size_t idx) |
| vector< float, N > & | operator*= (const vector< float, N > &rhs) |
| Multiply one vector with another. | |
| vector< float, N > & | operator/= (const vector< float, N > &rhs) |
| Divide one vector by another. | |
| vector< float, N > | operator* (const vector< float, N > &rhs) const |
| Multiply one vector with another. | |
| vector< float, N > | operator/ (const vector< float, N > &rhs) const |
| Divide one vector by another. | |
| vector< float, N > & | operator+= (const vector< float, N > &rhs) |
| Add one vector to another. | |
| vector< float, N > & | operator-= (const vector< float, N > &rhs) |
| Subtract one vector from another. | |
| vector< float, N > | operator+ (const vector< float, N > &rhs) const |
| Add one vector to another. | |
| vector< float, N > | operator- (const vector< float, N > &rhs) const |
| Subtract one vector from another. | |
| float | length () const |
| Retrieve the magnitude of the vector. | |
| float | dot (const vector< float, N > &rhs) const |
| Retrieve the dot (scalar) product of two vectors. | |
| vector< float, N > | cross (const vector< float, N > &rhs) const |
| Retrieve a cross product between two three-dimensional vectors. | |
| bool | operator== (const vector< float, N > &rhs) const=default |
| Compare two vectors. Two vectors are equal if all of their components are exactly equal. | |
Static Public Member Functions | |
| static quat | iden () |
| Retrieve the identity quaternion, that is - represents no transformation. | |
| static quat | from_axis_angle (tz::v3f axis, float angle) |
| Create a quaternion that represents a rotation about a certain axis. | |
| static quat | from_euler_angles (tz::v3f euler_angles) |
| Create a quaternion that represents a rotation equivalent to the provided euler angles. | |
Static Public Member Functions inherited from tz::vector< float, 4 > | |
| static constexpr vector< float, N > | zero () |
| Retrieve a vector filled with zeroes. | |
| static constexpr vector< float, N > | filled (float t) |
| Retrieve a vector filled with the given value. | |
| static constexpr vector< float, N > | zero () |
| Retrieve a vector filled with zeroes. | |
| static constexpr vector< float, N > | filled (float t) |
| Retrieve a vector filled with the given value. | |
| tz::quat::quat | ( | tz::v4f | vec | ) |
Create a quaternion directly from xyzw components.
|
inlinestatic |
Retrieve the identity quaternion, that is - represents no transformation.
Create a quaternion that represents a rotation about a certain axis.
Create a quaternion that represents a rotation equivalent to the provided euler angles.
| tz::m4f tz::quat::matrix | ( | ) | const |
Create a rotation matrix that transforms identically to the quaternion.
| quat tz::quat::inverse | ( | ) | const |
Create a quaternion that causes the inverse transformation. Such that the product of this and the result are the identity quaternion.
Combine one quaternion with another, producing a result equal to applying both rotations.
| quat tz::quat::normalise | ( | ) | const |
Retrieve a normalised copy of the quaternion.