diff --git a/src/analyzer/corners.py b/src/analyzer/corners.py --- a/src/analyzer/corners.py +++ b/src/analyzer/corners.py @@ -1,9 +1,13 @@ -from .epoint import EPoint +import logging + +from .epoint import EPoint + +log=logging.getLogger(__name__) class Corners: def __init__(self): - self.corners=[] + self._corners=[] ## Adds a new corner if there are less than four, replaces the closest otherwise. def add(self,x,y): @@ -13,18 +17,18 @@ class Corners: # self.corners[i]=a # return - if len(self.corners)<4: # add a new corner - self.corners.append(a) + if len(self._corners)<4: # add a new corner + self._corners.append(a) - if len(self.corners)<4: + if len(self._corners)<4: return index,minDist=0,float('inf') # replace the corner closest to the clicked point - for i,c in enumerate(self.corners): + for i,c in enumerate(self._corners): if a.dist(c)self.corners[ii].x and (slopeself._corners[ii].x and (slope < lowestSlope or (slope == lowestSlope and corner.y < self._corners[ii].y)): kIndex=ii lowestSlope=slope - self.corners=self.corners[kIndex:]+self.corners[:kIndex] # rotate the upper left corner to the first place + self._corners= self._corners[kIndex:] + self._corners[:kIndex] # rotate the upper left corner to the first place + log.debug(self._corners) return True # success def scale(self,scale): - self.corners=[c*scale for c in self.corners] + self._corners=[c * scale for c in self._corners] + + def __iter__(self): + return iter(self._corners) + + def __len__(self): + return len(self._corners) ## Computes twice the area of the triangle formed by points a,b,c.