java.lang.Object
java.awt.event.MouseAdapter
com.marginallyclever.ro3.apps.viewport.viewporttools.SelectionTool
All Implemented Interfaces:
ViewportTool, MouseListener, MouseMotionListener, MouseWheelListener, EventListener

public class SelectionTool extends MouseAdapter implements ViewportTool

A selection tool allows the user to click on the 3D view and change the current Registry.selection.

TODO add shift+ and ctrl+ modifiers to add/remove from selection.
  • Field Details

  • Constructor Details

    • SelectionTool

      public SelectionTool()
  • Method Details

    • activate

      public void activate(List<Node> list)
      This method is called when the tool is activated. It receives the SelectedItems object containing the selected entities and their initial world poses.
      Specified by:
      activate in interface ViewportTool
      Parameters:
      list - The selected items to be manipulated by the tool.
    • deactivate

      public void deactivate()
      This method is called when the tool is deactivated. It allows the tool to perform any necessary cleanup actions before another tool takes over.
      Specified by:
      deactivate in interface ViewportTool
    • handleMouseEvent

      public void handleMouseEvent(MouseEvent event)
      Handles mouse input events for the tool.
      Specified by:
      handleMouseEvent in interface ViewportTool
      Parameters:
      event - The MouseEvent object representing the input event.
    • update

      public void update(double deltaTime)
      Updates the tool's internal state, if necessary.
      Specified by:
      update in interface ViewportTool
      Parameters:
      deltaTime - Time elapsed since the last update.
    • render

      public void render(com.jogamp.opengl.GL3 gl, ShaderProgram shaderProgram)
      Renders any tool-specific visuals to the 3D scene.
      Specified by:
      render in interface ViewportTool
      Parameters:
      gl - The OpenGL context.
    • setViewport

      public void setViewport(Viewport viewport)
      Specified by:
      setViewport in interface ViewportTool
    • isInUse

      public boolean isInUse()
      Returns true if the tool is active (was clicked correctly and could be dragged)
      Specified by:
      isInUse in interface ViewportTool
      Returns:
      true if the tool is active (was clicked correctly and could be dragged)
    • cancelUse

      public void cancelUse()
      Force cancel the tool. useful if two viewporttools are activated at once.
      Specified by:
      cancelUse in interface ViewportTool
    • getStartPoint

      public javax.vecmath.Point3d getStartPoint()
      Returns the point on the tool clicked by the user. This is used to determine which tool is closer to the user.
      Specified by:
      getStartPoint in interface ViewportTool
      Returns:
      the point on the tool clicked by the user.
    • setFrameOfReference

      public void setFrameOfReference(FrameOfReference index)
      Sets the frame of reference for the tool.
      Specified by:
      setFrameOfReference in interface ViewportTool
      Parameters:
      index - 0 for world, 1 for local, 2 for camera.
    • init

      public void init(com.jogamp.opengl.GL3 gl3)
      Description copied from interface: ViewportTool
      This is called when the OpenGL context is created. It should create any resources.
      Specified by:
      init in interface ViewportTool
      Parameters:
      gl3 - the OpenGL context.
    • dispose

      public void dispose(com.jogamp.opengl.GL3 gl3)
      Description copied from interface: ViewportTool
      This is called when the OpenGL context is destroyed. It should release any resources.
      Specified by:
      dispose in interface ViewportTool
      Parameters:
      gl3 - the OpenGL context.