docstr: Get a tuple of global vertex ID from a local edge ID
  Global vertex ID is calculated as (x + dx) + (y + dy) * W + (z + dz) * W * H
  
  Args:
      edge: local edge ID in the cube
      bfl_vertex: bottom-front-left coordinate of the cube
  
  Returns:
      a pair of global vertex ID
docstr_tok: ["Get","a","tuple","of","global","vertex","ID","from","a","local","edge","ID","Global","vertex","ID","is","calculated","as","(","x","+","dx",")","+","(","y","+","dy",")","*","W","+","(","z","+","dz",")","*","W","*","H","Args",":","edge",":","local","edge","ID","in","the","cube","bfl_vertex",":","bottom-front-left","coordinate","of","the","cube","Returns",":","a","pair","of","global","vertex","ID"]
code: def get_vpair_from_edge(
      self, edge: int, W: int, H: int
  ) -> Tuple[int, int]:
      """
      Get a tuple of global vertex ID from a local edge ID
      Global vertex ID is calculated as (x + dx) + (y + dy) * W + (z + dz) * W * H
  
      Args:
          edge: local edge ID in the cube
          bfl_vertex: bottom-front-left coordinate of the cube
  
      Returns:
          a pair of global vertex ID
      """
      v1, v2 = EDGE_TO_VERTICES[edge]  # two end-points on the edge
      v1_id = (
          self.verts[v1][0]
          + self.verts[v1][1] * W
          + self.verts[v1][2] * W * H
      )
      v2_id = (
          self.verts[v2][0]
          + self.verts[v2][1] * W
          + self.verts[v2][2] * W * H
      )
      return (v1_id, v2_id)
  
file_path: pytorch3d/pytorch3d/ops/marching_cubes.py
imports: from typing import List, Optional, Tuple
  import torch
  from pytorch3d import _C
  from pytorch3d.ops.marching_cubes_data import EDGE_TO_VERTICES, FACE_TABLE, INDEX
  from pytorch3d.transforms import Translate
  from torch.autograd import Function
label_desc: Use image node_id 2 for calling the Cube obj's underlying member method code with example usage: obj.get_vpair_from_edge(edge, W, H) and returns: v1_id,  v2_id