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 SceneGraphObject

    java.lang.Object
      javax.media.j3d.SceneGraphObject

Direct Known Subclasses:
  Node, NodeComponent

    public abstract class SceneGraphObject

extends java.lang.Object

SceneGraphObject is a common superclass for all scene graph component objects. This includes Node, Geometry, Appearance, etc.

Constructor Summary
`SceneGraphObject()` Constructs a SceneGraphObject with default parameters.

Method Summary
`void` | `clearCapability(int bit)` Clear the specified capability bit.
`void` | `clearCapabilityIsFrequent(int bit)` Clears the isFrequent bit associated with the specified capability bit.
`protected void` | `duplicateSceneGraphObject(SceneGraphObject originalNode)` Copies all SceneGraphObject information from `originalNode` into the current node.
`boolean` | `getCapability(int bit)` Retrieves the specified capability bit.
`boolean` | `getCapabilityIsFrequent(int bit)` Retrieves the isFrequent bit associated with the specified capability bit.
`java.lang.Object` | `getUserData()` Retrieves the userData field from this scene graph object.
`boolean` | `isCompiled()` Returns a flag indicating whether the node is part of a scene graph that has been compiled.
`boolean` | `isLive()` Returns a flag indicating whether the node is part of a live scene graph.
`void` | `setCapability(int bit)` Sets the specified capability bit.
`void` | `setCapabilityIsFrequent(int bit)` Sets the isFrequent bit associated with the specified capability bit.
`void` | `setUserData(java.lang.Object userData)` Sets the userData field associated with this scene graph object.
`void` | `updateNodeReferences(NodeReferenceTable referenceTable)` Callback used to allow a node to check if any scene graph objects referenced by that node have been duplicated via a call to `cloneTree`.

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

Constructor Detail

### SceneGraphObject

    public SceneGraphObject()

  Constructs a SceneGraphObject with default parameters. The default values are as follows:
  capability bits : clear (all bits)
  isLive : false
  isCompiled : false
  user data : null

Method Detail

### getCapability

    public final boolean getCapability(int bit)

  Retrieves the specified capability bit. Note that only one capability bit may be retrieved per method invocation--capability bits cannot be ORed together.

  Parameters:
    `bit` - the bit whose value is returned
  Returns:
    true if the bit is set, false if the bit is clear

### setCapability

    public final void setCapability(int bit)

  Sets the specified capability bit. Note that only one capability bit may be set per method invocation--capability bits cannot be ORed together.

  Parameters:
    `bit` - the bit to set
  Throws:
    `RestrictedAccessException` - if this object is part of live or compiled scene graph

### clearCapability

    public final void clearCapability(int bit)

  Clear the specified capability bit. Note that only one capability bit may be cleared per method invocation--capability bits cannot be ORed together.

  Parameters:
    `bit` - the bit to clear
  Throws:
    `RestrictedAccessException` - if this object is part of live or compiled scene graph

### getCapabilityIsFrequent

    public final boolean getCapabilityIsFrequent(int bit)

  Retrieves the isFrequent bit associated with the specified capability bit. Note that only one isFrequent bit, for a single capability bit, may be retrieved per method invocation--capability bits cannot be ORed together.

  Parameters:
    `bit` - the bit whose value is returned
  Returns:
    true if the isFrequent bit is set, false if the isFrequent bit is clear
  Since:
    Java 3D 1.3

### setCapabilityIsFrequent

    public final void setCapabilityIsFrequent(int bit)

  Sets the isFrequent bit associated with the specified capability bit. Setting the isFrequent bit indicates that the application may frequently access or modify those attributes permitted by the associated capability bit. This can be used by Java 3D as a hint to avoid certain optimizations that could cause those accesses or modifications to be expensive. By default the isFrequent bit associated with each capability bit is set.

  Unlike setCapability, this method may be called on a live scene graph object (but not on a compiled object).

  Note that only one isFrequent bit, for a single capability bit, may be set per method invocation--capability bits cannot be ORed together.

  Parameters:
    `bit` - the capability bit for which to set the associated isFrequent bit
  Throws:
    `RestrictedAccessException` - if this object is part of a compiled scene graph
  Since:
    Java 3D 1.3

### clearCapabilityIsFrequent

    public final void clearCapabilityIsFrequent(int bit)

  Clears the isFrequent bit associated with the specified capability bit. Clearing the isFrequent bit indicates that the application will infrequently access or modify those attributes permitted by the associated capability bit. This can be used by Java 3D as a hint to enable certain optimizations that it might otherwise avoid, for example, optimizations that could cause those accesses or modifications to be expensive.

  Unlike clearCapability, this method may be called on a live scene graph object (but not on a compiled object).

  Note that only one isFrequent bit, for a single capability bit, may be cleared per method invocation--capability bits cannot be ORed together.

  Parameters:
    `bit` - the capability bit for which to clear the associated isFrequent bit
  Throws:
    `RestrictedAccessException` - if this object is part of a compiled scene graph
  Since:
    Java 3D 1.3

### isCompiled

    public final boolean isCompiled()

  Returns a flag indicating whether the node is part of a scene graph that has been compiled. If so, then only those capabilities explicitly allowed by the object's capability bits are allowed.

  Returns:
    true if node is part of a compiled scene graph, else false

### isLive

    public final boolean isLive()

  Returns a flag indicating whether the node is part of a live scene graph.

  Returns:
    true if node is part of a live scene graph, else false

### setUserData

    public void setUserData(java.lang.Object userData)

  Sets the userData field associated with this scene graph object. The userData field is a reference to an arbitrary object and may be used to store any user-specific data associated with this scene graph object--it is not used by the Java 3D API. If this object is cloned, the userData field is copied to the newly cloned object.

  Parameters:
    `userData` - a reference to the new userData field

### getUserData

    public java.lang.Object getUserData()

  Retrieves the userData field from this scene graph object.

  Returns:
    the current userData field

### updateNodeReferences

    public void updateNodeReferences(NodeReferenceTable referenceTable)

  Callback used to allow a node to check if any scene graph objects referenced by that node have been duplicated via a call to `cloneTree`. This method is called by `cloneTree` after all nodes in the sub-graph have been duplicated. The cloned Leaf node and cloned NodeComponent's method will be called and the Leaf node/NodeComponent can then look up any object references by using the `getNewObjectReference` method found in the `NodeReferenceTable` object. If a match is found, a reference to the corresponding object in the newly cloned sub-graph is returned. If no corresponding reference is found, either a DanglingReferenceException is thrown or a reference to the original object is returned depending on the value of the `allowDanglingReferences` parameter passed in the `cloneTree` call.

  NOTE: Applications should not call this method directly. It should only be called by the cloneTree method.

  Parameters:
    `referenceTable` - a NodeReferenceTableObject that contains the `getNewObjectReference` method needed to search for new object instances.
  See Also:
    `NodeReferenceTable`, `Node.cloneTree()`, `DanglingReferenceException`

### duplicateSceneGraphObject

    protected void duplicateSceneGraphObject(SceneGraphObject originalNode)

  Copies all SceneGraphObject information from `originalNode` into the current node. This method is called from the `cloneNode` method which is, in turn, called by the `cloneTree` method.

  NOTE: Applications should not call this method directly. It should only be called by the cloneNode method.

  Parameters:
    `originalNode` - the original node to duplicate.
  See Also:
    `Group.cloneNode(boolean)`, `Node.duplicateNode(javax.media.j3d.Node, boolean)`, `Node.cloneTree()`, `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