docs: def isosurface_from_data(data, isolevel, origin, spacing):
      """Small wrapper to get directly vertices and faces to feed into programs
      """
      spacing = np.array(extent/resolution)
      if isolevel >= 0:
          triangles = marching_cubes(data, isolevel)
      else: # Wrong traingle unwinding roder -- god only knows why
          triangles = marching_cubes(-data, -isolevel)
      faces = []
      verts = []
      for i, t in enumerate(triangles):
         faces.append([i * 3, i * 3 +1, i * 3 + 2])
         verts.extend(t)
         
      faces = np.array(faces)
      verts = origin + spacing/2 + np.array(verts)*spacing
      return verts, faces