Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.media.j3d
Class BranchGroup

    java.lang.Object
      javax.media.j3d.SceneGraphObject
          javax.media.j3d.Node
              javax.media.j3d.Group
                  javax.media.j3d.BranchGroup

Direct Known Subclasses:
  PlatformGeometry, ViewerAvatar, ViewingPlatform

    public class BranchGroup

extends Group

The BranchGroup serves as a pointer to the root of a scene graph branch; BranchGroup objects are the only objects that can be inserted into a Locale's set of objects. A subgraph, rooted by a BranchGroup node can be thought of as a compile unit. The following things may be done with BranchGroup:

- A BranchGroup may be compiled by calling its compile method. This causes the entire subgraph to be compiled. If any BranchGroup nodes are contained within the subgraph, they are compiled as well (along with their descendants).

- A BranchGroup may be inserted into a virtual universe by attaching it to a Locale. The entire subgraph is then said to be live.

- A BranchGroup that is contained within another subgraph may be reparented or detached at run time if the appropriate capabilities are set.

Note that that if a BranchGroup is included in another subgraph, as a child of some other group node, it may not be attached to a Locale.

Field Summary
`static int` | `ALLOW_DETACH` For BranchGroup nodes, specifies that this BranchGroup allows detaching from its parent.

Fields inherited from class javax.media.j3d.Group
`ALLOW_CHILDREN_EXTEND, ALLOW_CHILDREN_READ, ALLOW_CHILDREN_WRITE, ALLOW_COLLISION_BOUNDS_READ, ALLOW_COLLISION_BOUNDS_WRITE`

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
`BranchGroup()` Constructs and initializes a new BranchGroup node object.

Method Summary
`Node` | `cloneNode(boolean forceDuplicate)` Creates a new instance of the node.
`void` | `compile()` Compiles the source BranchGroup associated with this object and creates and caches a compiled scene graph.
`void` | `detach()` Detaches this BranchGroup from its parent.
`SceneGraphPath[]` | `pickAll(PickShape pickShape)` Returns an array referencing all the items that are pickable below this `BranchGroup` that intersect with PickShape.
`SceneGraphPath[]` | `pickAllSorted(PickShape pickShape)` Returns a sorted array of references to all the Pickable items that intersect with the pickShape.
`SceneGraphPath` | `pickAny(PickShape pickShape)` Returns a reference to any item that is Pickable below this BranchGroup that intersects with `pickShape`.
`SceneGraphPath` | `pickClosest(PickShape pickShape)` Returns a SceneGraphPath that references the pickable item closest to the origin of `pickShape`.

Methods inherited from class javax.media.j3d.Group
`addChild, getAllChildren, getAlternateCollisionTarget, getChild, getCollisionBounds, indexOfChild, insertChild, moveTo, numChildren, removeAllChildren, removeChild, removeChild, setAlternateCollisionTarget, setChild, setCollisionBounds`

Methods inherited from class javax.media.j3d.Node
`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, updateNodeReferences`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ALLOW_DETACH

    public static final int ALLOW_DETACH

  For BranchGroup nodes, specifies that this BranchGroup allows detaching from its parent.

  See Also:
    Constant Field Values

Constructor Detail

### BranchGroup

    public BranchGroup()

  Constructs and initializes a new BranchGroup node object.

Method Detail

### compile

    public void compile()

  Compiles the source BranchGroup associated with this object and creates and caches a compiled scene graph.

  Throws:
    `SceneGraphCycleException` - if there is a cycle in the scene graph
    `RestrictedAccessException` - if the method is called when this object is part of a live scene graph.

### detach

    public void detach()

  Detaches this BranchGroup from its parent.

### pickAll

    public SceneGraphPath[] pickAll(PickShape pickShape)

  Returns an array referencing all the items that are pickable below this `BranchGroup` that intersect with PickShape. The resultant array is unordered.

  Parameters:
    `pickShape` - the PickShape object
  Throws:
    `java.lang.IllegalStateException` - if BranchGroup is not live.
  See Also:
    `SceneGraphPath`, `Locale.pickAll(javax.media.j3d.PickShape)`, `PickShape`

### pickAllSorted

    public SceneGraphPath[] pickAllSorted(PickShape pickShape)

  Returns a sorted array of references to all the Pickable items that intersect with the pickShape. Element [0] references the item closest to origin of PickShape successive array elements are further from the origin Note: If pickShape is of type PickBounds, the resulting array is unordered.

  Parameters:
    `pickShape` - the PickShape object
  Throws:
    `java.lang.IllegalStateException` - if BranchGroup is not live.
  See Also:
    `SceneGraphPath`, `Locale.pickAllSorted(javax.media.j3d.PickShape)`, `PickShape`

### pickClosest

    public SceneGraphPath pickClosest(PickShape pickShape)

  Returns a SceneGraphPath that references the pickable item closest to the origin of `pickShape`. Note: If pickShape is of type PickBounds, the return is any pickable node below this BranchGroup.

  Parameters:
    `pickShape` - the PickShape object
  Throws:
    `java.lang.IllegalStateException` - if BranchGroup is not live.
  See Also:
    `SceneGraphPath`, `Locale.pickClosest(javax.media.j3d.PickShape)`, `PickShape`

### pickAny

    public SceneGraphPath pickAny(PickShape pickShape)

  Returns a reference to any item that is Pickable below this BranchGroup that intersects with `pickShape`.

  Parameters:
    `pickShape` - the PickShape object
  Throws:
    `java.lang.IllegalStateException` - if BranchGroup is not live.
  See Also:
    `SceneGraphPath`, `Locale.pickAny(javax.media.j3d.PickShape)`, `PickShape`

### cloneNode

    public Node cloneNode(boolean forceDuplicate)

  Creates a new instance of the node. This routine is called by `cloneTree` to duplicate the current node.

  Overrides:
    `cloneNode` in class `Group`
  Parameters:
    `forceDuplicate` - when set to `true`, causes the `duplicateOnCloneTree` flag to be ignored. When `false`, the value of each node's `duplicateOnCloneTree` variable determines whether NodeComponent data is duplicated or copied.
  See Also:
    `Node.cloneTree()`, `Node.cloneNode(boolean)`, `Node.duplicateNode(javax.media.j3d.Node, boolean)`, `NodeComponent.setDuplicateOnCloneTree(boolean)`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD