static void gimp_vectors_rotate (GimpItem *item, GimpContext *context, GimpRotationType rotate_type, gdouble center_x, gdouble center_y, gboolean clip_result) { GimpVectors *vectors = GIMP_VECTORS (item); GList *list; GimpMatrix3 matrix; gimp_matrix3_identity (&matrix); gimp_transform_matrix_rotate (&matrix, rotate_type, center_x, center_y); gimp_vectors_freeze (vectors); gimp_image_undo_push_vectors_mod (gimp_item_get_image (item), _("Rotate Path"), vectors); for (list = vectors->strokes; list; list = g_list_next (list)) { GimpStroke *stroke = list->data; gimp_stroke_transform (stroke, &matrix); } gimp_vectors_thaw (vectors); }
static gboolean gimp_text_layer_transform_rotate (GimpTextLayer *layer, GimpRotationType rotate_type, gdouble center_x, gdouble center_y) { GimpMatrix3 matrix; if (! gimp_text_layer_get_transformation (layer, &matrix)) return FALSE; gimp_transform_matrix_rotate (&matrix, rotate_type, center_x, center_y); return gimp_text_layer_set_transformation (layer, &matrix); }