From ba07b6da02d2784ed3f086070ac7f6f5b8544511 Mon Sep 17 00:00:00 2001 From: Corwin Perren Date: Sat, 28 Jul 2018 15:20:51 -0700 Subject: [PATCH] Mapping dragging working correctly now. Still choppy. --- .../MapSystems/RoverMapCoordinator.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMapCoordinator.py b/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMapCoordinator.py index a38386f..acbb888 100644 --- a/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMapCoordinator.py +++ b/software/ros_packages/ground_station/src/Framework/MapSystems/RoverMapCoordinator.py @@ -94,6 +94,9 @@ class RoverMapCoordinator(QtCore.QThread): self.x_drag_start = -1 self.y_drag_start = -1 + self.x_drag_end = -1 + self.y_drag_end = -1 + def run(self): self.logger.debug("Starting Map Coordinator Thread") self.pixmap_ready_signal.emit() # This gets us the loading map @@ -145,10 +148,10 @@ class RoverMapCoordinator(QtCore.QThread): if self.zoom_subtraction: self.zoom_subtraction = self.constrain(self.zoom_subtraction, 0, 520) - crop_x_start = ((self.zoom_subtraction * MAP_WIDGET_RATIO) / 2) - self.x_drag - crop_y_start = (self.zoom_subtraction / 2) - self.y_drag - crop_x_end = (MAP_WIDGET_WIDTH - ((self.zoom_subtraction * MAP_WIDGET_RATIO) / 2)) - self.x_drag - crop_y_end = (MAP_WIDGET_HEIGHT - (self.zoom_subtraction / 2)) - self.y_drag + crop_x_start = ((self.zoom_subtraction * MAP_WIDGET_RATIO) / 2) - self.x_drag - self.x_drag_end + crop_y_start = (self.zoom_subtraction / 2) - self.y_drag - self.y_drag_end + crop_x_end = (MAP_WIDGET_WIDTH - ((self.zoom_subtraction * MAP_WIDGET_RATIO) / 2)) - self.x_drag - self.x_drag_end + crop_y_end = (MAP_WIDGET_HEIGHT - (self.zoom_subtraction / 2)) - self.y_drag - self.y_drag_end crop_box = (int(crop_x_start), int(crop_y_start), int(crop_x_end), int(crop_y_end)) self.map_image = self.map_image.crop(crop_box) @@ -243,10 +246,16 @@ class RoverMapCoordinator(QtCore.QThread): self.roll, self.pitch, self.yaw = transformations.euler_from_quaternion(quat) self.last_heading = (self.euler_interpolator(self.yaw) + MappingSettings.DECLINATION_OFFSET) % 360 - def __mouse_released_event(self, event): + def __mouse_released_event(self, _): self.x_drag_start = -1 self.y_drag_start = -1 + self.x_drag_end += self.x_drag + self.y_drag_end += self.y_drag + + self.x_drag = 0 + self.x_drag = 0 + def __mouse_wheel_event(self, event): # print "wheel:", event.angleDelta()