com.sun.j3d.utils.picking

## Class PickCanvas

- java.lang.Object
- - com.sun.j3d.utils.picking.PickTool
  - - com.sun.j3d.utils.picking.PickCanvas

-     public class PickCanvas
      extends PickTool

  A subclass of PickTool, simplifies picking using mouse events from a canvas. This class allows picking using canvas x,y locations by generating the appropriate pick shape.

  The pick tolerance specifies the distance from the pick center to include in the pick shape. A tolerance of 0.0 may speedup picking slightly, but also make it very difficult to pick points and lines.

  The pick canvas can be used to make a series of picks. For example, to initialize the pick canvas:

  >          PickCanvas pickCanvas = new PickCanvas(canvas, scene);
  >          pickCanvas.setMode(PickTool.GEOMETRY_INTERSECT_INFO);
  >          pickCanvas.setTolerance(4.0f);

  Then for each mouse event:

  >          pickCanvas.setShapeLocation(mouseEvent);
  >          PickResult[] results = pickCanvas.pickAll();

  NOTE: For the pickAllSorted or pickClosest methods, the picks will be sorted by the distance from the ViewPlatform to the intersection point.

  See Also:
    `PickTool`

- - ### Field Summary

    - ### Fields inherited from class com.sun.j3d.utils.picking.PickTool

      `BOUNDS, GEOMETRY, GEOMETRY_INTERSECT_INFO, INTERSECT_COORD, INTERSECT_FULL, INTERSECT_TEST, userDefineShape`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PickCanvas(Canvas3D c, BranchGroup b)` Constructor with Canvas3D for mouse events and BranchGroup to be picked.
    `PickCanvas(Canvas3D c, Locale l)` Constructor with Canvas3D for mouse events and Locale to be picked.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Canvas3D` | `getCanvas()` Inquire the canvas to be used for picking operations.
    `float` | `getTolerance()` Get the pick tolerance.
    `void` | `setShapeLocation(int xpos, int ypos)` Set the pick location.
    `void` | `setShapeLocation(java.awt.event.MouseEvent mevent)` Set the pick location.
    `void` | `setTolerance(float t)` Set the picking tolerance.

    - ### Methods inherited from class com.sun.j3d.utils.picking.PickTool

      `getBranchGroup, getLocale, getMode, getPickShape, getStartPosition, pickAll, pickAllSorted, pickAny, pickClosest, setBranchGroup, setCapabilities, setMode, setShape, setShapeBounds, setShapeConeRay, setShapeConeSegment, setShapeCylinderRay, setShapeCylinderSegment, setShapeRay, setShapeSegment`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PickCanvas

          public PickCanvas(Canvas3D c,
                    BranchGroup b)

      Constructor with Canvas3D for mouse events and BranchGroup to be picked.

    - #### PickCanvas

          public PickCanvas(Canvas3D c,
                    Locale l)

      Constructor with Canvas3D for mouse events and Locale to be picked.

  - ### Method Detail

    - #### getCanvas

          public Canvas3D getCanvas()

      Inquire the canvas to be used for picking operations.
      Returns:
        the canvas.

    - #### setTolerance

          public void setTolerance(float t)

      Set the picking tolerance. Objects within this distance (in pixels) to the mouse x,y location will be picked. The default tolerance is 2.0.
      Parameters:
        `t` - The tolerance
      Throws:
        `java.lang.IllegalArgumentException` - if the tolerance is less than 0.

    - #### getTolerance

          public float getTolerance()

      Get the pick tolerance.

    - #### setShapeLocation

          public void setShapeLocation(java.awt.event.MouseEvent mevent)

      Set the pick location. Defines the location on the canvas where the pick is to be performed.
      Parameters:
        `mevent` - The MouseEvent for the picking point

    - #### setShapeLocation

          public void setShapeLocation(int xpos,
                              int ypos)

      Set the pick location. Defines the location on the canvas where the pick is to be performed (upper left corner of canvas is 0,0).
      Parameters:
        `xpos` - the X position of the picking point
        `ypos` - the Y position of the picking point

Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.