org.wilmascope.view
Class GraphPickBehavior

java.lang.Object
  extended by javax.media.j3d.SceneGraphObject
      extended by javax.media.j3d.Node
          extended by javax.media.j3d.Leaf
              extended by javax.media.j3d.Behavior
                  extended by com.sun.j3d.utils.picking.behaviors.PickMouseBehavior
                      extended by org.wilmascope.view.GraphPickBehavior

public class GraphPickBehavior
extends com.sun.j3d.utils.picking.behaviors.PickMouseBehavior

A mouse behavior that allows user to pick and drag scene graph objects. Common usage:

1. Create your scene graph.

2. Create this behavior with root and canvas.

        GraphPickBehavior behavior = new GraphPickBehavior(canvas, root, bounds);
      root.addChild(behavior);
 

The above behavior will monitor for any picking events on the scene graph (below root node) and handle mouse drags on pick hits. Note the root node can also be a subgraph node of the scene graph (rather than the topmost).


Field Summary
 
Fields inherited from class com.sun.j3d.utils.picking.behaviors.PickMouseBehavior
buttonPress, conditions, currGrp, debug, mevent, pickCanvas, wakeupCondition
 
Fields inherited from class javax.media.j3d.Node
ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING
 
Constructor Summary
GraphPickBehavior(javax.media.j3d.BranchGroup root, javax.media.j3d.Canvas3D canvas, javax.media.j3d.Bounds bounds)
          Creates a pick/rotate behavior that waits for user mouse events for the scene graph.
GraphPickBehavior(javax.media.j3d.BranchGroup root, javax.media.j3d.Canvas3D canvas, javax.media.j3d.Bounds bounds, int pickMode)
          Creates a pick/rotate behavior that waits for user mouse events for the scene graph.
 
Method Summary
 void setRootPickingClient(PickingClient client)
           
 void updateScene(int xpos, int ypos)
          Update the scene to manipulate any nodes.
 
Methods inherited from class com.sun.j3d.utils.picking.behaviors.PickMouseBehavior
getMode, getTolerance, initialize, processStimulus, setMode, setTolerance
 
Methods inherited from class javax.media.j3d.Behavior
getEnable, getNumSchedulingIntervals, getSchedulingBoundingLeaf, getSchedulingBounds, getSchedulingInterval, getView, getWakeupCondition, postId, setEnable, setSchedulingBoundingLeaf, setSchedulingBounds, setSchedulingInterval, updateNodeReferences, wakeupOn
 
Methods inherited from class javax.media.j3d.Node
cloneNode, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable
 
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setUserData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GraphPickBehavior

public GraphPickBehavior(javax.media.j3d.BranchGroup root,
                         javax.media.j3d.Canvas3D canvas,
                         javax.media.j3d.Bounds bounds)
Creates a pick/rotate behavior that waits for user mouse events for the scene graph. This method has its pickMode set to BOUNDS picking.

Parameters:
root - Root of your scene graph.
canvas - Java 3D drawing canvas.
bounds - Bounds of your scene.

GraphPickBehavior

public GraphPickBehavior(javax.media.j3d.BranchGroup root,
                         javax.media.j3d.Canvas3D canvas,
                         javax.media.j3d.Bounds bounds,
                         int pickMode)
Creates a pick/rotate behavior that waits for user mouse events for the scene graph.

Parameters:
root - Root of your scene graph.
canvas - Java 3D drawing canvas.
bounds - Bounds of your scene.
pickMode - specifys PickObject.USE_BOUNDS or PickObject.USE_GEOMETRY. Note: If pickMode is set to PickObject.USE_GEOMETRY, all geometry object in the scene graph that allows pickable must have its ALLOW_INTERSECT bit set.
Method Detail

setRootPickingClient

public void setRootPickingClient(PickingClient client)

updateScene

public void updateScene(int xpos,
                        int ypos)
Update the scene to manipulate any nodes. This is not meant to be called by users. Behavior automatically calls this. You can call this only if you know what you are doing.

Specified by:
updateScene in class com.sun.j3d.utils.picking.behaviors.PickMouseBehavior
Parameters:
xpos - Current mouse X pos.
ypos - Current mouse Y pos.