javax.media.j3d

## Class TextureAttributes

- java.lang.Object
- - javax.media.j3d.SceneGraphObject
  - - javax.media.j3d.NodeComponent
    - - javax.media.j3d.TextureAttributes

-     public class TextureAttributes
      extends NodeComponent

  The TextureAttributes object defines attributes that apply to texture mapping. The texture attributes include the following:

  - Texture mode - defines how the object and texture colors are blended. The mode may be one of the following:

  - MODULATE - modulates the incoming color with the texture color.

    C' = C Ct

  - DECAL - applies the texture color to the incoming color as a decal.

    C'rgb = Crgb (1 - Cta) + Ctrgb Cta

    C'a = Ca

  - BLEND - blends the texture blend color with the incoming color.

    C'rgb = Crgb (1 - Ctrgb) + Cbrgb Ctrgb

    C'a = Ca Cta

    Note that if the texture format is INTENSITY, alpha is computed identically to red, green, and blue:

    C'a = Ca (1 - Cta) + Cba Cta

  - REPLACE - replaces the incoming color with the texture color.

    C' = Ct

  - COMBINE - combines the object color with the texture color or texture blend color according to the combine operation as specified in the texture combine mode.

  C = Incoming color to the texture unit state. For texture unit state 0, C is the object color Ct = Texture color
  Cb = Texture blend color

  - Combine Mode - defines the combine operation when texture mode specifies COMBINE. The combine mode includes the following:

    - COMBINE_REPLACE

      C' = C0

    - COMBINE_MODULATE

      C' = C0 C1

    - COMBINE_ADD

      C' = C0 + C1

    - COMBINE_ADD_SIGNED

      C' = C0 + C1 - 0.5

    - COMBINE_SUBTRACT

      C' = C0 - C1

    - COMBINE_INTERPOLATE

      C' = C0 C2 + C1 (1 - C2)

    - COMBINE_DOT3

      C' = 4 * ( (C0r - 0.5) * (C1r - 0.5) + (C0g - 0.5) * (C1g - 0.5) + (C0b - 0.5) * (C1b - 0.5))

      where CNx is the x component of the Nth color operand in the combine operation.

      The value C' will be placed to the all three r,g,b components or the a component of the output.

  where C0, C1 and C2 are determined by the color source, and the color operand.

- Combine Color Source - defines the source for a color operand in the combine operation. The color source includes the following:

  - COMBINE_OBJECT_COLOR - object color

  - COMBINE_TEXTURE_COLOR - texture color

  - COMBINE_CONSTANT_COLOR - texture blend color

  - COMBINE_PREVIOUS_TEXTURE_UNIT_STATE - color from the previous texture unit state. For texture unit state 0, this is equivalent to COMBINE_OBJECT_COLOR.

- Combine Color Function - specifies the function for a color operand in the combine operation. The valid values are:

  - COMBINE_SRC_COLOR - the color function is f = Crgb

  - COMBINE_ONE_MINUS_SRC_COLOR - the color function is f = (1 - Crgb)

  - COMBINE_SRC_ALPHA - the color function is f = Ca

  - COMBINE_ONE_MINUS_SRC_ALPHA - the color function is f = (1 - Ca)

- Combine scale factor - specifies the scale factor to be applied to the output color of the combine operation. The valid values include: 1, 2, or 4.

- Transform - the texture transform object used to transform texture coordinates. The texture transform can translate, scale, or rotate the texture coordinates before the texture is applied to the object.

- Blend color - the constant texture blend color

- Perspective correction - the perspective correction mode used for color and texture coordinate interpolation. One of the following:

- NICEST - uses the nicest (highest quality) available method for texture mapping perspective correction.

- FASTEST - uses the fastest available method for texture mapping perspective correction.

- Texture color table - defines a table that is used to look up texture colors before applying the texture mode.

See Also:
  `Appearance`, `Canvas3D.queryProperties()`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ALLOW_BLEND_COLOR_READ` Specifies that this TextureAttributes object allows reading its texture blend color component information.
    `static int` | `ALLOW_BLEND_COLOR_WRITE` Specifies that this TextureAttributes object allows writing its texture blend color component information.
    `static int` | `ALLOW_COLOR_TABLE_READ` Specifies that this TextureAttributes object allows reading its texture color table component information.
    `static int` | `ALLOW_COLOR_TABLE_WRITE` Specifies that this TextureAttributes object allows writing its texture color table component information.
    `static int` | `ALLOW_COMBINE_READ` Specifies that this TextureAttributes object allows reading its texture combine mode information.
    `static int` | `ALLOW_COMBINE_WRITE` Specifies that this TextureAttributes object allows writing its texture combine mode information.
    `static int` | `ALLOW_MODE_READ` Specifies that this TextureAttributes object allows reading its texture mode component information and perspective correction mode.
    `static int` | `ALLOW_MODE_WRITE` Specifies that this TextureAttributes object allows writing its texture mode component information and perspective correction mode.
    `static int` | `ALLOW_TRANSFORM_READ` Specifies that this TextureAttributes object allows reading its texture transform component information.
    `static int` | `ALLOW_TRANSFORM_WRITE` Specifies that this TextureAttributes object allows writing its texture transform component information.
    `static int` | `BLEND` Blend the texture blend color with the object color.
    `static int` | `COMBINE` Combine the object color with texture color as specified in the combine mode.
    `static int` | `COMBINE_ADD` Add two colors.
    `static int` | `COMBINE_ADD_SIGNED` Add two colors plus an implicit offset.
    `static int` | `COMBINE_CONSTANT_COLOR` Texture blend color.
    `static int` | `COMBINE_DOT3` Dot product of two colors.
    `static int` | `COMBINE_INTERPOLATE` Interpolate two colors with a factor.
    `static int` | `COMBINE_MODULATE` Modulates one color with another color.
    `static int` | `COMBINE_OBJECT_COLOR` Object color coming into the texturing state.
    `static int` | `COMBINE_ONE_MINUS_SRC_ALPHA` Color function is f = (1 - Ca)
    `static int` | `COMBINE_ONE_MINUS_SRC_COLOR` Color function is f = (1 - Crgb)
    `static int` | `COMBINE_PREVIOUS_TEXTURE_UNIT_STATE` Color from the previous texture unit state.
    `static int` | `COMBINE_REPLACE` Replace the input color with the specified color.
    `static int` | `COMBINE_SRC_ALPHA` Color function is f = Ca
    `static int` | `COMBINE_SRC_COLOR` Color function is f = Crgb
    `static int` | `COMBINE_SUBTRACT` Subtract one color from another color.
    `static int` | `COMBINE_TEXTURE_COLOR` Texture color of the corresponding texture unit state.
    `static int` | `DECAL` Apply the texture color to the object as a decal.
    `static int` | `FASTEST` Use the fastest available method for perspective correction.
    `static int` | `MODULATE` Modulate the object color with the texture color.
    `static int` | `NICEST` Use the nicest (highest quality) available method for texture mapping perspective correction.
    `static int` | `REPLACE` Replace the object color with the texture color.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TextureAttributes()` Constructs a TextureAttributes object with default parameters.
    `TextureAttributes(int textureMode, Transform3D transform, Color4f textureBlendColor, int perspCorrectionMode)` Constructs a TextureAttributes object with the specified values.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `NodeComponent` | `cloneNodeComponent()` Deprecated. replaced with cloneNodeComponent(boolean forceDuplicate)
    `int` | `getCombineAlphaFunction(int index)` Retrieves the function for the alpha component of the specified color operand for this object.
    `int` | `getCombineAlphaMode()` Retrieves the combine mode for the alpha component of the output color for this object.
    `int` | `getCombineAlphaScale()` Retrieves the scale factor for the alpha component of the output color for this object.
    `int` | `getCombineAlphaSource(int index)` Retrieves the source for the alpha component of the specified color operand for this object.
    `int` | `getCombineRgbFunction(int index)` Retrieves the function for the rgb components of the specified color operand for this object.
    `int` | `getCombineRgbMode()` Retrieves the combine mode for the rgb components of the output color for this object.
    `int` | `getCombineRgbScale()` Retrieves the scale factor for the rgb components of the output color for this object.
    `int` | `getCombineRgbSource(int index)` Retrieves the source for the rgb components of the specified color operand for this object.
    `int` | `getNumTextureColorTableComponents()` Retrieves the number of color components in the current texture color table.
    `int` | `getPerspectiveCorrectionMode()` Gets perspective correction mode value.
    `void` | `getTextureBlendColor(Color4f textureBlendColor)` Gets the texture blend color for this appearance component object.
    `void` | `getTextureColorTable(int[][] table)` Retrieves the texture color table and copies it into the specified array.
    `int` | `getTextureColorTableSize()` Retrieves the size of the current texture color table.
    `int` | `getTextureMode()` Gets the texture mode parameter for this texture attributes object.
    `void` | `getTextureTransform(Transform3D transform)` Retrieves a copy of the texture transform object.
    `void` | `setCombineAlphaFunction(int index, int function)` Sets the function for the alpha component of the specified color operand for this object.
    `void` | `setCombineAlphaMode(int combineMode)` Sets the combine mode for the alpha component of the output color for this object.
    `void` | `setCombineAlphaScale(int scale)` Sets the scale factor for the alpha component of the output color for this object.
    `void` | `setCombineAlphaSource(int index, int src)` Sets the source for the alpha component of the specified color operand for this object.
    `void` | `setCombineRgbFunction(int index, int function)` Sets the function for the rgb components of the specified color operand for this object.
    `void` | `setCombineRgbMode(int combineMode)` Sets the combine mode for the rgb components of the output color for this object.
    `void` | `setCombineRgbScale(int scale)` Sets the scale factor for the rgb components of the output color for this object.
    `void` | `setCombineRgbSource(int index, int src)` Sets the source for the rgb components of the specified color operand for this object.
    `void` | `setPerspectiveCorrectionMode(int mode)` Sets perspective correction mode to be used for color and/or texture coordinate interpolation.
    `void` | `setTextureBlendColor(Color4f textureBlendColor)` Sets the texture constant color for this texture attributes object.
    `void` | `setTextureBlendColor(float r, float g, float b, float a)` Sets the texture blend color for this appearance component object.
    `void` | `setTextureColorTable(int[][] table)` Sets the texture color table from the specified table.
    `void` | `setTextureMode(int textureMode)` Sets the texture mode parameter for this appearance component object.
    `void` | `setTextureTransform(Transform3D transform)` Sets the texture transform object used to transform texture coordinates.

    - ### Methods inherited from class javax.media.j3d.NodeComponent

      `cloneNodeComponent, duplicateNodeComponent, 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_MODE_READ

          public static final int ALLOW_MODE_READ

      Specifies that this TextureAttributes object allows reading its texture mode component information and perspective correction mode.
      See Also:
        Constant Field Values

    - #### ALLOW_MODE_WRITE

          public static final int ALLOW_MODE_WRITE

      Specifies that this TextureAttributes object allows writing its texture mode component information and perspective correction mode.
      See Also:
        Constant Field Values

    - #### ALLOW_BLEND_COLOR_READ

          public static final int ALLOW_BLEND_COLOR_READ

      Specifies that this TextureAttributes object allows reading its texture blend color component information.
      See Also:
        Constant Field Values

    - #### ALLOW_BLEND_COLOR_WRITE

          public static final int ALLOW_BLEND_COLOR_WRITE

      Specifies that this TextureAttributes object allows writing its texture blend color component information.
      See Also:
        Constant Field Values

    - #### ALLOW_TRANSFORM_READ

          public static final int ALLOW_TRANSFORM_READ

      Specifies that this TextureAttributes object allows reading its texture transform component information.
      See Also:
        Constant Field Values

    - #### ALLOW_TRANSFORM_WRITE

          public static final int ALLOW_TRANSFORM_WRITE

      Specifies that this TextureAttributes object allows writing its texture transform component information.
      See Also:
        Constant Field Values

    - #### ALLOW_COLOR_TABLE_READ

          public static final int ALLOW_COLOR_TABLE_READ

      Specifies that this TextureAttributes object allows reading its texture color table component information.
      Since:
        Java 3D 1.2
      See Also:
        Constant Field Values

    - #### ALLOW_COLOR_TABLE_WRITE

          public static final int ALLOW_COLOR_TABLE_WRITE

      Specifies that this TextureAttributes object allows writing its texture color table component information.
      Since:
        Java 3D 1.2
      See Also:
        Constant Field Values

    - #### ALLOW_COMBINE_READ

          public static final int ALLOW_COMBINE_READ

      Specifies that this TextureAttributes object allows reading its texture combine mode information. (e.g. combine mode, combine color source, combine color function, combine scale factor)
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_COMBINE_WRITE

          public static final int ALLOW_COMBINE_WRITE

      Specifies that this TextureAttributes object allows writing its texture combine mode information. (e.g. combine mode, combine color source, combine color function, combine scale factor)
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### FASTEST

          public static final int FASTEST

      Use the fastest available method for perspective correction.
      See Also:
        `setPerspectiveCorrectionMode(int)`, Constant Field Values

    - #### NICEST

          public static final int NICEST

      Use the nicest (highest quality) available method for texture mapping perspective correction.
      See Also:
        `setPerspectiveCorrectionMode(int)`, Constant Field Values

    - #### MODULATE

          public static final int MODULATE

      Modulate the object color with the texture color.
      See Also:
        `setTextureMode(int)`, Constant Field Values

    - #### DECAL

          public static final int DECAL

      Apply the texture color to the object as a decal.
      See Also:
        `setTextureMode(int)`, Constant Field Values

    - #### BLEND

          public static final int BLEND

      Blend the texture blend color with the object color.
      See Also:
        `setTextureMode(int)`, Constant Field Values

    - #### REPLACE

          public static final int REPLACE

      Replace the object color with the texture color.
      See Also:
        `setTextureMode(int)`, Constant Field Values

    - #### COMBINE

          public static final int COMBINE

      Combine the object color with texture color as specified in the combine mode.
      Since:
        Java 3D 1.3
      See Also:
        `setTextureMode(int)`, Constant Field Values

    - #### COMBINE_REPLACE

          public static final int COMBINE_REPLACE

      Replace the input color with the specified color.
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbMode(int)`, `setCombineAlphaMode(int)`, Constant Field Values

    - #### COMBINE_MODULATE

          public static final int COMBINE_MODULATE

      Modulates one color with another color.
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbMode(int)`, `setCombineAlphaMode(int)`, Constant Field Values

    - #### COMBINE_ADD

          public static final int COMBINE_ADD

      Add two colors.
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbMode(int)`, `setCombineAlphaMode(int)`, Constant Field Values

    - #### COMBINE_ADD_SIGNED

          public static final int COMBINE_ADD_SIGNED

      Add two colors plus an implicit offset.
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbMode(int)`, `setCombineAlphaMode(int)`, Constant Field Values

    - #### COMBINE_SUBTRACT

          public static final int COMBINE_SUBTRACT

      Subtract one color from another color.
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbMode(int)`, `setCombineAlphaMode(int)`, Constant Field Values

    - #### COMBINE_INTERPOLATE

          public static final int COMBINE_INTERPOLATE

      Interpolate two colors with a factor.
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbMode(int)`, `setCombineAlphaMode(int)`, Constant Field Values

    - #### COMBINE_DOT3

          public static final int COMBINE_DOT3

      Dot product of two colors.
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbMode(int)`, `setCombineAlphaMode(int)`, Constant Field Values

    - #### COMBINE_OBJECT_COLOR

          public static final int COMBINE_OBJECT_COLOR

      Object color coming into the texturing state.
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbSource(int, int)`, `setCombineAlphaSource(int, int)`, Constant Field Values

    - #### COMBINE_TEXTURE_COLOR

          public static final int COMBINE_TEXTURE_COLOR

      Texture color of the corresponding texture unit state.
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbSource(int, int)`, `setCombineAlphaSource(int, int)`, Constant Field Values

    - #### COMBINE_CONSTANT_COLOR

          public static final int COMBINE_CONSTANT_COLOR

      Texture blend color.
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbSource(int, int)`, `setCombineAlphaSource(int, int)`, Constant Field Values

    - #### COMBINE_PREVIOUS_TEXTURE_UNIT_STATE

          public static final int COMBINE_PREVIOUS_TEXTURE_UNIT_STATE

      Color from the previous texture unit state.
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbSource(int, int)`, `setCombineAlphaSource(int, int)`, Constant Field Values

    - #### COMBINE_SRC_COLOR

          public static final int COMBINE_SRC_COLOR

      Color function is f = Crgb
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbFunction(int, int)`, Constant Field Values

    - #### COMBINE_ONE_MINUS_SRC_COLOR

          public static final int COMBINE_ONE_MINUS_SRC_COLOR

      Color function is f = (1 - Crgb)
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbFunction(int, int)`, Constant Field Values

    - #### COMBINE_SRC_ALPHA

          public static final int COMBINE_SRC_ALPHA

      Color function is f = Ca
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbFunction(int, int)`, `setCombineAlphaFunction(int, int)`, Constant Field Values

    - #### COMBINE_ONE_MINUS_SRC_ALPHA

          public static final int COMBINE_ONE_MINUS_SRC_ALPHA

      Color function is f = (1 - Ca)
      Since:
        Java 3D 1.3
      See Also:
        `setCombineRgbFunction(int, int)`, `setCombineAlphaFunction(int, int)`, Constant Field Values

  - ### Constructor Detail

    - #### TextureAttributes

          public TextureAttributes()

      Constructs a TextureAttributes object with default parameters. The default values are as follows:
      texture mode : REPLACE
      blend color : black (0,0,0,0)
      transform : identity
      perspective correction mode : NICEST
      texture color table : null
      combine rgb mode : COMBINE_MODULATE
      combine alpha mode : COMBINE_MODULATE
      combine rgb source :
      C0=COMBINE_TEXTURE_COLOR
      C1=COMBINE_PREVIOUS_TEXTURE_UNIT_STATE
      C2=COMBINE_CONSTANT_COLOR
      combine alpha source :
      C0=COMBINE_TEXTURE_COLOR
      C1=COMBINE_PREVIOUS_TEXTURE_UNIT_STATE
      C2=COMBINE_CONSTANT_COLOR
      combine rgb function : COMBINE_SRC_COLOR
      combine alpha function : COMBINE_SRC_ALPHA
      combine rgb scale : 1
      combine alpha scale : 1

    - #### TextureAttributes

          public TextureAttributes(int textureMode,
                           Transform3D transform,
                           Color4f textureBlendColor,
                           int perspCorrectionMode)

      Constructs a TextureAttributes object with the specified values.
      Parameters:
        `textureMode` - the texture mode; one of `MODULATE`, `DECAL`, `BLEND`, `REPLACE`, or `COMBINE`
        `transform` - the transform object, used to transform texture coordinates
        `textureBlendColor` - the texture constant color
        `perspCorrectionMode` - the perspective correction mode to be used for color and/or texture coordinate interpolation; one of `NICEST` or `FASTEST`
      Throws:
        `java.lang.IllegalArgumentException` - if `textureMode` is a value other than `MODULATE`, `DECAL`, `BLEND`, `REPLACE`, or `COMBINE`
        `java.lang.IllegalArgumentException` - if mode value is other than `FASTEST` or `NICEST`.

  - ### Method Detail

    - #### setTextureMode

          public void setTextureMode(int textureMode)

      Sets the texture mode parameter for this appearance component object.
      Parameters:
        `textureMode` - the texture mode, one of: `MODULATE`, `DECAL`, `BLEND`, `REPLACE`, or `COMBINE`
      Throws:
        `java.lang.IllegalArgumentException` - if `textureMode` is a value other than `MODULATE`, `DECAL`, `BLEND`, `REPLACE`, or `COMBINE`
      See Also:
        `Canvas3D.queryProperties()`

    - #### getTextureMode

          public int getTextureMode()

      Gets the texture mode parameter for this texture attributes object.
      Returns:
        textureMode the texture mode
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setTextureBlendColor

          public void setTextureBlendColor(Color4f textureBlendColor)

      Sets the texture constant color for this texture attributes object.
      Parameters:
        `textureBlendColor` - the texture constant color
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setTextureBlendColor

          public void setTextureBlendColor(float r,
                                  float g,
                                  float b,
                                  float a)

      Sets the texture blend color for this appearance component object.
      Parameters:
        `r` - the red component of the color
        `g` - the green component of the color
        `b` - the blue component of the color
        `a` - the alpha component of the color
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getTextureBlendColor

          public void getTextureBlendColor(Color4f textureBlendColor)

      Gets the texture blend color for this appearance component object.
      Parameters:
        `textureBlendColor` - the vector that will receive the texture constant color
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setTextureTransform

          public void setTextureTransform(Transform3D transform)

      Sets the texture transform object used to transform texture coordinates. A copy of the specified Transform3D object is stored in this TextureAttributes object.
      Parameters:
        `transform` - the new transform object
      Throws:
        `CapabilityNotSetException` - if the method is called when this object is part of live or compiled scene graph.

    - #### getTextureTransform

          public void getTextureTransform(Transform3D transform)

      Retrieves a copy of the texture transform object.
      Parameters:
        `transform` - the transform object that will receive the current texture transform
      Throws:
        `CapabilityNotSetException` - if the method is called when this object is part of live or compiled scene graph.

    - #### setPerspectiveCorrectionMode

          public void setPerspectiveCorrectionMode(int mode)

      Sets perspective correction mode to be used for color and/or texture coordinate interpolation. A value of `NICEST` indicates that perspective correction should be performed and that the highest quality method should be used. A value of `FASTEST` indicates that the most efficient perspective correction method should be used.
      Parameters:
        `mode` - one of `NICEST` or `FASTEST` The default value is `NICEST`.
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.IllegalArgumentException` - if mode value is other than `FASTEST` or `NICEST`.

    - #### getPerspectiveCorrectionMode

          public int getPerspectiveCorrectionMode()

      Gets perspective correction mode value.
      Returns:
        mode the value of perspective correction mode
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setTextureColorTable

          public void setTextureColorTable(int[][] table)

      Sets the texture color table from the specified table. The individual integer array elements are copied. The array is indexed first by color component (r, g, b, and a, respectively) and then by color value; `table.length` defines the number of color components and `table[0].length` defines the texture color table size. If the table is non-null, the number of color components must either be 3, for rgb data, or 4, for rgba data. The size of each array for each color component must be the same and must be a power of 2. If table is null or if the texture color table size is 0, the texture color table is disabled. If the texture color table size is greater than the device-dependent maximum texture color table size for a particular Canvas3D, the texture color table is ignored for that canvas.

      When enabled, the texture color table is applied after the texture filtering operation and before texture application. Each of the r, g, b, and a components are clamped to the range [0,1], multiplied by `textureColorTableSize-1`, and rounded to the nearest integer. The resulting value for each component is then used as an index into the respective table for that component. If the texture color table contains 3 components, alpha is passed through unmodified.

      Parameters:
        `table` - the new texture color table
      Throws:
        `java.lang.IllegalArgumentException` - if `table.length` is not 3 or 4, or if the arrays for each component are not all the same length, or if the texture color table size is not a power of 2
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.2
      See Also:
        `Canvas3D.queryProperties()`

    - #### getTextureColorTable

          public void getTextureColorTable(int[][] table)

      Retrieves the texture color table and copies it into the specified array. If the current texture color table is null, no values are copied.
      Parameters:
        `table` - the array that will receive a copy of the texture color table from this TextureAttributes object. The array must be allocated by the caller and must be large enough to hold the entire table (that is, `int[numTextureColorTableComponents][textureColorTableSize]`).
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.2

    - #### getNumTextureColorTableComponents

          public int getNumTextureColorTableComponents()

      Retrieves the number of color components in the current texture color table. A value of 0 is returned if the texture color table is null.
      Returns:
        the number of color components in the texture color table, or 0 if the table is null
      Since:
        Java 3D 1.2

    - #### getTextureColorTableSize

          public int getTextureColorTableSize()

      Retrieves the size of the current texture color table. A value of 0 is returned if the texture color table is null.
      Returns:
        the size of the texture color table, or 0 if the table is null
      Since:
        Java 3D 1.2

    - #### setCombineRgbMode

          public void setCombineRgbMode(int combineMode)

      Sets the combine mode for the rgb components of the output color for this object.
      Parameters:
        `combineMode` - the combine mode, one of: `COMBINE_REPLACE`, `COMBINE_MODULATE`, `COMBINE_ADD`, `COMBINE_ADD_SIGNED`, `COMBINE_SUBTRACT`, `COMBINE_INTERPOLATE`, or `COMBINE_DOT3`
      Throws:
        `java.lang.IllegalArgumentException` - if `combineMode` is a value other than `COMBINE_REPLACE`, `COMBINE_MODULATE`, `COMBINE_ADD`, `COMBINE_ADD_SIGNED`, `COMBINE_SUBTRACT`, `COMBINE_INTERPOLATE`, or `COMBINE_DOT3`
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3
      See Also:
        `Canvas3D.queryProperties()`

    - #### setCombineAlphaMode

          public void setCombineAlphaMode(int combineMode)

      Sets the combine mode for the alpha component of the output color for this object.
      Parameters:
        `combineMode` - the combine mode, one of: `COMBINE_REPLACE`, `COMBINE_MODULATE`, `COMBINE_ADD`, `COMBINE_ADD_SIGNED`, `COMBINE_SUBTRACT`, `COMBINE_INTERPOLATE`, or `COMBINE_DOT3`
      Throws:
        `java.lang.IllegalArgumentException` - if `combineMode` is a value other than `COMBINE_REPLACE`, `COMBINE_MODULATE`, `COMBINE_ADD`, `COMBINE_ADD_SIGNED`, `COMBINE_SUBTRACT`, `COMBINE_INTERPOLATE`, or `COMBINE_DOT3`
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3
      See Also:
        `Canvas3D.queryProperties()`

    - #### getCombineRgbMode

          public int getCombineRgbMode()

      Retrieves the combine mode for the rgb components of the output color for this object.
      Returns:
        the combine mode for the rgb components.
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### getCombineAlphaMode

          public int getCombineAlphaMode()

      Retrieves the combine mode for the alpha component of the output color for this object.
      Returns:
        the combine mode for the alpha component.
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### setCombineRgbSource

          public void setCombineRgbSource(int index,
                                 int src)

      Sets the source for the rgb components of the specified color operand for this object.
      Parameters:
        `index` - color operand in the combine operation
        `src` - the color source, one of: `COMBINE_OBJECT_COLOR`, `COMBINE_TEXTURE_COLOR`, `COMBINE_CONSTANT_COLOR`, or `COMBINE_PREVIOUS_TEXTURE_UNIT_STATE`
      Throws:
        `java.lang.IndexOutOfBoundsException` - if `index` < 0 or `index` > 2
        `java.lang.IllegalArgumentException` - if `src` is a value other than `COMBINE_OBJECT_COLOR`, `COMBINE_TEXTURE_COLOR`, `COMBINE_CONSTANT_COLOR`, or `COMBINE_PREVIOUS_TEXTURE_UNIT_STATE`
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3
      See Also:
        `Canvas3D.queryProperties()`

    - #### setCombineAlphaSource

          public void setCombineAlphaSource(int index,
                                   int src)

      Sets the source for the alpha component of the specified color operand for this object.
      Parameters:
        `index` - color operand in the combine operation
        `src` - the color source, one of: `COMBINE_OBJECT_COLOR`, `COMBINE_TEXTURE_COLOR`, `COMBINE_CONSTANT_COLOR`, or `COMBINE_PREVIOUS_TEXTURE_UNIT_STATE`
      Throws:
        `java.lang.IndexOutOfBoundsException` - if `index` < 0 or `index` > 2
        `java.lang.IllegalArgumentException` - if `src` is a value other than `COMBINE_OBJECT_COLOR`, `COMBINE_TEXTURE_COLOR`, `COMBINE_CONSTANT_COLOR`, or `COMBINE_PREVIOUS_TEXTURE_UNIT_STATE`
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3
      See Also:
        `Canvas3D.queryProperties()`

    - #### getCombineRgbSource

          public int getCombineRgbSource(int index)

      Retrieves the source for the rgb components of the specified color operand for this object.
      Parameters:
        `index` - color operand in the combine operation
      Returns:
        the source for the rgb components of the specified color operand for this object
      Throws:
        `java.lang.IndexOutOfBoundsException` - if `index` < 0 or `index` > 2
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### getCombineAlphaSource

          public int getCombineAlphaSource(int index)

      Retrieves the source for the alpha component of the specified color operand for this object.
      Parameters:
        `index` - color operand in the combine operation
      Returns:
        the source for the alpha component of the specified color operand for this object
      Throws:
        `java.lang.IndexOutOfBoundsException` - if `index` < 0 or `index` > 2
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### setCombineRgbFunction

          public void setCombineRgbFunction(int index,
                                   int function)

      Sets the function for the rgb components of the specified color operand for this object.
      Parameters:
        `index` - color operand in the combine operation
        `function` - the color function, one of: `COMBINE_SRC_COLOR`, `COMBINE_ONE_MINUS_SRC_COLOR`, `COMBINE_SRC_ALPHA`, or `COMBINE_ONE_MINUS_SRC_ALPHA`
      Throws:
        `java.lang.IndexOutOfBoundsException` - if `index` < 0 or `index` > 2
        `java.lang.IllegalArgumentException` - if `function` is a value other than `COMBINE_SRC_COLOR`, `COMBINE_ONE_MINUS_SRC_COLOR`, `COMBINE_SRC_ALPHA`, or `COMBINE_ONE_MINUS_SRC_ALPHA`
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3
      See Also:
        `Canvas3D.queryProperties()`

    - #### setCombineAlphaFunction

          public void setCombineAlphaFunction(int index,
                                     int function)

      Sets the function for the alpha component of the specified color operand for this object.
      Parameters:
        `index` - color operand in the combine operation
        `function` - the color function, one of: `COMBINE_SRC_ALPHA`, or `COMBINE_ONE_MINUS_SRC_ALPHA`
      Throws:
        `java.lang.IndexOutOfBoundsException` - if `index` < 0 or `index` > 2
        `java.lang.IllegalArgumentException` - if `function` is a value other than `COMBINE_SRC_ALPHA` or `COMBINE_ONE_MINUS_SRC_ALPHA`
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3
      See Also:
        `Canvas3D.queryProperties()`

    - #### getCombineRgbFunction

          public int getCombineRgbFunction(int index)

      Retrieves the function for the rgb components of the specified color operand for this object.
      Parameters:
        `index` - color operand in the combine operation
      Returns:
        the function for the rgb components of the specified color operand for this object.
      Throws:
        `java.lang.IndexOutOfBoundsException` - if `index` < 0 or `index` > 2
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### getCombineAlphaFunction

          public int getCombineAlphaFunction(int index)

      Retrieves the function for the alpha component of the specified color operand for this object.
      Parameters:
        `index` - color operand in the combine operation
      Returns:
        the function for the alpha component of the specified color operand for this object.
      Throws:
        `java.lang.IndexOutOfBoundsException` - if `index` < 0 or `index` > 2
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### setCombineRgbScale

          public void setCombineRgbScale(int scale)

      Sets the scale factor for the rgb components of the output color for this object.
      Parameters:
        `scale` - the scale factor for the rgb components of the output color. It must be one of the following: 1, 2, or 4.
      Throws:
        `java.lang.IllegalArgumentException` - if `scale` is a value other than 1, 2, or 4.
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3
      See Also:
        `Canvas3D.queryProperties()`

    - #### setCombineAlphaScale

          public void setCombineAlphaScale(int scale)

      Sets the scale factor for the alpha component of the output color for this object.
      Parameters:
        `scale` - the scale factor for the alpha component of the output color. It must be one of the following: 1, 2, or 4.
      Throws:
        `java.lang.IllegalArgumentException` - if `scale` is a value other than 1, 2, or 4.
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3
      See Also:
        `Canvas3D.queryProperties()`

    - #### getCombineRgbScale

          public int getCombineRgbScale()

      Retrieves the scale factor for the rgb components of the output color for this object.
      Returns:
        the scale factor for the rgb components of the output color
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### getCombineAlphaScale

          public int getCombineAlphaScale()

      Retrieves the scale factor for the alpha component of the output color for this object.
      Returns:
        the scale factor for the alpha component of the output color
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### cloneNodeComponent

          public NodeComponent cloneNodeComponent()

      Deprecated. replaced with cloneNodeComponent(boolean forceDuplicate)
      Overrides:
        `cloneNodeComponent` in class `NodeComponent`

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