def __symm_point__(orig_pt, plane):
    """
    Takes a point and a plane and returns a second point on the
    other side of the plane to the first point.
    """
    dist = -(plane[0]*orig_pt[0]+plane[1]*orig_pt[1]+plane[2]*orig_pt[2]+plane[3])/(plane[0]**2 + plane[1]**2 + plane[2]**2)
    mid_pt = [i+dist*a for i,a in zip(orig_pt, plane[:-1])]
    ref_pt = [i+2*(x-i) for x,i in zip(mid_pt,orig_pt)]
    return ref_pt