code: def are_coplanar(*e):
      """Returns True if the given entities are coplanar otherwise False
  
      Parameters
      ==========
  
      e: entities to be checked for being coplanar
  
      Returns
      =======
  
      Boolean
  
      Examples
      ========
  
      >>> from sympy import Point3D, Line3D
      >>> from sympy.geometry.util import are_coplanar
      >>> a = Line3D(Point3D(5, 0, 0), Point3D(1, -1, 1))
      >>> b = Line3D(Point3D(0, -2, 0), Point3D(3, 1, 1))
      >>> c = Line3D(Point3D(0, -1, 0), Point3D(5, -1, 9))
      >>> are_coplanar(a, b, c)
      False
  
      """
      from .line import LinearEntity3D
      from .plane import Plane
  
      # XXX update tests for coverage
  
      e = set(e)
      # first work with a Plane if present
      for i in list(e):
          if isinstance(i, Plane):
              e.remove(i)
              return all(p.is_coplanar(i) for p in e)
  
      if all(isinstance(i, Point3D) for i in e):
          if len(e) < 3:
              return False
  
          # remove pts that are collinear with 2 pts
          a, b = e.pop(), e.pop()
          for i in list(e):
              if Point3D.are_collinear(a, b, i):
                  e.remove(i)
  
          if not e:
              return False
          else:
              # define a plane
              p = Plane(a, b, e.pop())
              for i in e:
                  if i not in p:
                      return False
              return True
      else:
          pt3d = []
          for i in e:
              if isinstance(i, Point3D):
                  pt3d.append(i)
              elif isinstance(i, LinearEntity3D):
                  pt3d.extend(i.args)
              elif isinstance(
                  i, GeometryEntity
              ):  # XXX we should have a GeometryEntity3D class so we can tell the difference between 2D and 3D -- here we just want to deal with 2D objects; if new 3D objects are encountered that we didn't handle above, an error should be raised
                  # all 2D objects have some Point that defines them; so convert those points to 3D pts by making z=0
                  for p in i.args:
                      if isinstance(p, Point):
                          pt3d.append(Point3D(*(p.args + (0,))))
          return are_coplanar(*pt3d)
  
imports: from collections import deque
  from math import sqrt
  from sympy import nsimplify
  from .entity import GeometryEntity
  from .exceptions import GeometryError
  from .point import Point, Point2D, Point3D
  from sympy.core.containers import OrderedSet
  from sympy.core.exprtools import factor_terms
  from sympy.core.function import Function, expand_mul
  from sympy.core.numbers import Float
  from sympy.core.sorting import ordered
  from sympy.core.symbol import Symbol
  from sympy.core.singleton import S
  from sympy.polys.polytools import cancel
  from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.utilities.iterables import is_sequence
  from mpmath.libmp.libmpf import prec_to_dps
label_desc: Use image node_id 3 for calling a global function with example usage: are_coplanar() and returns: are_coplanar, all, False, False, True, False