## javax.media.j3d
Class Appearance

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

Direct Known Subclasses:
  ShaderAppearance

    public class Appearance

extends NodeComponent

The Appearance object defines all rendering state that can be set as a component object of a Shape3D node. The rendering state consists of the following:

- Coloring attributes - defines attributes used in color selection and shading. These attributes are defined in a ColoringAttributes object.

- Line attributes - defines attributes used to define lines, including the pattern, width, and whether antialiasing is to be used. These attributes are defined in a LineAttributes object.

- Point attributes - defines attributes used to define points, including the size and whether antialiasing is to be used. These attributes are defined in a PointAttributes object.

- Polygon attributes - defines the attributes used to define polygons, including culling, rasterization mode (filled, lines, or points), constant offset, offset factor, and whether back back facing normals are flipped. These attributes are defined in a PolygonAttributes object.

- Rendering attributes - defines rendering operations, including the alpha test function and test value, the raster operation, whether vertex colors are ignored, whether invisible objects are rendered, and whether the depth buffer is enabled. These attributes are defined in a RenderingAttributes object.

- Transparency attributes - defines the attributes that affect transparency of the object, such as the transparency mode (blended, screen-door), blending function (used in transparency and antialiasing operations), and a blend value that defines the amount of transparency to be applied to this Appearance component object.

- Material - defines the appearance of an object under illumination, such as the ambient color, diffuse color, specular color, emissive color, and shininess. These attributes are defined in a Material object.

- Texture - defines the texture image and filtering parameters used when texture mapping is enabled. These attributes are defined in a Texture object.

- Texture attributes - defines the attributes that apply to texture mapping, such as the texture mode, texture transform, blend color, and perspective correction mode. These attributes are defined in a TextureAttributes object.

- Texture coordinate generation - defines the attributes that apply to texture coordinate generation, such as whether texture coordinate generation is enabled, coordinate format (2D or 3D coordinates), coordinate generation mode (object linear, eye linear, or spherical reflection mapping), and the R, S, and T coordinate plane equations. These attributes are defined in a TexCoordGeneration object.

- Texture unit state - array that defines texture state for each of N separate texture units. This allows multiple textures to be applied to geometry. Each TextureUnitState object contains a Texture object, TextureAttributes, and TexCoordGeneration object for one texture unit. If the length of the texture unit state array is greater than 0, then the array is used for all texture state; the individual Texture, TextureAttributes, and TexCoordGeneration objects in this Appearance object are not used and and must not be set by an application. If the length of the texture unit state array is 0, the multi-texture is disabled and the Texture, TextureAttributes, and TexCoordGeneration objects in the Appearance object are used. If the application sets the existing Texture, TextureAttributes, and TexCoordGeneration objects to non-null values, they effectively define the state for texture unit 0. If the TextureUnitState array is set to a non-null, non-empty array, the individual TextureUnitState objects define the state for texture units 0 through n -1. If both the old and new values are set, an exception is thrown.

See Also:
  `ColoringAttributes`, `LineAttributes`, `PointAttributes`, `PolygonAttributes`, `RenderingAttributes`, `TransparencyAttributes`, `Material`, `Texture`, `TextureAttributes`, `TexCoordGeneration`, `TextureUnitState`

Field Summary
`static int` `ALLOW_COLORING_ATTRIBUTES_READ` Specifies that this Appearance object allows reading its coloringAttributes component information.
`static int` `ALLOW_COLORING_ATTRIBUTES_WRITE` Specifies that this Appearance object allows writing its coloringAttributes component information.
`static int` `ALLOW_LINE_ATTRIBUTES_READ` Specifies that this Appearance object allows reading its line component information.
`static int` `ALLOW_LINE_ATTRIBUTES_WRITE` Specifies that this Appearance object allows writing its line component information.
`static int` `ALLOW_MATERIAL_READ` Specifies that this Appearance object allows reading its material component information.
`static int` `ALLOW_MATERIAL_WRITE` Specifies that this Appearance object allows writing its material component information.
`static int` `ALLOW_POINT_ATTRIBUTES_READ` Specifies that this Appearance object allows reading its point component information.
`static int` `ALLOW_POINT_ATTRIBUTES_WRITE` Specifies that this Appearance object allows writing its point component information.
`static int` `ALLOW_POLYGON_ATTRIBUTES_READ` Specifies that this Appearance object allows reading its polygon component information.
`static int` `ALLOW_POLYGON_ATTRIBUTES_WRITE` Specifies that this Appearance object allows writing its polygon component information.
`static int` `ALLOW_RENDERING_ATTRIBUTES_READ` Specifies that this Appearance object allows reading its rendering/rasterization component information.
`static int` `ALLOW_RENDERING_ATTRIBUTES_WRITE` Specifies that this Appearance object allows writing its rendering/rasterization component information.
`static int` `ALLOW_TEXGEN_READ` Specifies that this Appearance object allows reading its texture coordinate generation component information.
`static int` `ALLOW_TEXGEN_WRITE` Specifies that this Appearance object allows writing its texture coordinate generation component information.
`static int` `ALLOW_TEXTURE_ATTRIBUTES_READ` Specifies that this Appearance object allows reading its textureAttributes component information.
`static int` `ALLOW_TEXTURE_ATTRIBUTES_WRITE` Specifies that this Appearance object allows writing its textureAttributes component information.
`static int` `ALLOW_TEXTURE_READ` Specifies that this Appearance object allows reading its texture component information.
`static int` `ALLOW_TEXTURE_UNIT_STATE_READ` Specifies that this Appearance object allows reading its texture unit state component information.
`static int` `ALLOW_TEXTURE_UNIT_STATE_WRITE` Specifies that this Appearance object allows writing its texture unit state component information.
`static int` `ALLOW_TEXTURE_WRITE` Specifies that this Appearance object allows writing its texture component information.
`static int` `ALLOW_TRANSPARENCY_ATTRIBUTES_READ` Specifies that this Appearance object allows reading its transparency component information.
`static int` `ALLOW_TRANSPARENCY_ATTRIBUTES_WRITE` Specifies that this Appearance object allows writing its transparency component information.

Constructor Summary
`Appearance()` Constructs an Appearance component object using defaults for all state variables.

Method Summary
`NodeComponent` `cloneNodeComponent()` Deprecated. replaced with cloneNodeComponent(boolean forceDuplicate)
`void` `duplicateNodeComponent(NodeComponent originalNodeComponent)` Deprecated. replaced with duplicateNodeComponent( NodeComponent originalNodeComponent, boolean forceDuplicate)
`ColoringAttributes` `getColoringAttributes()` Retrieves the current coloringAttributes object.
`LineAttributes` `getLineAttributes()` Retrieves the current lineAttributes object.
`Material` `getMaterial()` Retrieves the current material object.
`PointAttributes` `getPointAttributes()` Retrieves the current pointAttributes object.
`PolygonAttributes` `getPolygonAttributes()` Retrieves the current polygonAttributes object.
`RenderingAttributes` `getRenderingAttributes()` Retrieves the current renderingAttributes object.
`TexCoordGeneration` `getTexCoordGeneration()` Retrieves the current texCoordGeneration object.
`Texture` `getTexture()` Retrieves the current texture object.
`TextureAttributes` `getTextureAttributes()` Retrieves the current textureAttributes object.
`int` `getTextureUnitCount()` Retrieves the length of the texture unit state array from this appearance object.
`TextureUnitState[]` `getTextureUnitState()` Retrieves the array of texture unit state objects from this Appearance object.
`TextureUnitState` `getTextureUnitState(int index)` Retrieves the texture unit state object at the specified index within the texture unit state array.
`TransparencyAttributes` `getTransparencyAttributes()` Retrieves the current transparencyAttributes object.
`void` `setColoringAttributes(ColoringAttributes coloringAttributes)` Sets the coloringAttributes object to the specified object.
`void` `setLineAttributes(LineAttributes lineAttributes)` Sets the lineAttributes object to the specified object.
`void` `setMaterial(Material material)` Sets the material object to the specified object.
`void` `setPointAttributes(PointAttributes pointAttributes)` Sets the pointAttributes object to the specified object.
`void` `setPolygonAttributes(PolygonAttributes polygonAttributes)` Sets the polygonAttributes object to the specified object.
`void` `setRenderingAttributes(RenderingAttributes renderingAttributes)` Sets the renderingAttributes object to the specified object.
`void` `setTexCoordGeneration(TexCoordGeneration texCoordGeneration)` Sets the texCoordGeneration object to the specified object.
`void` `setTexture(Texture texture)` Sets the texture object to the specified object.
`void` `setTextureAttributes(TextureAttributes textureAttributes)` Sets the textureAttributes object to the specified object.
`void` `setTextureUnitState(int index, TextureUnitState state)` Sets the texture unit state object at the specified index within the texture unit state array to the specified object.
`void` `setTextureUnitState(TextureUnitState[] stateArray)` Sets the texture unit state array for this appearance object to the specified array.
`void` `setTransparencyAttributes(TransparencyAttributes transparencyAttributes)` Sets the transparencyAttributes object to the specified object.

Methods inherited from class javax.media.j3d.NodeComponent
`cloneNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree`

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_COLORING_ATTRIBUTES_READ

    public static final int ALLOW_COLORING_ATTRIBUTES_READ

  Specifies that this Appearance object allows reading its coloringAttributes component information.

  See Also:
    Constant Field Values

### ALLOW_COLORING_ATTRIBUTES_WRITE

    public static final int ALLOW_COLORING_ATTRIBUTES_WRITE

  Specifies that this Appearance object allows writing its coloringAttributes component information.

  See Also:
    Constant Field Values

### ALLOW_TRANSPARENCY_ATTRIBUTES_READ

    public static final int ALLOW_TRANSPARENCY_ATTRIBUTES_READ

  Specifies that this Appearance object allows reading its transparency component information.

  See Also:
    Constant Field Values

### ALLOW_TRANSPARENCY_ATTRIBUTES_WRITE

    public static final int ALLOW_TRANSPARENCY_ATTRIBUTES_WRITE

  Specifies that this Appearance object allows writing its transparency component information.

  See Also:
    Constant Field Values

### ALLOW_RENDERING_ATTRIBUTES_READ

    public static final int ALLOW_RENDERING_ATTRIBUTES_READ

  Specifies that this Appearance object allows reading its rendering/rasterization component information.

  See Also:
    Constant Field Values

### ALLOW_RENDERING_ATTRIBUTES_WRITE

    public static final int ALLOW_RENDERING_ATTRIBUTES_WRITE

  Specifies that this Appearance object allows writing its rendering/rasterization component information.

  See Also:
    Constant Field Values

### ALLOW_POLYGON_ATTRIBUTES_READ

    public static final int ALLOW_POLYGON_ATTRIBUTES_READ

  Specifies that this Appearance object allows reading its polygon component information.

  See Also:
    Constant Field Values

### ALLOW_POLYGON_ATTRIBUTES_WRITE

    public static final int ALLOW_POLYGON_ATTRIBUTES_WRITE

  Specifies that this Appearance object allows writing its polygon component information.

  See Also:
    Constant Field Values

### ALLOW_LINE_ATTRIBUTES_READ

    public static final int ALLOW_LINE_ATTRIBUTES_READ

  Specifies that this Appearance object allows reading its line component information.

  See Also:
    Constant Field Values

### ALLOW_LINE_ATTRIBUTES_WRITE

    public static final int ALLOW_LINE_ATTRIBUTES_WRITE

  Specifies that this Appearance object allows writing its line component information.

  See Also:
    Constant Field Values

### ALLOW_POINT_ATTRIBUTES_READ

    public static final int ALLOW_POINT_ATTRIBUTES_READ

  Specifies that this Appearance object allows reading its point component information.

  See Also:
    Constant Field Values

### ALLOW_POINT_ATTRIBUTES_WRITE

    public static final int ALLOW_POINT_ATTRIBUTES_WRITE

  Specifies that this Appearance object allows writing its point component information.

  See Also:
    Constant Field Values

### ALLOW_MATERIAL_READ

    public static final int ALLOW_MATERIAL_READ

  Specifies that this Appearance object allows reading its material component information.

  See Also:
    Constant Field Values

### ALLOW_MATERIAL_WRITE

    public static final int ALLOW_MATERIAL_WRITE

  Specifies that this Appearance object allows writing its material component information.

  See Also:
    Constant Field Values

### ALLOW_TEXTURE_READ

    public static final int ALLOW_TEXTURE_READ

  Specifies that this Appearance object allows reading its texture component information.

  See Also:
    Constant Field Values

### ALLOW_TEXTURE_WRITE

    public static final int ALLOW_TEXTURE_WRITE

  Specifies that this Appearance object allows writing its texture component information.

  See Also:
    Constant Field Values

### ALLOW_TEXTURE_ATTRIBUTES_READ

    public static final int ALLOW_TEXTURE_ATTRIBUTES_READ

  Specifies that this Appearance object allows reading its textureAttributes component information.

  See Also:
    Constant Field Values

### ALLOW_TEXTURE_ATTRIBUTES_WRITE

    public static final int ALLOW_TEXTURE_ATTRIBUTES_WRITE

  Specifies that this Appearance object allows writing its textureAttributes component information.

  See Also:
    Constant Field Values

### ALLOW_TEXGEN_READ

    public static final int ALLOW_TEXGEN_READ

  Specifies that this Appearance object allows reading its texture coordinate generation component information.

  See Also:
    Constant Field Values

### ALLOW_TEXGEN_WRITE

    public static final int ALLOW_TEXGEN_WRITE

  Specifies that this Appearance object allows writing its texture coordinate generation component information.

  See Also:
    Constant Field Values

### ALLOW_TEXTURE_UNIT_STATE_READ

    public static final int ALLOW_TEXTURE_UNIT_STATE_READ

  Specifies that this Appearance object allows reading its texture unit state component information.

  Since:
    Java 3D 1.2
  See Also:
    Constant Field Values

### ALLOW_TEXTURE_UNIT_STATE_WRITE

    public static final int ALLOW_TEXTURE_UNIT_STATE_WRITE

  Specifies that this Appearance object allows writing its texture unit state component information.

  Since:
    Java 3D 1.2
  See Also:
    Constant Field Values

Constructor Detail

### Appearance

    public Appearance()

  Constructs an Appearance component object using defaults for all state variables. All component object references are initialized to null.

Method Detail

### setMaterial

    public void setMaterial(Material material)

  Sets the material object to the specified object. Setting it to null disables lighting.

  Parameters:
    `material` - object that specifies the desired material properties
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getMaterial

    public Material getMaterial()

  Retrieves the current material object.

  Returns:
    the material object
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setColoringAttributes

    public void setColoringAttributes(ColoringAttributes coloringAttributes)

  Sets the coloringAttributes object to the specified object. Setting it to null will result in default attribute usage.

  Parameters:
    `coloringAttributes` - object that specifies the desired coloringAttributes parameters
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getColoringAttributes

    public ColoringAttributes getColoringAttributes()

  Retrieves the current coloringAttributes object.

  Returns:
    the coloringAttributes object
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setTransparencyAttributes

    public void setTransparencyAttributes(TransparencyAttributes transparencyAttributes)

  Sets the transparencyAttributes object to the specified object. Setting it to null will result in default attribute usage.

  Parameters:
    `transparencyAttributes` - object that specifies the desired transparencyAttributes parameters
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getTransparencyAttributes

    public TransparencyAttributes getTransparencyAttributes()

  Retrieves the current transparencyAttributes object.

  Returns:
    the transparencyAttributes object
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setRenderingAttributes

    public void setRenderingAttributes(RenderingAttributes renderingAttributes)

  Sets the renderingAttributes object to the specified object. Setting it to null will result in default attribute usage.

  Parameters:
    `renderingAttributes` - object that specifies the desired renderingAttributes parameters
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getRenderingAttributes

    public RenderingAttributes getRenderingAttributes()

  Retrieves the current renderingAttributes object.

  Returns:
    the renderingAttributes object
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setPolygonAttributes

    public void setPolygonAttributes(PolygonAttributes polygonAttributes)

  Sets the polygonAttributes object to the specified object. Setting it to null will result in default attribute usage.

  Parameters:
    `polygonAttributes` - object that specifies the desired polygonAttributes parameters
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getPolygonAttributes

    public PolygonAttributes getPolygonAttributes()

  Retrieves the current polygonAttributes object.

  Returns:
    the polygonAttributes object
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setLineAttributes

    public void setLineAttributes(LineAttributes lineAttributes)

  Sets the lineAttributes object to the specified object. Setting it to null will result in default attribute usage.

  Parameters:
    `lineAttributes` - object that specifies the desired lineAttributes parameters
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getLineAttributes

    public LineAttributes getLineAttributes()

  Retrieves the current lineAttributes object.

  Returns:
    the lineAttributes object
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setPointAttributes

    public void setPointAttributes(PointAttributes pointAttributes)

  Sets the pointAttributes object to the specified object. Setting it to null will result in default attribute usage.

  Parameters:
    `pointAttributes` - object that specifies the desired pointAttributes parameters
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getPointAttributes

    public PointAttributes getPointAttributes()

  Retrieves the current pointAttributes object.

  Returns:
    the pointAttributes object
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setTexture

    public void setTexture(Texture texture)

  Sets the texture object to the specified object. Setting it to null disables texture mapping.

  Applications must not set individual texture component objects (texture, textureAttributes, or texCoordGeneration) and the texture unit state array in the same Appearance object. Doing so will result in an exception being thrown.

  Parameters:
    `texture` - object that specifies the desired texture map and texture parameters
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    `java.lang.IllegalStateException` - if the specified texture object is non-null and the texture unit state array in this appearance object is already non-null.
    `IllegalSharingException` - if this Appearance is live and the specified texture refers to an ImageComponent2D that is being used by a Canvas3D as an off-screen buffer.
    `IllegalSharingException` - if this Appearance is being used by an immediate mode context and the specified texture refers to an ImageComponent2D that is being used by a Canvas3D as an off-screen buffer.

### getTexture

    public Texture getTexture()

  Retrieves the current texture object.

  Returns:
    the texture object
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setTextureAttributes

    public void setTextureAttributes(TextureAttributes textureAttributes)

  Sets the textureAttributes object to the specified object. Setting it to null will result in default attribute usage.

  Applications must not set individual texture component objects (texture, textureAttributes, or texCoordGeneration) and the texture unit state array in the same Appearance object. Doing so will result in an exception being thrown.

  Parameters:
    `textureAttributes` - object that specifies the desired textureAttributes map and textureAttributes parameters
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    `java.lang.IllegalStateException` - if the specified textureAttributes object is non-null and the texture unit state array in this appearance object is already non-null.

### getTextureAttributes

    public TextureAttributes getTextureAttributes()

  Retrieves the current textureAttributes object.

  Returns:
    the textureAttributes object
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setTexCoordGeneration

    public void setTexCoordGeneration(TexCoordGeneration texCoordGeneration)

  Sets the texCoordGeneration object to the specified object. Setting it to null disables texture coordinate generation.

  Applications must not set individual texture component objects (texture, textureAttributes, or texCoordGeneration) and the texture unit state array in the same Appearance object. Doing so will result in an exception being thrown.

  Parameters:
    `texCoordGeneration` - object that specifies the texture coordinate generation parameters
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    `java.lang.IllegalStateException` - if the specified texCoordGeneration object is non-null and the texture unit state array in this appearance object is already non-null.

### getTexCoordGeneration

    public TexCoordGeneration getTexCoordGeneration()

  Retrieves the current texCoordGeneration object.

  Returns:
    the texCoordGeneration object
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setTextureUnitState

    public void setTextureUnitState(TextureUnitState[] stateArray)

  Sets the texture unit state array for this appearance object to the specified array. A shallow copy of the array of references to the TextureUnitState objects is made. If the specified array is null or if the length of the array is 0, multi-texture is disabled. Within the array, a null TextureUnitState element disables the corresponding texture unit.

  Applications must not set individual texture component objects (texture, textureAttributes, or texCoordGeneration) and the texture unit state array in the same Appearance object. Doing so will result in an exception being thrown.

  Parameters:
    `stateArray` - array of TextureUnitState objects that specify the desired texture state for each unit. The length of this array specifies the maximum number of texture units that will be used by this appearance object. The texture units are numbered from `0` through `stateArray.length-1`.
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    `java.lang.IllegalStateException` - if the specified array is non-null and any of the texture object, textureAttributes object, or texCoordGeneration object in this appearance object is already non-null.
    `IllegalSharingException` - if this Appearance is live and any of the specified textures refers to an ImageComponent2D that is being used by a Canvas3D as an off-screen buffer.
    `IllegalSharingException` - if this Appearance is being used by an immediate mode context and any of the specified textures refers to an ImageComponent2D that is being used by a Canvas3D as an off-screen buffer.
  Since:
    Java 3D 1.2

### setTextureUnitState

    public void setTextureUnitState(int index,
                                    TextureUnitState state)

  Sets the texture unit state object at the specified index within the texture unit state array to the specified object. If the specified object is null, the corresponding texture unit is disabled. The index must be within the range `[0, stateArray.length-1]`.

  Parameters:
    `index` - the array index of the object to be set
    `state` - new texture unit state object
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    `java.lang.NullPointerException` - if the texture unit state array is null.
    `java.lang.ArrayIndexOutOfBoundsException` - if `index >= stateArray.length`.
    `IllegalSharingException` - if this Appearance is live and the specified texture refers to an ImageComponent2D that is being used by a Canvas3D as an off-screen buffer.
    `IllegalSharingException` - if this Appearance is being used by an immediate mode context and the specified texture refers to an ImageComponent2D that is being used by a Canvas3D as an off-screen buffer.
  Since:
    Java 3D 1.2

### getTextureUnitState

    public TextureUnitState[] getTextureUnitState()

  Retrieves the array of texture unit state objects from this Appearance object. A shallow copy of the array of references to the TextureUnitState objects is returned.

  Returns:
    the array of texture unit state objects
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
  Since:
    Java 3D 1.2

### getTextureUnitState

    public TextureUnitState getTextureUnitState(int index)

  Retrieves the texture unit state object at the specified index within the texture unit state array. The index must be within the range `[0, stateArray.length-1]`.

  Parameters:
    `index` - the array index of the object to be retrieved
  Returns:
    the texture unit state object at the specified index
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
  Since:
    Java 3D 1.2

### getTextureUnitCount

    public int getTextureUnitCount()

  Retrieves the length of the texture unit state array from this appearance object. The length of this array specifies the maximum number of texture units that will be used by this appearance object. If the array is null, a count of 0 is returned.

  Returns:
    the length of the texture unit state array
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
  Since:
    Java 3D 1.2

### cloneNodeComponent

    public NodeComponent cloneNodeComponent()

  Deprecated. replaced with cloneNodeComponent(boolean forceDuplicate)

  Overrides:
    `cloneNodeComponent` in class `NodeComponent`

### duplicateNodeComponent

    public void duplicateNodeComponent(NodeComponent originalNodeComponent)

  Deprecated. replaced with duplicateNodeComponent( NodeComponent originalNodeComponent, boolean forceDuplicate)

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

  Overrides:
    `duplicateNodeComponent` in class `NodeComponent`

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