'Return True if there exists a plane in which all the points
lie.  A trivial True value is returned if `len(points) < 3` or
all Points are 2-dimensional.
Parameters
A set of points
Raises
ValueError : if less than 3 unique points are given
Returns
boolean
Examples
>>> from sympy import Point3D
>>> p1 = Point3D(1, 2, 2)
>>> p2 = Point3D(2, 7, 2)
>>> p3 = Point3D(0, 0, 2)
>>> p4 = Point3D(1, 1, 2)
>>> Point3D.are_coplanar(p1, p2, p3, p4)
True
>>> p5 = Point3D(0, 1, 3)
>>> Point3D.are_coplanar(p1, p2, p3, p5)
False'

@classmethod
def are_coplanar(cls, *points):

    if (len(points) <= 1):
        return True
    points = cls._normalize_dimension(*[Point(i) for i in points])
    if (points[0].ambient_dimension == 2):
        return True
    points = list(uniq(points))
    return (Point.affine_rank(*points) <= 2)
