class_docstr: Adaptively samples points on each ray between near and far planes whose
  depths are determined based on the distance from the camera center
  to a predefined scene center.
  
  More specifically,
  `min_depth = max(
      (self.scene_center-camera_center).norm() - self.scene_extent, eps
  )` and
  `max_depth = (self.scene_center-camera_center).norm() + self.scene_extent`.
  
  This sampling is ideal for object-centric scenes whose contents are
  centered around a known `self.scene_center` and fit into a bounding sphere
  with a radius of `self.scene_extent`.
  
  Args:
      scene_center: The xyz coordinates of the center of the scene used
          along with `scene_extent` to compute the min and max depth planes
          for sampling ray-points.
      scene_extent: The radius of the scene bounding box centered at `scene_center`.
code: def __post_init__(self):
      super().__post_init__()
      if self.scene_extent <= 0.0:
          raise ValueError(
              "Adaptive raysampler requires self.scene_extent > 0."
          )
      self._scene_center = torch.FloatTensor(self.scene_center)
  
imports: from typing import Optional, Tuple
  import torch
  from pytorch3d.implicitron.tools import camera_utils
  from pytorch3d.implicitron.tools.config import registry, ReplaceableBase
  from pytorch3d.renderer import NDCMultinomialRaysampler
  from pytorch3d.renderer.cameras import CamerasBase
  from pytorch3d.renderer.implicit.utils import HeterogeneousRayBundle
  from .base import EvaluationMode, ImplicitronRayBundle, RenderSamplingMode
label_desc: Use image node_id 1 for calling the AdaptiveRaySampler obj's underlying member method code with example usage: obj.__post_init__() without return types