record TQuaternion

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TQuaternion = record

Description

3D quaternion.

Overview

Fields

X: VectorFloat;
Y: VectorFloat;
Z: VectorFloat;
W: VectorFloat;

Methods

function Angle: VectorFloat;
function Axis: TVector3f;
function Conjugate: TQuaternion;
function Dot(const Quaternion: TQuaternion): VectorFloat;
function Exponentiate(const Exponent: VectorFloat): TQuaternion;
function Length: VectorFloat;
function Normalize: TQuaternion;
class function Rotate(const Axis: TVector3f; const Angle: VectorFloat): TQuaternion; static;
class function RotateInertialToObject(const Heading, Pitch, Bank: VectorFloat): TQuaternion; static;
class function RotateObjectToIntertial(const Heading, Pitch, Bank: VectorFloat): TQuaternion; static;
class function RotateX(const Angle: VectorFloat): TQuaternion; static;
class function RotateY(const Angle: VectorFloat): TQuaternion; static;
class function RotateZ(const Angle: VectorFloat): TQuaternion; static;
function Slerp(const Quaternion: TQuaternion; const Theta: VectorFloat): TQuaternion;

Description

Fields

X: VectorFloat;

Individual quaternion values.

Y: VectorFloat;

Individual quaternion values.

Z: VectorFloat;

Individual quaternion values.

W: VectorFloat;

Individual quaternion values.

Methods

function Angle: VectorFloat;

Returns rotational angle "theta" that is present in current quaternion.

function Axis: TVector3f;

Returns rotational axis that is present in current quaternion.

function Conjugate: TQuaternion;

Computes quaternion's conjugate. The resulting quaternion has opposite rotation to the original quaternion.

function Dot(const Quaternion: TQuaternion): VectorFloat;

Computes the dot product of two given quaternions.

function Exponentiate(const Exponent: VectorFloat): TQuaternion;

Computes exponentiation of the given quaternion.

function Length: VectorFloat;

Returns the magnitude of current quaternion.

function Normalize: TQuaternion;

Normalizes the current quaternion. Note that normally quaternions are always normalized (of course, within limits of numerical precision). This function is provided mainly to combat floating point "error creep", which occurs after many successive quaternion operations.

class function Rotate(const Axis: TVector3f; const Angle: VectorFloat): TQuaternion; static;

Creates 3D quaternion containing rotation around an arbitrary axis with given angle (in radians).

class function RotateInertialToObject(const Heading, Pitch, Bank: VectorFloat): TQuaternion; static;

Creates 3D quaternion setup to perform Inertial-To-Object rotation using the angles specified in Euler format.

class function RotateObjectToIntertial(const Heading, Pitch, Bank: VectorFloat): TQuaternion; static;

Creates 3D quaternion setup to perform Object-To-Inertial rotation using the angles specified in Euler format.

class function RotateX(const Angle: VectorFloat): TQuaternion; static;

Creates 3D quaternion containing rotation around X axis with given angle (in radians).

class function RotateY(const Angle: VectorFloat): TQuaternion; static;

Creates 3D quaternion containing rotation around Y axis with given angle (in radians).

class function RotateZ(const Angle: VectorFloat): TQuaternion; static;

Creates 3D quaternion containing rotation around Z axis with given angle (in radians).

function Slerp(const Quaternion: TQuaternion; const Theta: VectorFloat): TQuaternion;

Applies spherical linear interpolation between current and given quaternions.

Parameters
Quaternion
Destination quaternion to be used in the interpolation
Theta
The mixture of the two quaternions with range of [0..1].

Copyright © 2000 - 2017 Yuriy Kotsarenko. Help files generated by PasDoc.