| Description | uses | Classes, Interfaces and Objects | Functions and Procedures | Types | Constants | Variables |
This unit contains quaternion math, plus some needed matrix procedure
| Name | Description |
|---|---|
record TQuaternion |
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; |
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); |
| Name | Description |
|---|---|
TQuaternionPtr=^TQuaternion; |
|
PMatrix3=^TMatrix3; |
|
TMatrix3=array[0..2,0..2]of single; |
| Name | Description |
|---|---|
epsilon=1e-12; |