mirror of
https://github.com/brl/mutter.git
synced 2025-02-16 21:34:09 +00:00
actor: Add accessors for rotation angles
Given that the rotation transformations are now affected by the pivot point, the Actor class should provide an accessors pair only for the angle of rotation on a given axis. https://bugzilla.gnome.org/show_bug.cgi?id=677853
This commit is contained in:
parent
1fd0f4b9a5
commit
a758cf6d3d
@ -4229,7 +4229,24 @@ clutter_actor_set_rotation_angle_internal (ClutterActor *self,
|
||||
clutter_actor_queue_redraw (self);
|
||||
}
|
||||
|
||||
static inline void
|
||||
/**
|
||||
* clutter_actor_set_rotation_angle:
|
||||
* @self: a #ClutterActor
|
||||
* @axis: the axis to set the angle one
|
||||
* @angle: the angle of rotation, in degrees
|
||||
*
|
||||
* Sets the @angle of rotation of a #ClutterActor on the given @axis.
|
||||
*
|
||||
* This function is a convenience for setting the rotation properties
|
||||
* #ClutterActor:rotation-angle-x, #ClutterActor:rotation-angle-y,
|
||||
* and #ClutterActor:rotation-angle-z.
|
||||
*
|
||||
* The center of rotation is established by the #ClutterActor:pivot-point
|
||||
* property.
|
||||
*
|
||||
* Since: 1.12
|
||||
*/
|
||||
void
|
||||
clutter_actor_set_rotation_angle (ClutterActor *self,
|
||||
ClutterRotateAxis axis,
|
||||
gdouble angle)
|
||||
@ -4238,6 +4255,8 @@ clutter_actor_set_rotation_angle (ClutterActor *self,
|
||||
const double *cur_angle_p = NULL;
|
||||
GParamSpec *pspec = NULL;
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_ACTOR (self));
|
||||
|
||||
info = _clutter_actor_get_transform_info_or_defaults (self);
|
||||
|
||||
switch (axis)
|
||||
@ -4269,6 +4288,51 @@ clutter_actor_set_rotation_angle (ClutterActor *self,
|
||||
clutter_actor_queue_redraw (self);
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_actor_get_rotation_angle:
|
||||
* @self: a #ClutterActor
|
||||
* @axis: the axis of the rotation
|
||||
*
|
||||
* Retrieves the angle of rotation set by clutter_actor_set_rotation_angle().
|
||||
*
|
||||
* Return value: the angle of rotation, in degrees
|
||||
*
|
||||
* Since: 1.12
|
||||
*/
|
||||
gdouble
|
||||
clutter_actor_get_rotation_angle (ClutterActor *self,
|
||||
ClutterRotateAxis axis)
|
||||
{
|
||||
const ClutterTransformInfo *info;
|
||||
gdouble retval;
|
||||
|
||||
g_return_val_if_fail (CLUTTER_IS_ACTOR (self), 0.0);
|
||||
|
||||
info = _clutter_actor_get_transform_info_or_defaults (self);
|
||||
|
||||
switch (axis)
|
||||
{
|
||||
case CLUTTER_X_AXIS:
|
||||
retval = info->rx_angle;
|
||||
break;
|
||||
|
||||
case CLUTTER_Y_AXIS:
|
||||
retval = info->ry_angle;
|
||||
break;
|
||||
|
||||
case CLUTTER_Z_AXIS:
|
||||
retval = info->rz_angle;
|
||||
break;
|
||||
|
||||
default:
|
||||
g_warn_if_reached ();
|
||||
retval = 0.0;
|
||||
break;
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/*< private >
|
||||
* clutter_actor_set_rotation_center_internal:
|
||||
* @self: a #ClutterActor
|
||||
|
@ -633,6 +633,13 @@ CLUTTER_AVAILABLE_IN_1_12
|
||||
void clutter_actor_get_pivot_point (ClutterActor *self,
|
||||
gfloat *pivot_x,
|
||||
gfloat *pivot_y);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
void clutter_actor_set_rotation_angle (ClutterActor *self,
|
||||
ClutterRotateAxis axis,
|
||||
gdouble angle);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
gdouble clutter_actor_get_rotation_angle (ClutterActor *self,
|
||||
ClutterRotateAxis axis);
|
||||
void clutter_actor_set_rotation (ClutterActor *self,
|
||||
ClutterRotateAxis axis,
|
||||
gdouble angle,
|
||||
|
@ -138,6 +138,7 @@ clutter_actor_get_preferred_width
|
||||
clutter_actor_get_previous_sibling
|
||||
clutter_actor_get_reactive
|
||||
clutter_actor_get_request_mode
|
||||
clutter_actor_get_rotation_angle
|
||||
clutter_actor_get_rotation
|
||||
clutter_actor_get_scale
|
||||
clutter_actor_get_scale_center
|
||||
@ -257,6 +258,7 @@ clutter_actor_set_pivot_point
|
||||
clutter_actor_set_position
|
||||
clutter_actor_set_reactive
|
||||
clutter_actor_set_request_mode
|
||||
clutter_actor_set_rotation_angle
|
||||
clutter_actor_set_rotation
|
||||
clutter_actor_set_scale
|
||||
clutter_actor_set_scale_full
|
||||
|
Loading…
x
Reference in New Issue
Block a user