code: def setup(self):
      self.camera = PlotCamera(self, ortho=self.ortho)
      self.controller = PlotController(
          self, invert_mouse_zoom=self.invert_mouse_zoom
      )
      self.push_handlers(self.controller)
  
      pgl.glClearColor(1.0, 1.0, 1.0, 0.0)
      pgl.glClearDepth(1.0)
  
      pgl.glDepthFunc(pgl.GL_LESS)
      pgl.glEnable(pgl.GL_DEPTH_TEST)
  
      pgl.glEnable(pgl.GL_LINE_SMOOTH)
      pgl.glShadeModel(pgl.GL_SMOOTH)
      pgl.glLineWidth(self.linewidth)
  
      pgl.glEnable(pgl.GL_BLEND)
      pgl.glBlendFunc(pgl.GL_SRC_ALPHA, pgl.GL_ONE_MINUS_SRC_ALPHA)
  
      if self.antialiasing:
          pgl.glHint(pgl.GL_LINE_SMOOTH_HINT, pgl.GL_NICEST)
          pgl.glHint(pgl.GL_POLYGON_SMOOTH_HINT, pgl.GL_NICEST)
  
      self.camera.setup_projection()
  
file_path: sympy/sympy/plotting/pygletplot/plot_window.py
imports: from time import perf_counter
  import pyglet.gl
  from sympy.plotting.pygletplot.managed_window import ManagedWindow
  from sympy.plotting.pygletplot.plot_camera import PlotCamera
  from sympy.plotting.pygletplot.plot_controller import PlotController
label_desc: Use image node_id 2 for calling the PlotWindow obj's underlying member method code with example usage: obj.setup() without return types