javax.media.j3d

## Class WakeupOnCollisionExit

- java.lang.Object
- - javax.media.j3d.WakeupCondition
  - - javax.media.j3d.WakeupCriterion
    - - javax.media.j3d.WakeupOnCollisionExit

    public final class WakeupOnCollisionExit
    extends WakeupCriterion

Class specifying a wakeup when the specified object no longer collides with any other object in the scene graph.

### Field Summary

Fields
`static int` `USE_BOUNDS` Use geometric bounds as an approximation in computing collisions.
`static int` `USE_GEOMETRY` Use geometry in computing collisions.

### Constructor Summary

Constructors
Constructor and Description
`WakeupOnCollisionExit(Bounds armingBounds)` Constructs a new WakeupOnCollisionExit criterion.
`WakeupOnCollisionExit(Node armingNode)` Constructs a new WakeupOnCollisionExit criterion.
`WakeupOnCollisionExit(Node armingNode, int speedHint)` Constructs a new WakeupOnCollisionExit criterion.
`WakeupOnCollisionExit(SceneGraphPath armingPath)` Constructs a new WakeupOnCollisionExit criterion.
`WakeupOnCollisionExit(SceneGraphPath armingPath, int speedHint)` Constructs a new WakeupOnCollisionExit criterion.

### Method Summary

Methods
`Bounds` `getArmingBounds()` Returns the bounds object used in specifying the collision condition.
`SceneGraphPath` `getArmingPath()` Returns the path used in specifying the collision condition.
`Bounds` `getTriggeringBounds()` Retrieves the Bounds object that caused the collision
`SceneGraphPath` `getTriggeringPath()` Retrieves the path describing the object causing the collision.

### Methods inherited from class javax.media.j3d.WakeupCriterion

`hasTriggered`

### Methods inherited from class javax.media.j3d.WakeupCondition

`allElements, triggeredElements`

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

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

### Field Detail

#### USE_GEOMETRY

    public static final int USE_GEOMETRY

Use geometry in computing collisions.

See Also:
  Constant Field Values

#### USE_BOUNDS

    public static final int USE_BOUNDS

Use geometric bounds as an approximation in computing collisions.

See Also:
  Constant Field Values

### Constructor Detail

#### WakeupOnCollisionExit

    public WakeupOnCollisionExit(SceneGraphPath armingPath)

Constructs a new WakeupOnCollisionExit criterion.

Parameters:
  `armingPath` - the path used to arm collision detection
Throws:
  `java.lang.IllegalArgumentException` - if object associated with the SceneGraphPath is other than a Group, Shape3D, Morph, or BoundingLeaf node.

#### WakeupOnCollisionExit

    public WakeupOnCollisionExit(SceneGraphPath armingPath,
                         int speedHint)

Constructs a new WakeupOnCollisionExit criterion.

Parameters:
  `armingPath` - the path used to arm collision detection
  `speedHint` - one of USE_GEOMETRY or USE_BOUNDS, specifies how accurately Java 3D will perform collision detection
Throws:
  `java.lang.IllegalArgumentException` - if hint is not one of USE_GEOMETRY or USE_BOUNDS.
  `java.lang.IllegalArgumentException` - if object associated with the SceneGraphPath is other than a Group, Shape3D, Morph, or BoundingLeaf node.

#### WakeupOnCollisionExit

    public WakeupOnCollisionExit(Node armingNode)

Constructs a new WakeupOnCollisionExit criterion.

Parameters:
  `armingNode` - the Group, Shape, or Morph node used to arm collision detection
Throws:
  `java.lang.IllegalArgumentException` - if object is under a SharedGroup node or object is other than a Group, Shape3D, Morph or BoundingLeaf node.

#### WakeupOnCollisionExit

    public WakeupOnCollisionExit(Node armingNode,
                         int speedHint)

Constructs a new WakeupOnCollisionExit criterion.

Parameters:
  `armingNode` - the Group, Shape, or Morph node used to arm collision detection
  `speedHint` - one of USE_GEOMETRY or USE_BOUNDS, specifies how accurately Java 3D will perform collision detection
Throws:
  `java.lang.IllegalArgumentException` - if hint is not one of USE_GEOMETRY or USE_BOUNDS.
  `java.lang.IllegalArgumentException` - if object is under a SharedGroup node or object is other than a Group, Shape3D, Morph or BoundingLeaf node.

#### WakeupOnCollisionExit

    public WakeupOnCollisionExit(Bounds armingBounds)

Constructs a new WakeupOnCollisionExit criterion.

Parameters:
  `armingBounds` - the bounds object used to arm collision detection

### Method Detail

#### getArmingPath

    public SceneGraphPath getArmingPath()

Returns the path used in specifying the collision condition.

Returns:
  the SceneGraphPath object generated when arming this criterion---null implies that a bounds object armed this criteria

#### getArmingBounds

    public Bounds getArmingBounds()

Returns the bounds object used in specifying the collision condition.

Returns:
  the Bounds object generated when arming this criterion---null implies that a SceneGraphPath armed this criteria

#### getTriggeringPath

    public SceneGraphPath getTriggeringPath()

Retrieves the path describing the object causing the collision.

Returns:
  the SceneGraphPath that describes the triggering object.
Throws:
  `java.lang.IllegalStateException` - if not called from within the a behavior's processStimulus method which was awoken by a collision.

#### getTriggeringBounds

    public Bounds getTriggeringBounds()

Retrieves the Bounds object that caused the collision

Returns:
  the colliding Bounds object.
Throws:
  `java.lang.IllegalStateException` - if not called from within the a behavior's processStimulus method which was awoken by a collision.