class_docstr: Class to handle camera geometry.
class_docstr_tok: ["Class","to","handle","camera","geometry","."]
docstr: Constructor for camera class.
docstr_tok: ["Constructor","for","camera","class","."]
code: def __init__(
      self,
      orientation: np.ndarray,
      position: np.ndarray,
      focal_length: Union[np.ndarray, float],
      principal_point: np.ndarray,
      image_size: np.ndarray,
      skew: Union[np.ndarray, float] = 0.0,
      pixel_aspect_ratio: Union[np.ndarray, float] = 1.0,
      radial_distortion: Optional[np.ndarray] = None,
      tangential_distortion: Optional[np.ndarray] = None,
      dtype=np.float32,
  ):
      """Constructor for camera class."""
      if radial_distortion is None:
          radial_distortion = np.array([0.0, 0.0, 0.0], dtype)
      if tangential_distortion is None:
          tangential_distortion = np.array([0.0, 0.0], dtype)
  
      self.orientation = np.array(orientation, dtype)
      self.position = np.array(position, dtype)
      self.focal_length = np.array(focal_length, dtype)
      self.principal_point = np.array(principal_point, dtype)
      self.skew = np.array(skew, dtype)
      self.pixel_aspect_ratio = np.array(pixel_aspect_ratio, dtype)
      self.radial_distortion = np.array(radial_distortion, dtype)
      self.tangential_distortion = np.array(
          tangential_distortion, dtype
      )
      self.image_size = np.array(image_size, np.uint32)
      self.dtype = dtype
  
imports: import copy
  import json
  from typing import Tuple, Union, Optional
  import numpy
  from nerfies import gpath
  from nerfies import types
label_desc: Use image node_id 1 to create a new Camera object  with example: obj = Camera(orientation, position, focal_length, principal_point, image_size, skew, pixel_aspect_ratio, radial_distortion, tangential_distortion, dtype)