javax.media.j3d
Class NodeReferenceTable

java.lang.Object
  |
  +--javax.media.j3d.NodeReferenceTable

public class NodeReferenceTable
extends java.lang.Object

The NodeReferenceTable object is used by a leaf node's updateNodeReferences method called by the cloneTree method. The NodeReferenceTable maps nodes from the original subgraph to the new nodes in the cloned subgraph. This information can then be used to update any cloned leaf node references to reference nodes in the cloned subgraph.

During a cloneTree call, after all nodes have been duplicated, each SceneGraphObject's updateNodeReferences method is called. This method takes a NodeReferenceTable object as a parameter. The SceneGraphObject's updateNodeReferences method can then use the getNewObjectReference method from this object to get updated references to objects that have been duplicated in the new cloneTree sub-graph. If a match is found, a reference to the corresponding SceneGraphObject in the newly cloned sub-graph is returned. If no corresponding reference is found, either a DanglingReferenceException is thrown by the cloneTree method or a reference to the original SceneGraphObject is returned depending on the value of the allowDanglingReferences parameter passed in the cloneTree call.

See Also:
SceneGraphObject.updateNodeReferences(javax.media.j3d.NodeReferenceTable), Node.cloneTree(), DanglingReferenceException

Constructor Summary
NodeReferenceTable()
          Constructs an empty NodeReferenceTable.
 
Method Summary
 SceneGraphObject getNewObjectReference(SceneGraphObject oldReference)
          This method is used in conjunction with the cloneTree method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NodeReferenceTable

public NodeReferenceTable()
Constructs an empty NodeReferenceTable.

Since:
Java 3D 1.2
Method Detail

getNewObjectReference

public final SceneGraphObject getNewObjectReference(SceneGraphObject oldReference)
This method is used in conjunction with the cloneTree method. It can be used by the updateNodeReferences method to see if a SceneGraphObject that is being referenced has been duplicated in the new cloneTree sub-graph.

A SceneGraphObject's updateNodeReferences method would use this method by calling it with the reference to the old (existed before the cloneTree operation) object. If the object has been duplicated in the cloneTree sub-graph, the corresponding object in the cloned sub-graph is returned. If no corresponding reference is found, either a DanglingReferenceException is thrown or a reference to the original SceneGraphObject is returned depending on the value of the allowDanglingReferences parameter passed in the cloneTree call.

Parameters:
oldReference - the reference to the object in the original sub-graph.
Returns:
A reference to the corresponding object in the cloned sub-graph. If no corresponding object exists, either a DanglingReferenceException will be generated by the cloneTree method or a reference to the original object is returned depending on the value of the allowDanglingReferences parameter passed in the cloneTree call.
See Also:
SceneGraphObject.updateNodeReferences(javax.media.j3d.NodeReferenceTable), Node.cloneTree(), DanglingReferenceException