parameters: (self, point: mn.Vector2i)
docstring: Accepts a point derived from a mouse click event and updates the
          transform of the mouse grabber.
docstring_summary: Accepts a point derived from a mouse click event and updates the
          transform of the mouse grabber.
docstring_tokens: Accepts a point derived from a mouse click event and updates the transform of the mouse grabber .
function: def update_grab_position(self, point: mn.Vector2i) -> None:
          """
          Accepts a point derived from a mouse click event and updates the
          transform of the mouse grabber.
          """
          # check mouse grabber
          if not self.mouse_grabber:
              return
  
          render_camera = self.render_camera.render_camera
          ray = render_camera.unproject(point)
  
          rotation: mn.Matrix3x3 = self.agent_body_node.rotation.to_matrix()
          translation: mn.Vector3 = (
              render_camera.node.absolute_translation
              + ray.direction * self.mouse_grabber.grip_depth
          )
          self.mouse_grabber.update_transform(mn.Matrix4.from_(rotation, translation))
function_tokens: def update_grab_position ( self , point : mn . Vector2i ) -> None : # check mouse grabber if not self . mouse_grabber : return render_camera = self . render_camera . render_camera ray = render_camera . unproject ( point ) rotation : mn . Matrix3x3 = self . agent_body_node . rotation . to_matrix ( ) translation : mn . Vector3 = ( render_camera . node . absolute_translation + ray . direction * self . mouse_grabber . grip_depth ) self . mouse_grabber . update_transform ( mn . Matrix4 . from_ ( rotation , translation ) )