graphics/RubberBand.py
changeset 1730 64d8f52bc8c8
parent 1571 486f94a8032c
child 1736 7e61baa047f0
--- a/graphics/RubberBand.py	Fri Aug 11 15:18:19 2017 +0300
+++ b/graphics/RubberBand.py	Mon Aug 14 19:13:01 2017 +0300
@@ -35,19 +35,19 @@
 """
 
 class RubberBand:
-    
+
     def __init__(self, viewer):
         """
         Constructor
         @param viewer: Viewer on which rubberband must be drawn
         """
         self.Viewer = viewer
-        
+
         # wx.Panel on which rubberband will be drawn
         self.DrawingSurface = viewer.Editor
-        
+
         self.Reset()
-    
+
     def Reset(self):
         """
         Initialize internal attributes of rubberband
@@ -55,14 +55,14 @@
         self.StartPoint = None
         self.CurrentBBox = None
         self.LastBBox = None
-    
+
     def IsShown(self):
         """
         Indicate if rubberband is drawn on viewer
         @return: True if rubberband is drawn
         """
         return self.CurrentBBox != None
-    
+
     def GetCurrentExtent(self):
         """
         Return the rubberband bounding box
@@ -73,7 +73,7 @@
         if self.IsShown():
             return self.CurrentBBox
         return self.LastBBox
-    
+
     def OnLeftDown(self, event, dc, scaling):
         """
         Called when left mouse is pressed on Viewer. Starts to edit a new
@@ -85,16 +85,16 @@
         # Save the point where mouse was pressed in Viewer unit, position may
         # be modified by scroll and zoom applied on viewer
         self.StartPoint = GetScaledEventPosition(event, dc, scaling)
-        
+
         # Initialize rubberband bounding box
         self.CurrentBBox = wx.Rect(self.StartPoint.x, self.StartPoint.y, 0, 0)
-        
+
         # Change viewer mouse cursor to reflect a rubberband bounding box is
         # edited
         self.DrawingSurface.SetCursor(wx.StockCursor(wx.CURSOR_CROSS))
-        
+
         self.Redraw()
-    
+
     def OnMotion(self, event, dc, scaling):
         """
         Called when mouse is dragging over Viewer. Update the current edited
@@ -106,19 +106,19 @@
         # Get mouse position in Viewer unit, position may be modified by scroll
         # and zoom applied on viewer
         pos = GetScaledEventPosition(event, dc, scaling)
-        
+
         # Save the last bounding box drawn for erasing it later
         self.LastBBox = wx.Rect(0, 0, 0, 0)
         self.LastBBox.Union(self.CurrentBBox)
-        
-        # Calculate new position and size of the box 
+
+        # Calculate new position and size of the box
         self.CurrentBBox.x = min(pos.x, self.StartPoint.x)
         self.CurrentBBox.y = min(pos.y, self.StartPoint.y)
         self.CurrentBBox.width = abs(pos.x - self.StartPoint.x) + 1
         self.CurrentBBox.height = abs(pos.y - self.StartPoint.y) + 1
-        
+
         self.Redraw()
-    
+
     def OnLeftUp(self, event, dc, scaling):
         """
         Called when mouse is release from Viewer. Erase the current edited
@@ -129,16 +129,16 @@
         """
         # Change viewer mouse cursor to default
         self.DrawingSurface.SetCursor(wx.NullCursor)
-        
+
         # Save the last edited bounding box
         self.LastBBox = self.CurrentBBox
         self.CurrentBBox = None
-        
+
         self.Redraw()
-    
+
     def DrawBoundingBoxes(self, bboxes, dc=None):
         """
-        Draw a list of bounding box on Viewer in the order given using XOR 
+        Draw a list of bounding box on Viewer in the order given using XOR
         logical function
         @param bboxes: List of bounding boxes to draw on viewer
         @param dc: Device Context of Viewer (default None)
@@ -146,29 +146,29 @@
         # Get viewer Device Context if not given
         if dc is None:
             dc = self.Viewer.GetLogicalDC()
-        
+
         # Save current viewer scale factors before resetting them in order to
         # avoid rubberband pen to be scaled
         scalex, scaley = dc.GetUserScale()
         dc.SetUserScale(1, 1)
-        
+
         # Set DC drawing style
         dc.SetPen(wx.Pen(wx.WHITE, style=wx.DOT))
         dc.SetBrush(wx.TRANSPARENT_BRUSH)
         dc.SetLogicalFunction(wx.XOR)
-        
+
         # Draw the bounding boxes using viewer scale factor
         for bbox in bboxes:
             if bbox is not None:
                 dc.DrawRectangle(
-                    bbox.x * scalex, bbox.y * scaley, 
+                    bbox.x * scalex, bbox.y * scaley,
                     bbox.width * scalex, bbox.height * scaley)
-        
+
         dc.SetLogicalFunction(wx.COPY)
-        
+
         # Restore Viewer scale factor
         dc.SetUserScale(scalex, scaley)
-    
+
     def Redraw(self, dc = None):
         """
         Redraw rubberband on Viewer
@@ -176,7 +176,7 @@
         """
         # Erase last bbox and draw current bbox
         self.DrawBoundingBoxes([self.LastBBox, self.CurrentBBox], dc)
-    
+
     def Erase(self, dc = None):
         """
         Erase rubberband from Viewer