subtype Vector is Vector_3D;
subtype Quaternion_Rotation is Quaternion_Real;
subtype Matrix_3D is Matrices_3D.Matrix;
subtype Matrix_4D is Matrices_4D.Matrix;
subtype Radiants is Real;
subtype Degrees is Real;
type Rotation_Order is (RPY, RYP, PRY, PYR, YRP, YPR);
Roll_Axis : constant Vector := (x => 1.0, y => 0.0, z => 0.0);
Pitch_Axis : constant Vector := (x => 0.0, y => 0.0, z => 1.0);
Yaw_Axis : constant Vector := (x => 0.0, y => 1.0, z => 0.0);
function To_Rotation
( | Axis | : Vector; |
Rotation_Angle | : Radiants) return Quaternion_Rotation; |
function To_Rotation
( | Roll_Angle, Pitch_Angle, Yaw_Angle | : Radiants) return Quaternion_Rotation; |
function To_Rotation
( | Matrix | : Matrix_3D) return Quaternion_Rotation; |
function To_Rotation
( | Matrix | : Matrix_4D) return Quaternion_Rotation; |
function Zero_Rotation return Quaternion_Rotation;
function Inverse
( | Quad | : Quaternion_Rotation) return Quaternion_Rotation; |
function Rotate
( | Current_Rotation, Additional_Rotation | : Quaternion_Rotation) return Quaternion_Rotation; |
function Rotate
( | Current_Rotation | : Quaternion_Rotation; |
Rotation_Axis | : Vector; | |
Rotation_Angle | : Radiants) return Quaternion_Rotation; |
function Rotate
( | Current_Vector | : Vector; |
Apply_Rotation | : Quaternion_Rotation) return Vector; |
function Roll
( | Quad | : Quaternion_Rotation) return Radiants; |
function Pitch
( | Quad | : Quaternion_Rotation) return Radiants; |
function Yaw
( | Quad | : Quaternion_Rotation) return Radiants; |
function To_Matrix_3D
( | Quad | : Quaternion_Rotation) return Matrix_3D; |
function To_Matrix_3D_OpenGL
( | Quad | : Quaternion_Rotation) return Matrix_3D; |
function To_Matrix_4D
( | Quad | : Quaternion_Rotation) return Matrix_4D; |
function To_Matrix_3D_OpenGL
( | Roll_Angle, Pitch_Angle, Yaw_Angle | : Radiants; |
Order | : Rotation_Order := RPY; | |
Column_First | : Boolean := True) return Matrix_3D; |