class_docstr: Interface implemented by simulators and renderers. 
code: def scene(self, scene: Scene):
      old_scene = self._scene
      if old_scene:
          old_scene.unlink_view(self)
  
      self._scene = scene
      scene.link_view(self)
  
      for trait_name, setters in self.scene_observers.items():
          assert isinstance(setters, (list, tuple))
          for setter in setters:
              if old_scene:
                  old_scene.unobserve(setter, trait_name)
              self._scene.observe(setter, trait_name)
              setter(
                  munch.Munch(
                      new=getattr(scene, trait_name),
                      name=trait_name,
                      owner=scene,
                      type="change",
                  )
              )
  
file_path: kubric/kubric/core/view.py
imports: import abc
  from typing import Any, Callable, Dict, List
  from types import MappingProxyType
  import munch
  from kubric.core.scene import Scene
  from kubric.core.assets import Asset
  from kubric.core.assets import UndefinedAsset
label_desc: Use image node_id 3 for calling the View obj's underlying member method code with example usage: obj.scene(scene) without return types