|
@@ -1,16 +1,20 @@
|
|
|
#!/usr/bin/env python
|
|
#!/usr/bin/env python
|
|
|
-import pygame, sys, time
|
|
|
|
|
-from touch import MultiTouchListener
|
|
|
|
|
|
|
+import pygame
|
|
|
|
|
+import sys
|
|
|
|
|
+import time
|
|
|
|
|
+from touch import MultiTouchListener, screen_size
|
|
|
from math import degrees, cos, sin
|
|
from math import degrees, cos, sin
|
|
|
|
|
|
|
|
from events import Rotate
|
|
from events import Rotate
|
|
|
|
|
|
|
|
pygame.init()
|
|
pygame.init()
|
|
|
|
|
|
|
|
|
|
+FULLSCREEN = '-f' in sys.argv[1:]
|
|
|
|
|
+
|
|
|
# Config
|
|
# Config
|
|
|
FINGER_RADIUS = 20
|
|
FINGER_RADIUS = 20
|
|
|
CENTROID_RADIUS = 15
|
|
CENTROID_RADIUS = 15
|
|
|
-W, H = 640, 480
|
|
|
|
|
|
|
+W, H = screen_size if FULLSCREEN else (640, 480)
|
|
|
|
|
|
|
|
BG_COLOR = 0, 0, 0
|
|
BG_COLOR = 0, 0, 0
|
|
|
LINE_COLOR = 128, 128, 128
|
|
LINE_COLOR = 128, 128, 128
|
|
@@ -29,8 +33,9 @@ BEAM_INCREMENT = .8
|
|
|
|
|
|
|
|
MAX_SCALE = 10
|
|
MAX_SCALE = 10
|
|
|
|
|
|
|
|
-# Create canvas GUI in the current thread
|
|
|
|
|
-screen = pygame.display.set_mode((W, H))
|
|
|
|
|
|
|
+# Create canvas GUI
|
|
|
|
|
+flags = pygame.FULLSCREEN if FULLSCREEN else 0
|
|
|
|
|
+screen = pygame.display.set_mode((W, H), flags)
|
|
|
|
|
|
|
|
|
|
|
|
|
def rotate_point(point, axis, angle):
|
|
def rotate_point(point, axis, angle):
|
|
@@ -127,7 +132,7 @@ def pinch(event):
|
|
|
|
|
|
|
|
|
|
|
|
|
# Start touch event listener in separate thread
|
|
# Start touch event listener in separate thread
|
|
|
-listener = MultiTouchListener(verbose=1, tuio_verbose=0)
|
|
|
|
|
|
|
+listener = MultiTouchListener(verbose=0, tuio_verbose=0)
|
|
|
listener.bind('rotate', rotate)
|
|
listener.bind('rotate', rotate)
|
|
|
#listener.bind('pinch', pinch)
|
|
#listener.bind('pinch', pinch)
|
|
|
listener.bind('tap', lambda e: taps.append([coord(*e.xy), FINGER_RADIUS]))
|
|
listener.bind('tap', lambda e: taps.append([coord(*e.xy), FINGER_RADIUS]))
|
|
@@ -136,8 +141,15 @@ listener.bind('double_tap', lambda e: dtaps.append(list(coord(*e.xy)) + [0]))
|
|
|
listener.start(threaded=True)
|
|
listener.start(threaded=True)
|
|
|
|
|
|
|
|
# Start GUI event loop
|
|
# Start GUI event loop
|
|
|
|
|
+import sys
|
|
|
|
|
+
|
|
|
try:
|
|
try:
|
|
|
- while not filter(lambda e: e.type == pygame.QUIT, pygame.event.get()):
|
|
|
|
|
|
|
+ while True:
|
|
|
|
|
+ for e in pygame.event.get():
|
|
|
|
|
+ if e.type == pygame.QUIT or (e.type == pygame.KEYDOWN
|
|
|
|
|
+ and e.key == 113):
|
|
|
|
|
+ sys.exit()
|
|
|
|
|
+
|
|
|
update()
|
|
update()
|
|
|
except KeyboardInterrupt:
|
|
except KeyboardInterrupt:
|
|
|
pass
|
|
pass
|