Class 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 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
      • 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