def distance_to(self, rep): geo = rep.get_geometry() if isinstance(geo, BoundingBox): return poly_to_vec_distance(geo.to_polygon(), self.location) elif isinstance(geo, Polygon): return poly_to_vec_distance(geo, self.location) else: return geo.distance_to(self.location)
def distance_to(self, rep): geo = rep.get_geometry() if isinstance(geo,Vec2): return self.circ.distance_to(geo) elif isinstance(geo,LineSegment): distance = geo.distance_to(self.circ.center) - self.circ.radius elif isinstance(geo,BoundingBox): distance = poly_to_vec_distance(geo.to_polygon(), self.circ.center) - self.circ.radius elif isinstance(geo,Polygon): distance = poly_to_vec_distance(geo, self.circ.center) - self.circ.radius elif isinstance(geo,Circle): self.circ.distance_to(geo.center) - geo.radius return distance if distance > 0 else 0
def distance_to(self, rep): geo = rep.get_geometry() if isinstance(geo,Vec2): return poly_to_vec_distance(self.poly, geo) elif isinstance(geo,LineSegment): return poly_to_seg_distance(self.poly, geo) elif isinstance(geo,BoundingBox): return poly_to_poly_distance(self.poly, geo.to_polygon()) elif isinstance(geo, Polygon): return poly_to_poly_distance(self.poly, geo)
def distance_to_point(self, xy): return poly_to_vec_distance( self.poly, xy )
def distance_to_point(self, xy): return poly_to_vec_distance( self.rect.to_polygon(), xy )