code: def to_homogeneous(pts):
      if isinstance(pts, torch.Tensor):
          return torch.cat(
              [pts, torch.ones_like(pts[..., 0:1])], axis=-1
          )
      elif isinstance(pts, np.ndarray):
          return np.concatenate(
              [pts, np.ones_like(pts[..., 0:1])], axis=-1
          )
  
file_path: ml-neuman/utils/ray_utils.py
imports: import numpy
  import torch
  import igl
  from geometry.pcd_projector import PointCloudProjectorNp
  from utils.constant import DEFAULT_GEO_THRESH, PERTURB_EPSILON
label_desc: Use image node_id 4 for calling a global function with example usage: to_homogeneous(pts) and returns: torch, np