javax.media.j3d
Class NodeComponent

java.lang.Object
  extended by javax.media.j3d.SceneGraphObject
      extended by javax.media.j3d.NodeComponent
Direct Known Subclasses:
Alpha, Appearance, AuralAttributes, ColoringAttributes, DepthComponent, Font3D, Geometry, ImageComponent, LineAttributes, Material, MediaContainer, PointAttributes, PolygonAttributes, RenderingAttributes, Shader, ShaderAttribute, ShaderAttributeSet, ShaderProgram, TexCoordGeneration, Texture, TextureAttributes, TextureUnitState, TransparencyAttributes

public abstract class NodeComponent
extends SceneGraphObject

NodeComponent is a common superclass for all scene graph node component objects such as: Geometry, Appearance, Material, Texture, etc.

For more information, see the Introduction to the Java 3D API.


Field Summary
(package private)  boolean forceDuplicate
           
 
Fields inherited from class javax.media.j3d.SceneGraphObject
nodeHashtable, retained
 
Constructor Summary
NodeComponent()
          Constructs a NodeComponent object with default parameters.
 
Method Summary
(package private)  void checkDuplicateNodeComponent(NodeComponent originalNodeComponent)
          Copies all node information from originalNodeComponent into the current node component.
 NodeComponent cloneNodeComponent()
          Deprecated. As of Java 3D version 1.2, replaced by cloneNodeComponent(boolean forceDuplicate)
 NodeComponent cloneNodeComponent(boolean forceDuplicate)
          Used to create a new instance of a NodeComponent object.
(package private)  void createRetained()
          Creates the retained mode NodeComponentRetained object that this NodeComponent object will point to.
(package private)  void duplicateAttributes(NodeComponent originalNode, boolean forceDuplicate)
          Copies all NodeComponent information from originalNode into the current node.
(package private)  boolean duplicateChild()
          This function is called from getNodeComponent() to see if any of the sub-NodeComponents duplicateOnCloneTree flag is true.
 void duplicateNodeComponent(NodeComponent originalNodeComponent)
          Deprecated. As of Java 3D version 1.2, replaced by duplicateNodeComponent(NodeComponent originalNodeComponent, boolean forceDuplicate)
 void duplicateNodeComponent(NodeComponent originalNodeComponent, boolean forceDuplicate)
          Copies all node information from originalNodeComponent into the current node.
 boolean getDuplicateOnCloneTree()
          Returns this node's duplicateOnCloneTree value.
 void setDuplicateOnCloneTree(boolean duplicate)
          Sets this node's duplicateOnCloneTree value.
(package private)  void validateImageIllegalSharing(ImageComponent image)
           
 
Methods inherited from class javax.media.j3d.SceneGraphObject
capabilityBitsEmpty, checkForLiveOrCompiled, clearCapability, clearCapabilityIsFrequent, clearLive, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getNamePrefix, getNodeComponent, getUserData, isCompiled, isLive, isLiveOrCompiled, setCapability, setCapabilityIsFrequent, setCompiled, setDefaultReadCapabilities, setLive, setName, setUserData, toString, updateNodeReferences
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

forceDuplicate

boolean forceDuplicate
Constructor Detail

NodeComponent

public NodeComponent()
Constructs a NodeComponent object with default parameters. The default values are as follows:

Method Detail

setDuplicateOnCloneTree

public void setDuplicateOnCloneTree(boolean duplicate)
Sets this node's duplicateOnCloneTree value. The duplicateOnCloneTree value is used to determine if NodeComponent objects are to be duplicated or referenced during a cloneTree operation. A value of true means that this NodeComponent object should be duplicated, while a value of false indicates that this NodeComponent object's reference will be copied into the newly cloned object. This value can be overriden via the forceDuplicate parameter of the cloneTree method.

Parameters:
duplicate - the value to set.
See Also:
Node.cloneTree()

getDuplicateOnCloneTree

public boolean getDuplicateOnCloneTree()
Returns this node's duplicateOnCloneTree value. The duplicateOnCloneTree value is used to determine if NodeComponent objects are to be duplicated or referenced during a cloneTree operation. A value of true means that this NodeComponent object should be duplicated, while a value of false indicates that this NodeComponent object's reference will be copied into the newly cloned object. This value can be overriden via the forceDuplicate parameter of the cloneTree method.

Returns:
the value of this node's duplicateOnCloneTree
See Also:
Node.cloneTree()

cloneNodeComponent

public NodeComponent cloneNodeComponent()
Deprecated. As of Java 3D version 1.2, replaced by cloneNodeComponent(boolean forceDuplicate)


duplicateNodeComponent

public void duplicateNodeComponent(NodeComponent originalNodeComponent)
Deprecated. As of Java 3D version 1.2, replaced by duplicateNodeComponent(NodeComponent originalNodeComponent, boolean forceDuplicate)

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


checkDuplicateNodeComponent

final void checkDuplicateNodeComponent(NodeComponent originalNodeComponent)
Copies all node information from originalNodeComponent into the current node component. This method is called from subclass of duplicateNodeComponent method which is, in turn, called by the cloneNodeComponent method. For any NodeComponent objects contained by the object being duplicated, each NodeComponent object's duplicateOnCloneTree value is used to determine whether the NodeComponent should be duplicated in the new node or if just a reference to the current node should be placed in the new node. This flag can be overridden by setting the forceDuplicate parameter in the cloneTree method to true.

Parameters:
originalNodeComponent - the original node component to duplicate.

duplicateNodeComponent

public void duplicateNodeComponent(NodeComponent originalNodeComponent,
                                   boolean forceDuplicate)
Copies all node information from originalNodeComponent into the current node. This method is called from the cloneNodeComponent method which is, in turn, called by the cloneNode method.
NOTE: Applications should not call this method directly. It should only be called by the cloneNode method.

Parameters:
originalNodeComponent - the node to duplicate.
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.
Throws:
RestrictedAccessException - if forceDuplicate is set and this object is part of a compiled scenegraph
Since:
Java 3D 1.2
See Also:
cloneNodeComponent(), Node.cloneNode(boolean), Node.cloneTree()

cloneNodeComponent

public NodeComponent cloneNodeComponent(boolean forceDuplicate)
Used to create a new instance of a NodeComponent object. This routine is called by cloneNode to duplicate the current node.
cloneNodeComponent should be overridden by any user subclassed NodeComponent objects. All subclasses must have their cloneNodeComponent method consist of the following lines:

     public NodeComponent cloneNodeComponent(boolean forceDuplicate) {
         UserNodeComponent unc = new UserNodeComponent();
         unc.duplicateNodeComponent(this, forceDuplicate);
         return unc;
     }
 

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.
Throws:
RestrictedAccessException - if forceDuplicate is set and this object is part of a compiled scenegraph
Since:
Java 3D 1.2
See Also:
duplicateNodeComponent(javax.media.j3d.NodeComponent), Node.cloneNode(boolean), Node.cloneTree()

duplicateAttributes

void duplicateAttributes(NodeComponent originalNode,
                         boolean forceDuplicate)
Copies all NodeComponent information from originalNode into the current node. This method is called from the cloneNode method which is, in turn, called by the cloneTree method.

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

createRetained

void createRetained()
Creates the retained mode NodeComponentRetained object that this NodeComponent object will point to.

Overrides:
createRetained in class SceneGraphObject

duplicateChild

boolean duplicateChild()
This function is called from getNodeComponent() to see if any of the sub-NodeComponents duplicateOnCloneTree flag is true. If it is the case, current NodeComponent needs to duplicate also even though current duplicateOnCloneTree flag is false. This should be overwrite by NodeComponent which contains sub-NodeComponent.


validateImageIllegalSharing

void validateImageIllegalSharing(ImageComponent image)


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