def get_corner_points(contour):
    """
    Get all corner points of the hexagonal target.

    Returns a list of 8 points, starting with the top left and going clockwise.
    """
    # First actually convert to points
    points = [point[0] for point in contour]
    # Find the top left point
    # This should be the leftmost point
    top_left_idx = 0
    for i in range(1, len(points)):
        if points[i][0] < points[top_left_idx][0]:
            top_left_idx = i
    # Find the next and previous points
    n = points[(top_left_idx + 1) % len(points)]
    p = points[top_left_idx - 1]
    # Get the one with the lower Y value and keep going in that direction
    if n[1] < p[1]:
        return [points[(top_left_idx + i) % len(points)] for i in range(len(points))]
    else:
        return [points[(top_left_idx - i) % len(points)] for i in range(len(points))]