http://www.tienza.es/crux/src/www.jwz.org/xscreensaver/xscreensaver-5.05.tar.gz
[xscreensaver] / hacks / glx / gltrackball.h
index fbe2efddc1052d3362eb10480128448883092d62..a56888409100dfc69f4c448e0fe0e44bbe0273ac 100644 (file)
@@ -1,4 +1,4 @@
-/* gltrackball, Copyright (c) 2002 Jamie Zawinski <jwz@jwz.org>
+/* gltrackball, Copyright (c) 2002-2008 Jamie Zawinski <jwz@jwz.org>
  * GL-flavored wrapper for trackball.c
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -37,5 +37,19 @@ extern void gltrackball_track (trackball_state *, int x, int y, int w, int h);
  */
 extern void gltrackball_rotate (trackball_state *);
 
+/* Call this when a mouse-wheel click is detected.
+   Clicks act like horizontal or vertical drags.
+   Percent is the length of the drag as a percentage of the screen size.
+   Button is 'Button4' or 'Button5' (for the vertical wheel)
+   or 'Button5' or 'Button6' (for the horizontal wheel).
+   If `flip_p' is true, swap the horizontal and vertical axes.
+ */
+void gltrackball_mousewheel (trackball_state *ts,
+                             int button, int percent, int flip_p);
+
+/* Return the quaternion encapsulated by the trackball state.
+ */
+extern void gltrackball_get_quaternion (trackball_state *ts, float q[4]);
+
 #endif /* __GLTRACKBALL_H__ */