[grits] Limit rotation to -180 .. 180
- From: Andy Spencer <andys src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grits] Limit rotation to -180 .. 180
- Date: Sat, 2 Jun 2012 22:26:38 +0000 (UTC)
commit 461ca7ead68c77f2745e747f89e29b242a192f4a
Author: Andy Spencer <andy753421 gmail com>
Date: Sun Apr 29 04:13:51 2012 +0000
Limit rotation to -180 .. 180
src/grits-viewer.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/src/grits-viewer.c b/src/grits-viewer.c
index 92f6e86..79765e1 100644
--- a/src/grits-viewer.c
+++ b/src/grits-viewer.c
@@ -61,6 +61,16 @@ static void _grits_viewer_fix_location(GritsViewer *viewer)
viewer->location[2] = ABS(viewer->location[2]);
}
+static void _grits_viewer_fix_rotation(GritsViewer *viewer)
+{
+ while (viewer->rotation[0] < -180) viewer->rotation[0] += 360;
+ while (viewer->rotation[0] > 180) viewer->rotation[0] -= 360;
+ while (viewer->rotation[1] < -180) viewer->rotation[1] += 360;
+ while (viewer->rotation[1] > 180) viewer->rotation[1] -= 360;
+ while (viewer->rotation[2] < -180) viewer->rotation[2] += 360;
+ while (viewer->rotation[2] > 180) viewer->rotation[2] -= 360;
+}
+
/* Signal helpers */
static void _grits_viewer_emit_location_changed(GritsViewer *viewer)
{
@@ -327,6 +337,7 @@ void grits_viewer_set_rotation(GritsViewer *viewer, gdouble x, gdouble y, gdoubl
viewer->rotation[0] = x;
viewer->rotation[1] = y;
viewer->rotation[2] = z;
+ _grits_viewer_fix_rotation(viewer);
_grits_viewer_emit_rotation_changed(viewer);
}
@@ -364,6 +375,7 @@ void grits_viewer_rotate(GritsViewer *viewer, gdouble x, gdouble y, gdouble z)
viewer->rotation[0] += x;
viewer->rotation[1] += y;
viewer->rotation[2] += z;
+ _grits_viewer_fix_rotation(viewer);
_grits_viewer_emit_rotation_changed(viewer);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]