code: def shot_ray(cap, x, y):
      z = np.array([[1]])
      xy = np.array([[x, y]])
      pcd_3d = PointCloudProjectorNp.pcd_2d_to_pcd_3d(
          xy,
          z,
          cap.intrinsic_matrix,
          cam2world=cap.cam_pose.camera_to_world,
      )[0].astype(np.float32)
      orig = cap.cam_pose.camera_center_in_world
      dir = pcd_3d - orig
      dir = dir / np.linalg.norm(dir)
      return orig, dir
  
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 1 for calling a global function with example usage: shot_ray(cap, x, y) and returns: orig,  dir