class_docstr: Class for storing and operating on 3D mesh data.
  
  Parameters
  ----------
  vertices : ndarray, shape (Nv, 3)
      Vertex coordinates. If faces is not specified, then this will
      instead be interpreted as (Nf, 3, 3) array of coordinates.
  faces : ndarray, shape (Nf, 3)
      Indices into the vertex array.
  edges : None
      [not available yet]
  vertex_colors : ndarray, shape (Nv, 4)
      Vertex colors. If faces is not specified, this will be
      interpreted as (Nf, 3, 4) array of colors.
  face_colors : ndarray, shape (Nf, 4)
      Face colors.
  vertex_values : ndarray, shape (Nv,)
      Vertex values.
  
  Notes
  -----
  All arguments are optional.
  
  The object may contain:
  
  - list of vertex locations
  - list of edges
  - list of triangles
  - colors per vertex, edge, or tri
  - normals per vertex or tri
  
  This class handles conversion between the standard
  [list of vertices, list of faces] format (suitable for use with
  glDrawElements) and 'indexed' [list of vertices] format (suitable
  for use with glDrawArrays). It will automatically compute face normal
  vectors as well as averaged vertex normal vectors.
  
  The class attempts to be as efficient as possible in caching conversion
  results and avoiding unnecessary conversions.
docstr: Set the face color array
  
  Parameters
  ----------
  colors : array
      Array of colors. Must have shape (Nf, 4) (indexed by face),
      or shape (Nf, 3, 4) (face colors indexed by faces).
  indexed : str | None
      Should be 'faces' if colors are indexed by faces.
docstr_tok: ["Set","the","face","color","array","Parameters","--","--","--","--","--","colors",":","array","Array","of","colors",".","Must","have","shape","(","Nf",",","4",")","(","indexed","by","face",")",",","or","shape","(","Nf",",","3",",","4",")","(","face","colors","indexed","by","faces",")",".","indexed",":","str","|","None","Should","be","'faces","'","if","colors","are","indexed","by","faces","."]
code: def set_face_colors(self, colors, indexed=None):
      """Set the face color array
  
      Parameters
      ----------
      colors : array
          Array of colors. Must have shape (Nf, 4) (indexed by face),
          or shape (Nf, 3, 4) (face colors indexed by faces).
      indexed : str | None
          Should be 'faces' if colors are indexed by faces.
      """
      colors = _fix_colors(colors)
      if colors.shape[0] != self.n_faces:
          raise ValueError(
              "incorrect number of colors %s, expected %s"
              % (colors.shape[0], self.n_faces)
          )
      if indexed is None:
          if colors.ndim != 2:
              raise ValueError("colors must be 2D if indexed is None")
          self._face_colors = colors
          self._face_colors_indexed_by_faces = None
      elif indexed == "faces":
          if colors.ndim != 3:
              raise ValueError(
                  'colors must be 3D if indexed is "faces"'
              )
          self._face_colors = None
          self._face_colors_indexed_by_faces = colors
      else:
          raise ValueError('indexed must be None or "faces"')
  
imports: import numpy
label_desc: Use image node_id 21 for calling the MeshData obj's underlying member method code with example usage: obj.set_face_colors(colors, indexed) without return types