def get_primary_axes(self): return [ Line.from_points([ Vec2(self.rect.min_point.x, self.rect.center.y), Vec2(self.rect.max_point.x, self.rect.center.y) ]), Line.from_points([ Vec2(self.rect.center.x, self.rect.min_point.y), Vec2(self.rect.center.x, self.rect.max_point.y) ]) ]
def intersects(self, shape: Polygon) -> bool: """Check whether this wall intersects a Polygon.""" segment_line = self.line_segment.line vertex1, vertex2 = self.line_segment.points relative_sides = ((p, segment_line.point_left(p)) for p in shape) for (p1, s1), (p2, s2) in islice(pairwise(cycle(relative_sides)), len(shape)): if s1 is not s2: # p1 and p2 are on opposite sides of the line that contains this wall edge = Line.from_points([p1, p2]) if edge.point_left(vertex1) is not edge.point_left(vertex2): return True return False
def get_primary_axes(self): return [Line.from_points([Vec2(self.rect.min_point.x, self.rect.center.y), Vec2(self.rect.max_point.x, self.rect.center.y)]), Line.from_points([Vec2(self.rect.center.x, self.rect.min_point.y), Vec2(self.rect.center.x, self.rect.max_point.y)])]