|
| | quat (f32x4 xyzw=identity) noexcept |
| | Creates a new identity SIMD 32bit floating point quaternion structure.
|
| | quat (float x, float y, float z, float w) noexcept |
| | Creates a new SIMD 32bit floating point quaternion structure.
|
| | quat (float angle, f32x4 axis) noexcept |
| | Creates a new SIMD quaternion structure from the angle and axis. (In radians).
|
| quat | operator* (quat q) const noexcept |
| | Rotates this SIMD quaternion by the specified one.
|
| f32x4 | operator* (f32x4 v) const noexcept |
| | Rotates 3D vector by this SIMD quaternion.
|
| quat & | operator*= (quat v) noexcept |
| | Rotates this SIMD quaternion by the specified one.
|
|
float | extractPitch () const noexcept |
| | Extracts SIMD quaternion rotation around X axis. (In radians).
|
|
float | extractYaw () const noexcept |
| | Extracts SIMD quaternion around Y axis. (In radians).
|
|
float | extractRoll () const noexcept |
| | Extracts SIMD quaternion around Z axis. (In radians).
|
|
f32x4 | extractEulerAngles () const noexcept |
| | Calculates SIMD quaternion euler angles. (In radians).
|
| void | loadAligned (const float *v) noexcept |
| | Loads SIMD 4 component 32bit floating point aligned vector values.
|
| void | store (float *v) noexcept |
| | Stores SIMD 4 component 32bit floating point unaligned vector values.
|
| void | storeAligned (float *v) noexcept |
| | Stores SIMD 4 component 32bit floating point aligned vector values.
|
|
float | getX () const noexcept |
| | Returns SIMD vector first component value.
|
|
float | getY () const noexcept |
| | Returns SIMD vector second component value.
|
|
float | getZ () const noexcept |
| | Returns SIMD vector third component value.
|
|
float | getW () const noexcept |
| | Returns SIMD vector fourth component value.
|
| void | setX (float value) noexcept |
| | Sets SIMD vector first component value.
|
| void | setY (float value) noexcept |
| | Sets SIMD vector second component value.
|
| void | setZ (float value) noexcept |
| | Sets SIMD vector third component value.
|
| void | setW (float value) noexcept |
| | Sets SIMD vector fourth component value.
|
| void | fixW () noexcept |
| | Sets SIMD vector Z component value to the W component.
|
| template<uint32 X, uint32 Y, uint32 Z, uint32 W = SwU> |
| f32x4 | swizzle () const noexcept |
| | Swizzles SIMD vector components.
|
|
f32x4 | splatX () const noexcept |
|
f32x4 | splatY () const noexcept |
|
f32x4 | splatZ () const noexcept |
|
f32x4 | splatW () const noexcept |
| template<int X, int Y, int Z, int W = 1> |
| f32x4 | flipSign () const noexcept |
| | Flips sign of the SIMD vector components.
|
| float & | operator[] (psize i) noexcept |
| | Returns SIMD vector component by index.
|
| float | operator[] (psize i) const noexcept |
| | Returns SIMD vector component by index.
|
|
| operator u32x4 () const noexcept |
| | Returns as 4 component unsigned integer SIMD vector.
|
|
| operator i32x4 () const noexcept |
| | Returns as 4 component signed integer SIMD vector.
|
|
| operator float4 () const noexcept |
| | Returns SIMD vector as 4 component floating point vector. (xyzw).
|
|
| operator float3 () const noexcept |
| | Returns SIMD vector as 3 component floating point vector. (xyz).
|
|
| operator float2 () const noexcept |
| | Returns SIMD vector as 2 component floating point vector. (xy).
|
|
| operator float () const noexcept |
| | Returns SIMD first vector component value. (x).
|
|
f32x4 | operator+ (f32x4 v) const noexcept |
|
f32x4 | operator+ (float n) const noexcept |
|
f32x4 | operator- (f32x4 v) const noexcept |
|
f32x4 | operator- () const noexcept |
|
f32x4 | operator- (float n) const noexcept |
|
f32x4 | operator* (float n) const noexcept |
|
f32x4 | operator/ (f32x4 v) const noexcept |
|
f32x4 | operator/ (float n) const noexcept |
|
f32x4 | operator^ (f32x4 v) const noexcept |
|
f32x4 | operator^ (float n) const noexcept |
|
f32x4 & | operator+= (f32x4 v) noexcept |
|
f32x4 & | operator+= (float n) noexcept |
|
f32x4 & | operator-= (f32x4 v) noexcept |
|
f32x4 & | operator-= (float n) noexcept |
|
f32x4 & | operator*= (f32x4 v) noexcept |
|
f32x4 & | operator*= (float n) noexcept |
|
f32x4 & | operator/= (f32x4 v) noexcept |
|
f32x4 & | operator/= (float n) noexcept |
|
f32x4 & | operator^= (f32x4 v) noexcept |
|
f32x4 & | operator^= (float n) noexcept |
|
bool | operator== (f32x4 v) const noexcept |
|
bool | operator== (float n) const noexcept |
|
bool | operator!= (f32x4 v) const noexcept |
|
bool | operator!= (float n) const noexcept |
|
u32x4 | operator< (f32x4 v) const noexcept |
|
u32x4 | operator< (float n) const noexcept |
|
u32x4 | operator> (f32x4 v) const noexcept |
|
u32x4 | operator> (float n) const noexcept |
|
u32x4 | operator<= (f32x4 v) const noexcept |
|
u32x4 | operator<= (float n) const noexcept |
|
u32x4 | operator>= (f32x4 v) const noexcept |
|
u32x4 | operator>= (float n) const noexcept |
|
|
static const quat | identity = quat(0.0f, 0.0f, 0.0f, 1.0f) |
|
static const f32x4 | zero = f32x4(0.0f) |
|
static const f32x4 | one = f32x4(1.0f) |
|
static const f32x4 | minusOne = f32x4(-1.0f) |
|
static const f32x4 | min = f32x4(FLT_MIN) |
|
static const f32x4 | minusMin = f32x4(-FLT_MIN) |
|
static const f32x4 | max = f32x4(FLT_MAX) |
|
static const f32x4 | minusMax = f32x4(-FLT_MAX) |
|
static const f32x4 | epsilon = f32x4(FLT_EPSILON) |
|
static const f32x4 | inf = f32x4(INFINITY) |
|
static const f32x4 | minusInf = f32x4(-INFINITY) |
|
static const f32x4 | nan = f32x4(NAN) |
|
static const f32x4 | left = f32x4(-1.0f, 0.0f, 0.0f, 0.0f) |
|
static const f32x4 | right = f32x4(1.0f, 0.0f, 0.0f, 0.0f) |
|
static const f32x4 | bottom = f32x4(0.0f, -1.0f, 0.0f, 0.0f) |
|
static const f32x4 | top = f32x4(0.0f, 1.0f, 0.0f, 0.0f) |
|
static const f32x4 | back = f32x4(0.0f, 0.0f, -1.0f, 0.0f) |
|
static const f32x4 | front = f32x4(0.0f, 0.0f, 1.0f, 0.0f) |
SIMD 32bit floating point quaternion rotation container. (In 3D space).
Represents rotation using complex numbers, avoiding gimbal lock problem.