# HG changeset patch # User Laman # Date 2019-01-01 11:24:48 # Node ID 28ca21b89e4301192383401f3eb64e77c07b1b78 # Parent 6180b3bd7f3f9b16021fc846848e637aaa3e8e28 fix: returned returns to corners diff --git a/src/analyzer/corners.py b/src/analyzer/corners.py --- a/src/analyzer/corners.py +++ b/src/analyzer/corners.py @@ -55,7 +55,11 @@ class Corners: # # @return True for a convex quadrangle, False for concave and degenerate cases. def _canonizeOrder(self): - if len(self._corners)!=4: self._is_canon=False + def false(): + self._is_canon=False + return False + + if len(self._corners)!=4: return false() a,b,c,d=self._corners abc=doubleTriangleArea(a,b,c) @@ -63,11 +67,11 @@ class Corners: acd=doubleTriangleArea(a,c,d) bcd=doubleTriangleArea(b,c,d) - if any(x==0 for x in (abc,abd,acd,bcd)): self._is_canon=False # collinear degenerate + if any(x==0 for x in (abc,abd,acd,bcd)): return false() # collinear degenerate swaps=[(1,3),(0,1),(1,2),(0,3),(2,3),(0,0)] index=(8 if abc>0 else 0)|(4 if abd>0 else 0)|(2 if acd>0 else 0)|(1 if bcd>0 else 0) - if index%3!=0: return False # concave degenerate + if index%3!=0: return false() # concave degenerate swap=swaps[index//3] self._corners[swap[0]], self._corners[swap[1]] = self._corners[swap[1]], self._corners[swap[0]] # counter-clockwise order @@ -86,6 +90,7 @@ class Corners: log.debug(self._corners) self._is_canon=True # success + return True def scale(self,scale): self._corners=[c * scale for c in self._corners]