aboutsummaryrefslogtreecommitdiff
path: root/utility
diff options
context:
space:
mode:
Diffstat (limited to 'utility')
-rw-r--r--utility/mouse.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/utility/mouse.py b/utility/mouse.py
new file mode 100644
index 0000000..c36d7e8
--- /dev/null
+++ b/utility/mouse.py
@@ -0,0 +1,21 @@
+from OpenGL.GLUT import *
+
+class MouseDragMonitor:
+ def __init__(self, button, callback):
+ self.button = button
+ self.callback = callback
+ self.active = False
+
+ def on_mouse(self, button, state, x, y):
+ if button == self.button:
+ self.active = (state == GLUT_DOWN)
+ self.last_x = x
+ self.last_y = y
+
+ def on_mouse_move(self, x, y):
+ if self.active:
+ delta_x = self.last_x - x
+ delta_y = y - self.last_y
+ self.last_x = x
+ self.last_y = y
+ self.callback(delta_x, delta_y)