BranchGroups
-
A BranchGroup is a major sub-tree of the
scene graph
-
Can be attached to a Locale
-
Can be compiled as a unit
-
Can be included as a child of a group node in another subgraph
-
Can be reparented or removed at runtime
-
Adding a BranchGroup to a Locale makes the group live
-
Once live, changes are constrained to those enabled by capabilities
-
BranchGroup extends the Group class

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.