Example #1
0
def test_obstacle_collision(config, spec, obstacles):
    for i in range(len(config.lengths)):
        p = config.points[i]
        q = config.points[i + 1]
        for o in obstacles:
            if not test_bounding_box(p, q, (o.x1, o.y1), (o.x2, o.y2)):
                continue

            for e in o.edges:
                if test_line_collision((p, q), e):
                    return False
    return True
def test_obstacle_collision(config, spec, obstacles):
    # return true for pass, false for fail
    for i in range(spec.num_segments):
        p = config.points[i]
        q = config.points[i + 1]
        for o in obstacles:
            # bounding box check
            if not test_bounding_box(p, q, (o.x1, o.y1), (o.x2, o.y2)):
                continue

            # full edge check
            for e in o.edges:
                if test_line_collision((p, q), e):
                    # collision between robot segment and obstacle edge
                    return False
    return True