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: Get the face colors
  
  Parameters
  ----------
  indexed : str | None
      If indexed is None, return (Nf, 4) array of face colors.
      If indexed=='faces', then instead return an indexed array
      (Nf, 3, 4)  (note this is just the same array with each color
      repeated three times).
  
  Returns
  -------
  colors : ndarray
      The colors.
docstr_tok: ["Get","the","face","colors","Parameters","--","--","--","--","--","indexed",":","str","|","None","If","indexed","is","None",",","return","(","Nf",",","4",")","array","of","face","colors",".","If","indexed=='faces","'",",","then","instead","return","an","indexed","array","(","Nf",",","3",",","4",")","(","note","this","is","just","the","same","array","with","each","color","repeated","three","times",")",".","Returns","--","--","--","-","colors",":","ndarray","The","colors","."]
code: def get_face_colors(self, indexed=None):
      """Get the face colors
  
      Parameters
      ----------
      indexed : str | None
          If indexed is None, return (Nf, 4) array of face colors.
          If indexed=='faces', then instead return an indexed array
          (Nf, 3, 4)  (note this is just the same array with each color
          repeated three times).
  
      Returns
      -------
      colors : ndarray
          The colors.
      """
      if indexed is None:
          return self._face_colors
      elif indexed == "faces":
          if (
              self._face_colors_indexed_by_faces is None
              and self._face_colors is not None
          ):
              Nf = self._face_colors.shape[0]
              self._face_colors_indexed_by_faces = np.empty(
                  (Nf, 3, 4), dtype=self._face_colors.dtype
              )
              self._face_colors_indexed_by_faces[
                  :
              ] = self._face_colors.reshape(Nf, 1, 4)
          return self._face_colors_indexed_by_faces
      else:
          raise ValueError(
              "Invalid indexing mode. Accepts: None, 'faces'"
          )
  
imports: import numpy
label_desc: Use image node_id 20 for calling the MeshData obj's underlying member method code with example usage: obj.get_face_colors(indexed) and returns: self, self