Describe a rotation using Euler angles.
The contents of the Graphene.Euler.Graphene_Euler_T structure are private and should never be accessed directly.
function Equal
(Self : not null access Graphene_Euler_T;
B : not null access Graphene_Euler_T) return Boolean
Checks if two Graphene.Euler.Graphene_Euler_T are equal. Since: gtk+ 1.2
a Graphene.Euler.Graphene_Euler_T
true if the two Graphene.Euler.Graphene_Euler_T are equal
procedure Free (Self : not null access Graphene_Euler_T)
Frees the resources allocated by graphene_euler_alloc. Since: gtk+ 1.2
function From_Object_Free
(B : not null access Graphene_Euler_T) return Graphene_Euler_T
Return the underlying object and free the pointer. This is meant to be used internally by GtkAda, and should not in general be called by user code.
function Get_Alpha
(Self : not null access Graphene_Euler_T) return Interfaces.C.C_float
Retrieves the first component of the Euler angle vector, depending on the order of rotation. See also: Graphene.Euler.Get_X Since: gtk+ 1.10
the first component of the Euler angle vector, in radians
function Get_Beta
(Self : not null access Graphene_Euler_T) return Interfaces.C.C_float
Retrieves the second component of the Euler angle vector, depending on the order of rotation. See also: Graphene.Euler.Get_Y Since: gtk+ 1.10
the second component of the Euler angle vector, in radians
function Get_Gamma
(Self : not null access Graphene_Euler_T) return Interfaces.C.C_float
Retrieves the third component of the Euler angle vector, depending on the order of rotation. See also: Graphene.Euler.Get_Z Since: gtk+ 1.10
the third component of the Euler angle vector, in radians
function Get_Order
(Self : not null access Graphene_Euler_T)
return graphene_euler_order_t
Retrieves the order used to apply the rotations described in the Graphene.Euler.Graphene_Euler_T structure, when converting to and from other structures, like Graphene.Quaternion.Graphene_Quaternion_T and Graphene.Matrix.Graphene_Matrix_T. This function does not return the Graphene.Euler.Graphene_Euler_Order_Default enumeration value; it will return the effective order of rotation instead. Since: gtk+ 1.2
the order used to apply the rotations
function Get_Type return Glib.GType
function Get_X
(Self : not null access Graphene_Euler_T) return Interfaces.C.C_float
Retrieves the rotation angle on the X axis, in degrees. Since: gtk+ 1.2
the rotation angle
function Get_Y
(Self : not null access Graphene_Euler_T) return Interfaces.C.C_float
Retrieves the rotation angle on the Y axis, in degrees. Since: gtk+ 1.2
the rotation angle
function Get_Z
(Self : not null access Graphene_Euler_T) return Interfaces.C.C_float
Retrieves the rotation angle on the Z axis, in degrees. Since: gtk+ 1.2
the rotation angle
type graphene_euler_order_t is (
Graphene_Euler_Order_Default,
Graphene_Euler_Order_Xyz,
Graphene_Euler_Order_Yzx,
Graphene_Euler_Order_Zxy,
Graphene_Euler_Order_Xzy,
Graphene_Euler_Order_Yxz,
Graphene_Euler_Order_Zyx,
Graphene_Euler_Order_Sxyz,
…,
Graphene_Euler_Order_Rzyz);
Specify the order of the rotations on each axis.
The Graphene.Euler.Graphene_Euler_Order_Default value is special, and is used as an alias for one of the other orders.
package graphene_euler_order_t_Properties is
new Generic_Internal_Discrete_Property (graphene_euler_order_t);
type Graphene_Euler_T is record
Angles : Graphene.Vec3.Graphene_Vec3_T;
Order : graphene_euler_order_t;
end record;
Describe a rotation using Euler angles.
The contents of the Graphene.Euler.Graphene_Euler_T structure are private and should never be accessed directly.
function Init
(Self : not null access Graphene_Euler_T;
X : Interfaces.C.C_float;
Y : Interfaces.C.C_float;
Z : Interfaces.C.C_float) return access Graphene_Euler_T
Initializes a Graphene.Euler.Graphene_Euler_T using the given angles. The order of the rotations is Graphene.Euler.Graphene_Euler_Order_Default. Since: gtk+ 1.2
rotation angle on the X axis, in degrees
rotation angle on the Y axis, in degrees
rotation angle on the Z axis, in degrees
the initialized Graphene.Euler.Graphene_Euler_T
function Init_From_Euler
(Self : not null access Graphene_Euler_T;
Src : access Graphene_Euler_T) return access Graphene_Euler_T
Initializes a Graphene.Euler.Graphene_Euler_T using the angles and order of another Graphene.Euler.Graphene_Euler_T. If the Graphene.Euler.Graphene_Euler_T Src is null, this function is equivalent to calling Graphene.Euler.Init with all angles set to 0. Since: gtk+ 1.2
a Graphene.Euler.Graphene_Euler_T
the initialized Graphene.Euler.Graphene_Euler_T
function Init_From_Matrix
(Self : not null access Graphene_Euler_T;
M : access Graphene.Matrix.Graphene_Matrix_T;
Order : graphene_euler_order_t) return access Graphene_Euler_T
Initializes a Graphene.Euler.Graphene_Euler_T using the given rotation matrix. If the Graphene.Matrix.Graphene_Matrix_T M is null, the Graphene.Euler.Graphene_Euler_T will be initialized with all angles set to 0. Since: gtk+ 1.2
a rotation matrix
the order used to apply the rotations
the initialized Graphene.Euler.Graphene_Euler_T
function Init_From_Quaternion
(Self : not null access Graphene_Euler_T;
Q : access Graphene.Quaternion.Graphene_Quaternion_T;
Order : graphene_euler_order_t) return access Graphene_Euler_T
Initializes a Graphene.Euler.Graphene_Euler_T using the given normalized quaternion. If the Graphene.Quaternion.Graphene_Quaternion_T Q is null, the Graphene.Euler.Graphene_Euler_T will be initialized with all angles set to 0. Since: gtk+ 1.2
a normalized Graphene.Quaternion.Graphene_Quaternion_T
the order used to apply the rotations
the initialized Graphene.Euler.Graphene_Euler_T
function Init_From_Radians
(Self : not null access Graphene_Euler_T;
X : Interfaces.C.C_float;
Y : Interfaces.C.C_float;
Z : Interfaces.C.C_float;
Order : graphene_euler_order_t) return access Graphene_Euler_T
Initializes a Graphene.Euler.Graphene_Euler_T using the given angles and order of rotation. Since: gtk+ 1.10
rotation angle on the X axis, in radians
rotation angle on the Y axis, in radians
rotation angle on the Z axis, in radians
order of rotations
the initialized Graphene.Euler.Graphene_Euler_T
function Init_From_Vec3
(Self : not null access Graphene_Euler_T;
V : access Graphene.Vec3.Graphene_Vec3_T;
Order : graphene_euler_order_t) return access Graphene_Euler_T
Initializes a Graphene.Euler.Graphene_Euler_T using the angles contained in a Graphene.Vec3.Graphene_Vec3_T. If the Graphene.Vec3.Graphene_Vec3_T V is null, the Graphene.Euler.Graphene_Euler_T will be initialized with all angles set to 0. Since: gtk+ 1.2
a Graphene.Vec3.Graphene_Vec3_T containing the rotation angles in degrees
the order used to apply the rotations
the initialized Graphene.Euler.Graphene_Euler_T
function Init_With_Order
(Self : not null access Graphene_Euler_T;
X : Interfaces.C.C_float;
Y : Interfaces.C.C_float;
Z : Interfaces.C.C_float;
Order : graphene_euler_order_t) return access Graphene_Euler_T
Initializes a Graphene.Euler.Graphene_Euler_T with the given angles and Order. Since: gtk+ 1.2
rotation angle on the X axis, in degrees
rotation angle on the Y axis, in degrees
rotation angle on the Z axis, in degrees
the order used to apply the rotations
the initialized Graphene.Euler.Graphene_Euler_T
type Property_graphene_euler_order_t is new graphene_euler_order_t_Properties.Property;
procedure Reorder
(Self : not null access Graphene_Euler_T;
Order : graphene_euler_order_t;
Res : not null access Graphene_Euler_T)
Reorders a Graphene.Euler.Graphene_Euler_T using Order. This function is equivalent to creating a Graphene.Quaternion.Graphene_Quaternion_T from the given Graphene.Euler.Graphene_Euler_T, and then converting the quaternion into another Graphene.Euler.Graphene_Euler_T. Since: gtk+ 1.2
the new order
return location for the reordered Graphene.Euler.Graphene_Euler_T
procedure To_Matrix
(Self : not null access Graphene_Euler_T;
Res : not null access Graphene.Matrix.Graphene_Matrix_T)
Converts a Graphene.Euler.Graphene_Euler_T into a transformation matrix expressing the extrinsic composition of rotations described by the Euler angles. The rotations are applied over the reference frame axes in the order associated with the Graphene.Euler.Graphene_Euler_T; for instance, if the order used to initialize E is Graphene.Euler.Graphene_Euler_Order_Xyz:
the first rotation moves the body around the X axis with an angle Ï
the second rotation moves the body around the Y axis with an angle of
Ï * the third rotation moves the body around the Z axis with an angle of Ï The rotation sign convention is right-handed, to preserve compatibility between Euler-based, quaternion-based, and angle-axis-based rotations. Since: gtk+ 1.2
return location for a Graphene.Matrix.Graphene_Matrix_T
procedure To_Quaternion
(Self : not null access Graphene_Euler_T;
Res : not null access Graphene.Quaternion.Graphene_Quaternion_T)
Converts a Graphene.Euler.Graphene_Euler_T into a Graphene.Quaternion.Graphene_Quaternion_T. Since: gtk+ 1.10
return location for a Graphene.Quaternion.Graphene_Quaternion_T
procedure To_Vec3
(Self : not null access Graphene_Euler_T;
Res : not null access Graphene.Vec3.Graphene_Vec3_T)
Retrieves the angles of a Graphene.Euler.Graphene_Euler_T and initializes a Graphene.Vec3.Graphene_Vec3_T with them. Since: gtk+ 1.2
return location for a Graphene.Vec3.Graphene_Vec3_T