javax.media.j3d

## Class SharedGroup

- java.lang.Object
- - javax.media.j3d.SceneGraphObject
  - - javax.media.j3d.Node
    - - javax.media.j3d.Group
      - - javax.media.j3d.SharedGroup

-     public class SharedGroup
      extends Group

  The SharedGroup provides the ability to manipulate an instanced scene graph. A SharedGroup node allows multiple Link leaf nodes to share its subgraph according to the following semantics:

  - A SharedGroup may be referenced by one or more Link leaf nodes. Any runtime changes to a node or component object in this shared subgraph affect all graphs that refer to this subgraph.

  - A SharedGroup may be compiled by calling its compile method prior to being referenced by any Link leaf nodes.

  - Only Link leaf nodes may refer to SharedGroup nodes. A SharedGroup node cannot have parents or be attached to a Locale.

  A shared subgraph may contain any group node, except an embedded SharedGroup node (SharedGroup nodes cannot have parents). However, only the following leaf nodes may appear in a shared subgraph:

  - Light
  - Link
  - Morph
  - Shape
  - Sound

  An IllegalSharingException is thrown if any of the following leaf nodes appear in a shared subgraph:

  - AlternateAppearance
  - Background
  - Behavior
  - BoundingLeaf
  - Clip
  - Fog
  - ModelClip
  - Soundscape
  - ViewPlatform

  See Also:
    `IllegalSharingException`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ALLOW_LINK_READ` Specifies that this SharedGroup node allows reading the list of links that refer to this node.

    - ### 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_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SharedGroup()` Constructs and initializes a new SharedGroup node object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Node` | `cloneNode(boolean forceDuplicate)` Used to create a new instance of the node.
    `void` | `compile()` Compiles the source SharedGroup associated with this object and creates and caches a compiled scene graph.
    `Link[]` | `getLinks()` Returns the list of Link nodes that refer to this SharedGroup node.

    - ### 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, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable`

    - ### Methods inherited from class javax.media.j3d.SceneGraphObject

      `clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences`

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

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

- - ### Field Detail

    - #### ALLOW_LINK_READ

          public static final int ALLOW_LINK_READ

      Specifies that this SharedGroup node allows reading the list of links that refer to this node.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SharedGroup

          public SharedGroup()

      Constructs and initializes a new SharedGroup node object.

  - ### Method Detail

    - #### getLinks

          public Link[] getLinks()

      Returns the list of Link nodes that refer to this SharedGroup node.
      Returns:
        An array of Link nodes that refer to this SharedGroup node.
      Since:
        Java 3D 1.3

    - #### compile

          public void compile()

      Compiles the source SharedGroup 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.

    - #### cloneNode

          public Node cloneNode(boolean forceDuplicate)

      Used to create 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)`

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