class_docstr: **Bases:** :class:`GLMeshItem <pyqtgraph.opengl.GLMeshItem>`
  
  Displays a surface plot on a regular x,y grid
code: def generateFaces(self):
      cols = self._z.shape[1] - 1
      rows = self._z.shape[0] - 1
      faces = np.empty((cols * rows * 2, 3), dtype=np.uint)
      rowtemplate1 = np.arange(cols).reshape(cols, 1) + np.array(
          [[0, 1, cols + 1]]
      )
      rowtemplate2 = np.arange(cols).reshape(cols, 1) + np.array(
          [[cols + 1, 1, cols + 2]]
      )
      for row in range(rows):
          start = row * cols * 2
          faces[start : start + cols] = rowtemplate1 + row * (cols + 1)
          faces[
              start + cols : start + (cols * 2)
          ] = rowtemplate2 + row * (cols + 1)
      self._faces = faces
  
file_path: pyqtgraph/pyqtgraph/opengl/items/GLSurfacePlotItem.py
imports: from OpenGL.GL import *
  import numpy
  from ..MeshData import MeshData
  from .GLMeshItem import GLMeshItem
label_desc: Use image node_id 3 for calling the GLSurfacePlotItem obj's underlying member method code with example usage: obj.generateFaces() without return types