code: def __init__(self, window, *, invert_mouse_zoom=False, **kwargs):
      self.invert_mouse_zoom = invert_mouse_zoom
      self.window = window
      self.camera = window.camera
      self.action = {
          # Rotation around the view Y (up) vector
          "left": False,
          "right": False,
          # Rotation around the view X vector
          "up": False,
          "down": False,
          # Rotation around the view Z vector
          "spin_left": False,
          "spin_right": False,
          # Rotation around the model Z vector
          "rotate_z_neg": False,
          "rotate_z_pos": False,
          # Reset to the default rotation
          "reset_camera": False,
          # Performs camera z-translation
          "zoom_in": False,
          "zoom_out": False,
          # Use alternative sensitivity (speed)
          "modify_sensitivity": False,
          # Rotation presets
          "rot_preset_xy": False,
          "rot_preset_xz": False,
          "rot_preset_yz": False,
          "rot_preset_perspective": False,
          # axes
          "toggle_axes": False,
          "toggle_axe_colors": False,
          # screenshot
          "save_image": False,
      }
  
file_path: sympy/sympy/plotting/pygletplot/plot_controller.py
imports: from pyglet.window import key
  from pyglet.window.mouse import LEFT, RIGHT, MIDDLE
  from sympy.plotting.pygletplot.util import get_direction_vectors, get_basis_vectors
label_desc: Use image node_id 1 to create a new PlotController object  with example: obj = PlotController(window)