Package 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
Description
`static final 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
Description
`SharedGroup()`
Constructs and initializes a new SharedGroup node object.

## Method Summary

Modifier and Type
Method
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 Details

### 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 Details

### SharedGroup

public SharedGroup()
Constructs and initializes a new SharedGroup node object.

## Method Details

### 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)`