code: def on_mouse_press(self, x, y, buttons, modifiers):
          
          self.view['ball'].set_state(Trackball.STATE_ROTATE)
          if (buttons == pyglet.window.mouse.LEFT):
              ctrl = (modifiers & pyglet.window.key.MOD_CTRL)
              shift = (modifiers & pyglet.window.key.MOD_SHIFT)
              if (ctrl and shift):
                  self.view['ball'].set_state(Trackball.STATE_ZOOM)
              elif shift:
                  self.view['ball'].set_state(Trackball.STATE_ROLL)
              elif ctrl:
                  self.view['ball'].set_state(Trackball.STATE_PAN)
          elif (buttons == pyglet.window.mouse.MIDDLE):
              self.view['ball'].set_state(Trackball.STATE_PAN)
          elif (buttons == pyglet.window.mouse.RIGHT):
              self.view['ball'].set_state(Trackball.STATE_ZOOM)
  
          self.view['ball'].down(np.array([x, y]))
          self.scene.camera.transform = self.view['ball'].pose
docs: Set the start point of the drag.