Structure

simd_quatf

A single-precision quaternion.

Declaration

struct simd_quatf

Topics

Initializers

init()

Creates a new quaternion.

init(vector: simd_float4)

Creates a new quaternion from the specified vector.

init(simd_float4x4)

Creates a new quaternion from the specified 4 x 4 rotation matrix.

init(simd_float3x3)

Creates a new quaternion from the specified 3 x 3 rotation matrix.

init(angle: Float, axis: SIMD3<Float>)

Creates a new quaternion with an action that's a specified rotation about a specified axis.

init(from: SIMD3<Float>, to: SIMD3<Float>)

Creates a new quaternion with an action that's a rotation between two vectors.

init(ix: Float, iy: Float, iz: Float, r: Float)

Creates a new quaternion from the specified imaginary and real parts.

init(real: Float, imag: SIMD3<Float>)

Creates a new quaternion from the specified real and imaginary parts.

Quaternion Properties

var angle: Float

The angle, in radians, by which the quaternion's action rotates.

var axis: SIMD3<Float>

The normalized axis about which the quaternion's action rotates.

var conjugate: simd_quatf

The conjugate of the quaternion.

var imag: SIMD3<Float>

The imaginary part of the quaternion.

var real: Float

The real part of the quaternion.

var inverse: simd_quatf

The inverse of the quaternion.

var length: Float

The length of the quaternion.

var normalized: simd_quatf

The unit quaternion of the quaternion.

var vector: simd_float4

The underlying vector of the quaternion.

var debugDescription: String

A representation of the quaternion that's suitable for debugging.

Quaternion Creation Functions

func simd_quaternion(Float, Float, Float, Float) -> simd_quatf

Returns a new quaternion from 4 scalar values.

func simd_quaternion(Float, simd_float3) -> simd_quatf

Returns a new quaternion from a scalar value and a three-element vector.

func simd_quaternion(UnsafePointer<Float>!) -> simd_quatf

Returns a new quaternion from a pointer to scalar values.

func simd_quaternion(simd_float3, simd_float3) -> simd_quatf

Returns a new quaternion from 2 three-element vectors.

func simd_quaternion(simd_float3x3) -> simd_quatf

Returns a new quaternion from a 3 x 3 matrix.

func simd_quaternion(simd_float4) -> simd_quatf

Returns a new quaternion from a four-element vector.

func simd_quaternion(simd_float4x4) -> simd_quatf

Returns a new quaternion from a 4 x 4 matrix.

Math Functions

func simd_add(simd_quatf, simd_quatf) -> simd_quatf

Returns the sum of two quaternions.

func simd_mul(simd_quatf, simd_quatf) -> simd_quatf

Returns the product of two quaternions.

func simd_sub(simd_quatf, simd_quatf) -> simd_quatf

Returns the difference between two quaternions.

Quaternion Functions

func simd_act(simd_quatf, simd_float3) -> simd_float3

Returns a vector rotated by a quaternion.

func simd_angle(simd_quatf) -> Float

Returns the angle by which a quaternion rotates.

func simd_axis(simd_quatf) -> simd_float3

Returns the axis about which a quaternion rotates.

func simd_bezier(simd_quatf, simd_quatf, simd_quatf, simd_quatf, Float) -> simd_quatf

Returns the spherical cubic Bezier interpolation between quaternions.

func simd_conjugate(simd_quatf) -> simd_quatf

Returns the conjugate of a quaternion.

func simd_imag(simd_quatf) -> simd_float3

Returns the imaginary (vector) part of a quaternion.

func simd_negate(simd_quatf) -> simd_quatf

Returns the negation of a quaternion.

func simd_real(simd_quatf) -> Float

Returns the real (scalar) part of a quaternion.

func simd_slerp(simd_quatf, simd_quatf, Float) -> simd_quatf

Returns a spherical linearly interpolated value along the shortest arc between two quaternions.

func simd_slerp_longest(simd_quatf, simd_quatf, Float) -> simd_quatf

Returns a spherical linearly interpolated value along the longest arc between two quaternions.

func simd_spline(simd_quatf, simd_quatf, simd_quatf, simd_quatf, Float) -> simd_quatf

Returns an interpolated value between two quaternions along a spherical cubic spline.

Geometry Functions

func simd_dot(simd_quatf, simd_quatf) -> Float

Returns the dot product of two quaternions.

func simd_length(simd_quatf) -> Float

Returns the length of a quaternion.

func simd_normalize(simd_quatf) -> simd_quatf

Returns a quaternion pointing in the same direction as the supplied quaternion with a length of 1.

Inverse Function

func simd_inverse(simd_quatf) -> simd_quatf

Returns the inverse of a quaternion.

Instance Methods

func act(SIMD3<Float>) -> SIMD3<Float>

Returns the specified vector rotated by the quaternion.

Relationships

See Also

Quaternions

Rotating a Cube by Transforming Its Vertices

Rotate a cube through a series of keyframes using quaternion interpolation to transition between them.

struct simd_quatd

A double-precision quaternion.