Unit quaternions

DescriptionusesClasses, Interfaces and ObjectsFunctions and ProceduresTypesConstantsVariables

Description

This unit contains quaternion math, plus some needed matrix procedure

uses

Classes, Interfaces and Objects

NameDescription
record TQuaternion  

Functions and Procedures

Overview

procedure Q_Add(var a:TQuaternion; const b:TQuaternion);
function Q_AddN(const a,b:TQuaternion):TQuaternion;
procedure Q_Mult(var a:TQuaternion;const b:TQuaternion);
function Q_MultN(const a,b:TQuaternion):TQuaternion;
procedure Q_Conj(var a:TQuaternion);
function Q_ConjN(const a:TQuaternion):TQuaternion;
function Q_norm(const a:TQuaternion):single;
procedure Q_Inv(var a:TQuaternion);
function Q_InvN(const a:TQuaternion):TQuaternion;
procedure Q_normed(var a:TQuaternion);
procedure Q_Identity(var a:TQuaternion);
function Q_LookAt(const dir, up:TVector3D):TQuaternion;
function matrixLookAt(const dir, up:TVector3D):TMatrix3;
procedure transpose(var m:TMatrix3);
function rotateN(const a:TQuaternion; const v:TVector3D):TVector3D;
procedure rotate(var a:TQuaternion; const v:TVector3D);
function M2Q(const m:TMatrix3):TQuaternion;
procedure Q_GetAxisAngle(const q:TQuaternion; var axisX, axisY, axisZ, rotAngle: single);
procedure Q_SetFromAxisAngle(var q:TQuaternion; angle, xT, yT, zT:single);
procedure Q_SetFromEuler(var q:TQuaternion; xT,yT,zT:single);
function Q_Slerp(q1,q2: TQuaternion; fTime:single):TQuaternion;
function MovePosition(position:TVector3d; direction:TQuaternion; distance:single):TVector3d; overload;
function MovePosition(position:TVector3d; direction:TQuaternion; distance:TVector3d):TVector3d; overload;

Description

function M2Q(const m:TMatrix3):TQuaternion;

 

function matrixLookAt(const dir, up:TVector3D):TMatrix3;

 

function MovePosition(position:TVector3d; direction:TQuaternion; distance:single):TVector3d; overload;

 

function MovePosition(position:TVector3d; direction:TQuaternion; distance:TVector3d):TVector3d; overload;

 

procedure Q_Add(var a:TQuaternion; const b:TQuaternion);

 

function Q_AddN(const a,b:TQuaternion):TQuaternion;

 

procedure Q_Conj(var a:TQuaternion);

 

function Q_ConjN(const a:TQuaternion):TQuaternion;

 

procedure Q_GetAxisAngle(const q:TQuaternion; var axisX, axisY, axisZ, rotAngle: single);

 

procedure Q_Identity(var a:TQuaternion);

 

procedure Q_Inv(var a:TQuaternion);

 

function Q_InvN(const a:TQuaternion):TQuaternion;

 

function Q_LookAt(const dir, up:TVector3D):TQuaternion;

 

procedure Q_Mult(var a:TQuaternion;const b:TQuaternion);

 

function Q_MultN(const a,b:TQuaternion):TQuaternion;

 

function Q_norm(const a:TQuaternion):single;

 

procedure Q_normed(var a:TQuaternion);

 

procedure Q_SetFromAxisAngle(var q:TQuaternion; angle, xT, yT, zT:single);

 

procedure Q_SetFromEuler(var q:TQuaternion; xT,yT,zT:single);

 

function Q_Slerp(q1,q2: TQuaternion; fTime:single):TQuaternion;

 

procedure rotate(var a:TQuaternion; const v:TVector3D);

 

function rotateN(const a:TQuaternion; const v:TVector3D):TVector3D;

 

procedure transpose(var m:TMatrix3);

 

Types

NameDescription
TQuaternionPtr=^TQuaternion;  
PMatrix3=^TMatrix3;  
TMatrix3=array[0..2,0..2]of single;  

Constants

NameDescription
epsilon=1e-12;  

Generated by PasDoc 0.8.8 on 2005-01-20 19:01:21