class_docstr: Class to manage uniform ray spatial sampling for all camera scene pixels.
  
  Args:
      min_depth: sampled rays minimal depth from cameras: float
      max_depth: sampled rays maximal depth from cameras: float
      ndc: convert to normalized device coordinates: bool
      device: device for ray tensors: Union[str, torch.device]
code: def calc_ray_params(self, cameras: PinholeCamera) -> None:
      points_2d_camera = self.sample_points_2d(
          cameras.height, cameras.width
      )
      self._calc_ray_params(cameras, points_2d_camera)
  
imports: import math
  from typing import Dict, List, Tuple
  import torch
  from kornia.core import Device, Tensor, tensor
  from kornia.geometry.camera import PinholeCamera
  from kornia.nerf.camera_utils import cameras_for_ids
  from kornia.utils._compat import torch_meshgrid
  from kornia.utils.helpers import _torch_inverse_cast
label_desc: Use image node_id 3 for calling the UniformRaySampler obj's underlying member method code with example usage: obj.calc_ray_params(cameras) without return types