
NO_TITLE
Gnome::Graphene::N-Euler
Description
Describe a rotation using Euler angles.
The contents of the Gnome::Graphene::N-Euler structure are private and should never be accessed directly.
Class initialization
new
:native-object
Create an object using a native object from elsewhere. See also Gnome::N::TopLevelSupportClass.
multi method new ( N-Object :$native-object! )
alloc
Allocates a new Gnome::Graphene::N-Euler.
The contents of the returned structure are undefined.
method alloc ( --> Gnome::Graphene::Euler \)
Methods
equal
Checks if two Gnome::Graphene::N-Euler are equal.
method equal ( N-Object $b --> gboolean )
$b; a Gnome::Graphene::N-Euler
Return value; true if the two Gnome::Graphene::N-Euler are equal.
free
Frees the resources allocated by .alloc()
.
method free ( )
get-alpha
Retrieves the first component of the Euler angle vector, depending on the order of rotation.
See also: .get-x()
method get-alpha (--> Num )
Return value; the first component of the Euler angle vector, in radians.
get-beta
Retrieves the second component of the Euler angle vector, depending on the order of rotation.
See also: .get-y()
method get-beta (--> Num )
Return value; the second component of the Euler angle vector, in radians.
get-gamma
Retrieves the third component of the Euler angle vector, depending on the order of rotation.
See also: .get-z()
method get-gamma (--> Num )
Return value; the third component of the Euler angle vector, in radians.
get-order
Retrieves the order used to apply the rotations described in the Gnome::Graphene::N-Euler structure, when converting to and from other structures, like Gnome::Graphene::N-Quaternion and Gnome::Graphene::N-Matrix.
This function does not return the GRAPHENE_EULER_ORDER_DEFAULT
enumeration value; it will return the effective order of rotation instead.
method get-order (--> graphene_euler_order_t )
Return value; the order used to apply the rotations.
get-x
Retrieves the rotation angle on the X axis, in degrees.
method get-x (--> Num )
Return value; the rotation angle.
get-y
Retrieves the rotation angle on the Y axis, in degrees.
method get-y (--> Num )
Return value; the rotation angle.
get-z
Retrieves the rotation angle on the Z axis, in degrees.
method get-z (--> Num )
Return value; the rotation angle.
init
Initializes a Gnome::Graphene::N-Euler using the given angles.
The order of the rotations is GRAPHENE_EULER_ORDER_DEFAULT
.
method init ( Num() $x, Num() $y, Num() $z --> N-Object )
$x; rotation angle on the X axis, in degrees.
$y; rotation angle on the Y axis, in degrees.
$z; rotation angle on the Z axis, in degrees.
Return value; the initialized Gnome::Graphene::N-Euler.
init-from-euler
Initializes a Gnome::Graphene::N-Euler using the angles and order of another Gnome::Graphene::N-Euler.
If the Gnome::Graphene::N-Euler $src
is undefined, this function is equivalent to calling .init()
with all angles set to 0.
method init-from-euler ( N-Object $src --> N-Object )
$src; a Gnome::Graphene::N-Euler
Return value; the initialized Gnome::Graphene::N-Euler.
init-from-matrix
Initializes a Gnome::Graphene::N-Euler using the given rotation matrix.
If the Gnome::Graphene::N-Matrix $m
is undefined, the Gnome::Graphene::N-Euler will be initialized with all angles set to 0.
method init-from-matrix ( N-Object $m, graphene_euler_order_t $order --> N-Object )
$m; a rotation matrix
$order; the order used to apply the rotations.
Return value; the initialized Gnome::Graphene::N-Euler.
init-from-quaternion
Initializes a Gnome::Graphene::N-Euler using the given normalized quaternion.
If the Gnome::Graphene::N-Quaternion $q
is undefined, the Gnome::Graphene::N-Euler will be initialized with all angles set to 0.
method init-from-quaternion ( N-Object $q, graphene_euler_order_t $order --> N-Object )
$q; a normalized Gnome::Graphene::N-Quaternion
$order; the order used to apply the rotations.
Return value; the initialized Gnome::Graphene::N-Euler.
init-from-radians
Initializes a Gnome::Graphene::N-Euler using the given angles and order of rotation.
method init-from-radians ( Num() $x, Num() $y, Num() $z, graphene_euler_order_t $order --> N-Object )
$x; rotation angle on the X axis, in radians.
$y; rotation angle on the Y axis, in radians.
$z; rotation angle on the Z axis, in radians.
$order; order of rotations.
Return value; the initialized Gnome::Graphene::N-Euler.
init-from-vec3
Initializes a Gnome::Graphene::N-Euler using the angles contained in a graphene_vec3_t.
If the graphene_vec3_t $v
is undefined, the Gnome::Graphene::N-Euler will be initialized with all angles set to 0.
method init-from-vec3 ( N-Object $v, graphene_euler_order_t $order --> N-Object )
$v; a graphene_vec3_t containing the rotation angles in degrees
$order; the order used to apply the rotations.
Return value; the initialized Gnome::Graphene::N-Euler.
init-with-order
Initializes a Gnome::Graphene::N-Euler with the given angles and $order
.
method init-with-order ( Num() $x, Num() $y, Num() $z, graphene_euler_order_t $order --> N-Object )
$x; rotation angle on the X axis, in degrees.
$y; rotation angle on the Y axis, in degrees.
$z; rotation angle on the Z axis, in degrees.
$order; the order used to apply the rotations.
Return value; the initialized Gnome::Graphene::N-Euler.
reorder
Reorders a Gnome::Graphene::N-Euler using $order
.
This function is equivalent to creating a Gnome::Graphene::N-Quaternion from the given Gnome::Graphene::N-Euler, and then converting the quaternion into another Gnome::Graphene::N-Euler.
method reorder ( graphene_euler_order_t $order, N-Object $res )
$order; the new order.
$res; return location for the reordered Gnome::Graphene::N-Euler
to-matrix
Converts a Gnome::Graphene::N-Euler 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 Gnome::Graphene::N-Euler; for instance, if the order used to initialize $e
is 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.
method to-matrix ( N-Object $res )
$res; return location for a Gnome::Graphene::N-Matrix
to-quaternion
Converts a Gnome::Graphene::N-Euler into a Gnome::Graphene::N-Quaternion.
method to-quaternion ( N-Object $res )
$res; return location for a Gnome::Graphene::N-Quaternion
to-vec3
Retrieves the angles of a Gnome::Graphene::N-Euler and initializes a graphene_vec3_t with them.
method to-vec3 ( N-Object $res )
$res; return location for a graphene_vec3_t