+
+
+class RayPolyManager(object):
+ def __init__(self, body, ray_filter):
+ self._body = body
+ self._ray_filter = ray_filter
+ self._rays = []
+
+ def generate_rays(self, space, position):
+ self._rays = calculate_ray_polys(space, position, self._ray_filter)
+
+ def polys(self):
+ return [rp.poly(self._body, self._ray_filter) for rp in self._rays]
+
+
+class RayPoly(object):
+ def __init__(self, start, end, vertices):
+ self.start = start
+ self.end = end
+ self.vertices = vertices
+
+ def poly(self, body, filter):
+ shape = pymunk.Poly(body, self.vertices)
+ shape.filter = filter
+ return shape