class_docstr: Container for a brain surface.
  
  It is used for storing vertices, faces and morphometric data
  (curvature) of a hemisphere mesh.
  
  Parameters
  ----------
  subject : string
      Name of subject
  hemi : {'lh', 'rh'}
      Which hemisphere to load
  surf : string
      Name of the surface to load (eg. inflated, orig ...).
  subjects_dir : str | None
      If not None, this directory will be used as the subjects directory
      instead of the value set using the SUBJECTS_DIR environment variable.
  offset : float | None
      If 0.0, the surface will be offset such that the medial
      wall is aligned with the origin. If None, no offset will
      be applied. If != 0.0, an additional offset will be used.
  units : str
      Can be 'm' or 'mm' (default).
  x_dir : ndarray | None
      The x direction to use for offset alignment.
  
  Attributes
  ----------
  bin_curv : numpy.ndarray
      Curvature values stored as non-negative integers.
  coords : numpy.ndarray
      nvtx x 3 array of vertex (x, y, z) coordinates.
  curv : numpy.ndarray
      Vector representation of surface morpometry (curvature) values as
      loaded from a file.
  grey_curv : numpy.ndarray
      Normalized morphometry (curvature) data, used in order to get
      a gray cortex.
  faces : numpy.ndarray
      nfaces x 3 array of defining mesh triangles.
  hemi : {'lh', 'rh'}
      Which hemisphere to load.
  nn : numpy.ndarray
      Vertex normals for a triangulated surface.
  offset : float | None
      If float, align inside edge of each hemisphere to center + offset.
      If None, do not change coordinates (default).
  subject : string
      Name of subject.
  surf : string
      Name of the surface to load (eg. inflated, orig ...).
  units : str
      Can be 'm' or 'mm' (default).
docstr: Load geometry of the surface.
  
  Parameters
  ----------
  None
  
  Returns
  -------
  None
code: def load_geometry(self):
      """Load geometry of the surface.
  
      Parameters
      ----------
      None
  
      Returns
      -------
      None
      """
      if self.surf == "flat":  # special case
          fname = path.join(
              self.data_path,
              "surf",
              "%s.%s" % (self.hemi, "cortex.patch.flat"),
          )
          _check_fname(
              fname,
              overwrite="read",
              must_exist=True,
              name="flatmap surface file",
          )
          coords, faces, orig_faces = _read_patch(fname)
          # rotate 90 degrees to get to a more standard orientation
          # where X determines the distance between the hemis
          coords = coords[:, [1, 0, 2]]
          coords[:, 1] *= -1
      else:
          # allow ?h.pial.T1 if ?h.pial doesn't exist for instance
          # end with '' for better file not found error
          for img in ("", ".T1", ".T2", ""):
              surf_fname = path.join(
                  self.data_path,
                  "surf",
                  f"{self.hemi}.{self.surf}{img}",
              )
              if path.isfile(surf_fname):
                  break
          coords, faces = read_surface(surf_fname)
          orig_faces = faces
      if self.units == "m":
          coords /= 1000.0
      if self.offset is not None:
          x_ = coords @ self.x_dir
          if self.hemi == "lh":
              coords -= (np.max(x_) + self.offset) * self.x_dir
          else:
              coords -= (np.min(x_) + self.offset) * self.x_dir
      surf = dict(rr=coords, tris=faces)
      complete_surface_info(
          surf, copy=False, verbose=False, do_neighbor_tri=False
      )
      nn = surf["nn"]
      self.coords = coords
      self.faces = faces
      self.orig_faces = orig_faces
      self.nn = nn
  
file_path: mne-python/mne/viz/_brain/surface.py
imports: from os import path
  import numpy
  from ...surface import _read_patch, complete_surface_info, read_curvature, read_surface
  from ...utils import _check_fname, _check_option, _validate_type, get_subjects_dir
label_desc: Use image node_id 2 for calling the _Surface obj's underlying member method code with example usage: obj.load_geometry() without return types