code: def _face_outer_normals(mesh):
      """Get the normal to each triangle in a mesh.
  
      They are the outer normals if the mesh respects the convention that the
      direction given by the direct order of a triangle's vertices (right-hand
      rule) points outwards.
  
      """
      vertices, faces = load_surf_mesh(mesh)
      face_vertices = vertices[faces]
      # The right-hand rule gives the direction of the outer normal
      normals = np.cross(
          face_vertices[:, 1, :] - face_vertices[:, 0, :],
          face_vertices[:, 2, :] - face_vertices[:, 0, :],
      )
      normals = sklearn.preprocessing.normalize(normals)
      return normals
  
imports: import gzip
  import os
  import warnings
  from collections import namedtuple
  from collections.abc import Mapping
  import nibabel
  import numpy
  import sklearn.cluster
  import sklearn.preprocessing
  from nibabel import freesurfer, gifti
  from scipy import interpolate, sparse
  from nilearn import _utils, datasets
  from nilearn._utils import stringify_path
  from nilearn._utils.path_finding import resolve_globbing
  from nilearn.image import get_data, load_img, resampling
label_desc: Use image node_id 3 for calling a global function with example usage: _face_outer_normals(mesh) and returns: normals