]>
Commit | Line | Data |
---|---|---|
e99251ce | 1 | import cv2 |
2 | ||
3 | class MouseManager: | |
dcd7df75 MR |
4 | def __init__(self, printer): |
5 | cv2.setMouseCallback('image', self.mouse_event) | |
6 | self.laser_frame = printer.settings.laser_frame | |
7 | self.image_frame = printer.settings.image_frame | |
e99251ce | 8 | self.printer = printer |
9 | self.mouseDrag = False | |
10 | self.activeFrame = None | |
11 | ||
12 | def mouse_event(self, event, x, y, flags, param): | |
13 | if event == cv2.EVENT_LBUTTONDBLCLK: | |
14 | pass | |
15 | ||
16 | elif event == cv2.EVENT_LBUTTONDOWN: | |
17 | self.mouseDrag = True | |
18 | self.activeFrame = None | |
19 | frames = (self.laser_frame, self.image_frame) | |
20 | for frame in frames: | |
21 | if frame.isTouching((x, y), 10): | |
22 | self.activeFrame = frame | |
23 | break | |
24 | self.printer.write((x,y), self.laser_frame) | |
25 | ||
26 | elif event == cv2.EVENT_LBUTTONUP: | |
27 | self.mouseDrag = False | |
28 | self.activeFrame = None | |
29 | ||
30 | elif event == cv2.EVENT_MOUSEMOVE: | |
31 | if self.mouseDrag: | |
32 | if self.activeFrame != None: | |
33 | self.activeFrame.setSelected((x, y)) |