def inRegion(self, xmin, ymin, xmax, ymax, fully=False): """Return whether or not a Leader exists within a region. isRegion(xmin, ymin, xmax, ymax[, fully]) The four arguments define the boundary of an area, and the method returns True if the Leader lies within that area. If the optional argument fully is used and is True, then all the Leader points must lie within the boundary. Otherwise, the method returns False. """ _xmin = util.get_float(xmin) _ymin = util.get_float(ymin) _xmax = util.get_float(xmax) if _xmax < _xmin: raise ValueError, "Illegal values: xmax < xmin" _ymax = util.get_float(ymax) if _ymax < _ymin: raise ValueError, "Illegal values: ymax < ymin" util.test_boolean(fully) _x1, _y1 = self.__p1.getCoords() _x2, _y2 = self.__p2.getCoords() _x3, _y3 = self.__p3.getCoords() _pxmin = min(_x1, _x2, _x3) _pymin = min(_y1, _y2, _y3) _pxmax = max(_x1, _x2, _x3) _pymax = max(_y1, _y2, _y3) if ((_pxmax < _xmin) or (_pymax < _ymin) or (_pxmin > _xmax) or (_pymin > _ymax)): return False if fully: if ((_pxmin > _xmin) and (_pymin > _ymin) and (_pxmax < _xmax) and (_pymax < _ymax)): return True return False if util.in_region(_x1, _y1, _x2, _y2, _xmin, _ymin, _xmax, _ymax): return True return util.in_region(_x2, _y2, _x3, _y3, _xmin, _ymin, _xmax, _ymax)
def inRegion(self, xmin, ymin, xmax, ymax, fully=False): """Return whether or not a Polyline exists within a region. isRegion(xmin, ymin, xmax, ymax[, fully]) The four arguments define the boundary of an area, and the method returns True if the Polyline lies within that area. If the optional argument 'fully' is used and is True, then both endpoints of the Polyline must lie within the boundary. Otherwise, the method returns False. """ _xmin = util.get_float(xmin) _ymin = util.get_float(ymin) _xmax = util.get_float(xmax) if _xmax < _xmin: raise ValueError, "Illegal values: xmax < xmin" _ymax = util.get_float(ymax) if _ymax < _ymin: raise ValueError, "Illegal values: ymax < ymin" util.test_boolean(fully) _pxmin, _pymin, _pxmax, _pymax = self.getBounds() if ((_pxmax < _xmin) or (_pxmin > _xmax) or (_pymax < _ymin) or (_pymin > _ymax)): return False if fully: if ((_pxmin > _xmin) and (_pymin > _ymin) and (_pxmax < _xmax) and (_pymax < _ymax)): return True return False _pts = self.__pts for _i in range(len(_pts) - 1): _x1, _y1 = _pts[_i].getCoords() _x2, _y2 = _pts[_i + 1].getCoords() if util.in_region(_x1, _y1, _x2, _y2, _xmin, _ymin, _xmax, _ymax): return True return False
def inRegion(self, xmin, ymin, xmax, ymax, fully=False): """Return whether or not a fillet exists with a region. isRegion(xmin, ymin, xmax, ymax) The four arguments define the boundary of an area, and the function returns True if the joint lies within that area. Otherwise, the function returns False. """ _xmin = util.get_float(xmin) _ymin = util.get_float(ymin) _xmax = util.get_float(xmax) if _xmax < _xmin: raise ValueError, "Illegal values: xmax < xmin" _ymax = util.get_float(ymax) if _ymax < _ymin: raise ValueError, "Illegal values: ymax < ymin" util.test_boolean(fully) _mp1, _mp2 = self.getMovingPoints() _mx1, _my1 = _mp1.getCoords() _mx2, _my2 = _mp2.getCoords() _r = self.__radius _xc, _yc = self.__center _a1, _a2 = self.getAngles() _xl = [_mx1, _mx2, _xc] _yl = [_my1, _my2, _yc] if fully: if ((min(_xl) > _xmin) and (min(_yl) > _ymin) and (max(_xl) < _xmax) and (max(_yl) < _ymax)): return True return False # # fixme - need to use the arc and endpoints and not # a line connecting the endpoints ... # return util.in_region(_mx1, _my1, _mx2, _my2, _xmin, _ymin, _xmax, _ymax)
def inRegion(self, xmin, ymin, xmax, ymax, fully=False): """Return whether or not a segjoint exists with a region. isRegion(xmin, ymin, xmax, ymax) The four arguments define the boundary of an area, and the function returns True if the joint lies within that area. Otherwise, the function returns False. """ _xmin = util.get_float(xmin) _ymin = util.get_float(ymin) _xmax = util.get_float(xmax) if _xmax < _xmin: raise ValueError, "Illegal values: xmax < xmin" _ymax = util.get_float(ymax) if _ymax < _ymin: raise ValueError, "Illegal values: ymax < ymin" util.test_boolean(fully) _mp1, _mp2 = self.getMovingPoints() _mx1, _my1 = _mp1.getCoords() _mx2, _my2 = _mp2.getCoords() _fxmin = min(_mx1, _mx2) _fymin = min(_my1, _my2) _fxmax = max(_mx1, _mx2) _fymax = max(_my1, _my2) if ((_fxmax < _xmin) or (_fymax < _ymin) or (_fxmin > _xmax) or (_fymin > _ymax)): return False if fully: if ((_fxmin > _xmin) and (_fymin > _ymin) and (_fxmax < _xmax) and (_fymax < _ymax)): return True return False return util.in_region(_mx1, _my1, _mx2, _my2, _xmin, _ymin, _xmax, _ymax)