javax.media.j3d

## Class IndexedGeometryArray

- java.lang.Object
- - javax.media.j3d.SceneGraphObject
  - - javax.media.j3d.NodeComponent
    - - javax.media.j3d.Geometry
      - - javax.media.j3d.GeometryArray
        - - javax.media.j3d.IndexedGeometryArray

- Direct Known Subclasses:
    IndexedGeometryStripArray, IndexedLineArray, IndexedPointArray, IndexedQuadArray, IndexedTriangleArray

      public abstract class IndexedGeometryArray
      extends GeometryArray

  The IndexedGeometryArray object contains separate integer arrays that index into the arrays of positional coordinates, colors, normals, texture coordinates, and vertex attributes. These index arrays specify how vertices are connected to form geometry primitives. This class is extended to create the various indexed primitive types (e.g., lines, triangle strips, etc.).

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ALLOW_COLOR_INDEX_READ` Specifies that this IndexedGeometryArray allows reading the array of color indices.
    `static int` | `ALLOW_COLOR_INDEX_WRITE` Specifies that this IndexedGeometryArray allows writing the array of color indices.
    `static int` | `ALLOW_COORDINATE_INDEX_READ` Specifies that this IndexedGeometryArray allows reading the array of coordinate indices.
    `static int` | `ALLOW_COORDINATE_INDEX_WRITE` Specifies that this IndexedGeometryArray allows writing the array of coordinate indices.
    `static int` | `ALLOW_NORMAL_INDEX_READ` Specifies that this IndexedGeometryArray allows reading the array of normal indices.
    `static int` | `ALLOW_NORMAL_INDEX_WRITE` Specifies that this IndexedGeometryArray allows writing the array of normal indices.
    `static int` | `ALLOW_TEXCOORD_INDEX_READ` Specifies that this IndexedGeometryArray allows reading the array of texture coordinate indices.
    `static int` | `ALLOW_TEXCOORD_INDEX_WRITE` Specifies that this IndexedGeometryArray allows writing the array of texture coordinate indices.
    `static int` | `ALLOW_VERTEX_ATTR_INDEX_READ` Specifies that this IndexedGeometryArray allows reading the array of vertex attribute indices.
    `static int` | `ALLOW_VERTEX_ATTR_INDEX_WRITE` Specifies that this IndexedGeometryArray allows writing the array of vertex attribute indices.

    - ### Fields inherited from class javax.media.j3d.GeometryArray

      `ALLOW_COLOR_READ, ALLOW_COLOR_WRITE, ALLOW_COORDINATE_READ, ALLOW_COORDINATE_WRITE, ALLOW_COUNT_READ, ALLOW_COUNT_WRITE, ALLOW_FORMAT_READ, ALLOW_NORMAL_READ, ALLOW_NORMAL_WRITE, ALLOW_REF_DATA_READ, ALLOW_REF_DATA_WRITE, ALLOW_TEXCOORD_READ, ALLOW_TEXCOORD_WRITE, ALLOW_VERTEX_ATTR_READ, ALLOW_VERTEX_ATTR_WRITE, BY_REFERENCE, BY_REFERENCE_INDICES, COLOR_3, COLOR_4, COORDINATES, INTERLEAVED, NORMALS, TEXTURE_COORDINATE_2, TEXTURE_COORDINATE_3, TEXTURE_COORDINATE_4, USE_COORD_INDEX_ONLY, USE_NIO_BUFFER, VERTEX_ATTRIBUTES`

    - ### Fields inherited from class javax.media.j3d.Geometry

      `ALLOW_INTERSECT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IndexedGeometryArray(int vertexCount, int vertexFormat, int indexCount)` Constructs an empty IndexedGeometryArray object with the specified number of vertices, vertex format, and number of indices.
    `IndexedGeometryArray(int vertexCount, int vertexFormat, int texCoordSetCount, int[] texCoordSetMap, int indexCount)` Constructs an empty IndexedGeometryArray object with the specified number of vertices, vertex format, number of texture coordinate sets, texture coordinate mapping array, and number of indices.
    `IndexedGeometryArray(int vertexCount, int vertexFormat, int texCoordSetCount, int[] texCoordSetMap, int vertexAttrCount, int[] vertexAttrSizes, int indexCount)` Constructs an empty IndexedGeometryArray object with the specified number of vertices, vertex format, number of texture coordinate sets, texture coordinate mapping array, vertex attribute count, vertex attribute sizes array, and number of indices.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getColorIndex(int index)` Retrieves the color index associated with the vertex at the specified index for this object.
    `void` | `getColorIndices(int index, int[] colorIndices)` Retrieves the color indices associated with the vertices starting at the specified index for this object.
    `int` | `getCoordinateIndex(int index)` Retrieves the coordinate index associated with the vertex at the specified index for this object.
    `void` | `getCoordinateIndices(int index, int[] coordinateIndices)` Retrieves the coordinate indices associated with the vertices starting at the specified index for this object.
    `int[]` | `getCoordIndicesRef()` Returns a reference to the coordinate indices associated with the vertices
    `int` | `getIndexCount()` Gets number of indices for this IndexedGeometryArray.
    `int` | `getInitialIndexIndex()` Gets the initial index index for this IndexedGeometryArray object.
    `int` | `getNormalIndex(int index)` Retrieves the normal index associated with the vertex at the specified index for this object.
    `void` | `getNormalIndices(int index, int[] normalIndices)` Retrieves the normal indices associated with the vertices starting at the specified index for this object.
    `int` | `getTextureCoordinateIndex(int index)` Deprecated. As of Java 3D version 1.2, replaced by `getTextureCoordinateIndex(int texCoordSet, ...)`
    `int` | `getTextureCoordinateIndex(int texCoordSet, int index)` Retrieves the texture coordinate index associated with the vertex at the specified index in the specified texture coordinate set for this object.
    `void` | `getTextureCoordinateIndices(int index, int[] texCoordIndices)` Deprecated. As of Java 3D version 1.2, replaced by `getTextureCoordinateIndices(int texCoordSet, ...)`
    `void` | `getTextureCoordinateIndices(int texCoordSet, int index, int[] texCoordIndices)` Retrieves the texture coordinate indices associated with the vertices starting at the specified index in the specified texture coordinate set for this object.
    `int` | `getValidIndexCount()` Gets the valid index count for this IndexedGeometryArray object.
    `int` | `getVertexAttrIndex(int vertexAttrNum, int index)` Retrieves the vertex attribute index associated with the vertex at the specified index for the specified vertex attribute number for this object.
    `void` | `getVertexAttrIndices(int vertexAttrNum, int index, int[] vertexAttrIndices)` Retrieves the vertex attribute indices associated with the vertices starting at the specified index for the specified vertex attribute number for this object.
    `void` | `setColorIndex(int index, int colorIndex)` Sets the color index associated with the vertex at the specified index for this object.
    `void` | `setColorIndices(int index, int[] colorIndices)` Sets the color indices associated with the vertices starting at the specified index for this object.
    `void` | `setCoordinateIndex(int index, int coordinateIndex)` Sets the coordinate index associated with the vertex at the specified index for this object.
    `void` | `setCoordinateIndices(int index, int[] coordinateIndices)` Sets the coordinate indices associated with the vertices starting at the specified index for this object.
    `void` | `setCoordIndicesRef(int[] coordIndices)` Sets the coordinate indices array reference to the specified array.
    `void` | `setInitialColorIndex(int initialColorIndex)` This method is not supported for indexed geometry arrays.
    `void` | `setInitialCoordIndex(int initialCoordIndex)` This method is not supported for indexed geometry arrays.
    `void` | `setInitialIndexIndex(int initialIndexIndex)` Sets the initial index index for this IndexedGeometryArray object.
    `void` | `setInitialNormalIndex(int initialNormalIndex)` This method is not supported for indexed geometry arrays.
    `void` | `setInitialTexCoordIndex(int texCoordSet, int initialTexCoordIndex)` This method is not supported for indexed geometry arrays.
    `void` | `setInitialVertexAttrIndex(int vertexAttrNum, int initialVertexAttrIndex)` This method is not supported for indexed geometry arrays.
    `void` | `setInitialVertexIndex(int initialVertexIndex)` This method is not supported for indexed geometry arrays.
    `void` | `setNormalIndex(int index, int normalIndex)` Sets the normal index associated with the vertex at the specified index for this object.
    `void` | `setNormalIndices(int index, int[] normalIndices)` Sets the normal indices associated with the vertices starting at the specified index for this object.
    `void` | `setTextureCoordinateIndex(int index, int texCoordIndex)` Deprecated. As of Java 3D version 1.2, replaced by `setTextureCoordinateIndex(int texCoordSet, ...)`
    `void` | `setTextureCoordinateIndex(int texCoordSet, int index, int texCoordIndex)` Sets the texture coordinate index associated with the vertex at the specified index in the specified texture coordinate set for this object.
    `void` | `setTextureCoordinateIndices(int index, int[] texCoordIndices)` Deprecated. As of Java 3D version 1.2, replaced by `setTextureCoordinateIndices(int texCoordSet, ...)`
    `void` | `setTextureCoordinateIndices(int texCoordSet, int index, int[] texCoordIndices)` Sets the texture coordinate indices associated with the vertices starting at the specified index in the specified texture coordinate set for this object.
    `void` | `setValidIndexCount(int validIndexCount)` Sets the valid index count for this IndexedGeometryArray object.
    `void` | `setValidVertexCount(int validVertexCount)` This method is not supported for indexed geometry arrays.
    `void` | `setVertexAttrIndex(int vertexAttrNum, int index, int vertexAttrIndex)` Sets the vertex attribute index associated with the vertex at the specified index for the specified vertex attribute number for this object.
    `void` | `setVertexAttrIndices(int vertexAttrNum, int index, int[] vertexAttrIndices)` Sets the vertex attribute indices associated with the vertices starting at the specified index for the specified vertex attribute number for this object.

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

      `getColor, getColor, getColor, getColor, getColor, getColor, getColorRef3b, getColorRef3f, getColorRef4b, getColorRef4f, getColorRefBuffer, getColorRefByte, getColorRefFloat, getColors, getColors, getColors, getColors, getColors, getColors, getCoordinate, getCoordinate, getCoordinate, getCoordinate, getCoordinates, getCoordinates, getCoordinates, getCoordinates, getCoordRef3d, getCoordRef3f, getCoordRefBuffer, getCoordRefDouble, getCoordRefFloat, getInitialColorIndex, getInitialCoordIndex, getInitialNormalIndex, getInitialTexCoordIndex, getInitialVertexAttrIndex, getInitialVertexIndex, getInterleavedVertexBuffer, getInterleavedVertices, getNormal, getNormal, getNormalRef3f, getNormalRefBuffer, getNormalRefFloat, getNormals, getNormals, getTexCoordRef2f, getTexCoordRef3f, getTexCoordRefBuffer, getTexCoordRefFloat, getTexCoordSetCount, getTexCoordSetMap, getTexCoordSetMapLength, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getValidVertexCount, getVertexAttr, getVertexAttr, getVertexAttr, getVertexAttr, getVertexAttrCount, getVertexAttrRefBuffer, getVertexAttrRefFloat, getVertexAttrs, getVertexAttrs, getVertexAttrs, getVertexAttrs, getVertexAttrSizes, getVertexCount, getVertexFormat, setColor, setColor, setColor, setColor, setColor, setColor, setColorRef3b, setColorRef3f, setColorRef4b, setColorRef4f, setColorRefBuffer, setColorRefByte, setColorRefFloat, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setCoordinate, setCoordinate, setCoordinate, setCoordinate, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setCoordRef3d, setCoordRef3f, setCoordRefBuffer, setCoordRefDouble, setCoordRefFloat, setInterleavedVertexBuffer, setInterleavedVertices, setNormal, setNormal, setNormalRef3f, setNormalRefBuffer, setNormalRefFloat, setNormals, setNormals, setNormals, setNormals, setTexCoordRef2f, setTexCoordRef3f, setTexCoordRefBuffer, setTexCoordRefFloat, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setVertexAttr, setVertexAttr, setVertexAttr, setVertexAttr, setVertexAttrRefBuffer, setVertexAttrRefFloat, setVertexAttrs, setVertexAttrs, setVertexAttrs, setVertexAttrs, setVertexAttrs, setVertexAttrs, setVertexAttrs, setVertexAttrs, updateData`

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

      `cloneNodeComponent, 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_COORDINATE_INDEX_READ

          public static final int ALLOW_COORDINATE_INDEX_READ

      Specifies that this IndexedGeometryArray allows reading the array of coordinate indices.
      See Also:
        Constant Field Values

    - #### ALLOW_COORDINATE_INDEX_WRITE

          public static final int ALLOW_COORDINATE_INDEX_WRITE

      Specifies that this IndexedGeometryArray allows writing the array of coordinate indices.
      See Also:
        Constant Field Values

    - #### ALLOW_COLOR_INDEX_READ

          public static final int ALLOW_COLOR_INDEX_READ

      Specifies that this IndexedGeometryArray allows reading the array of color indices.
      See Also:
        Constant Field Values

    - #### ALLOW_COLOR_INDEX_WRITE

          public static final int ALLOW_COLOR_INDEX_WRITE

      Specifies that this IndexedGeometryArray allows writing the array of color indices.
      See Also:
        Constant Field Values

    - #### ALLOW_NORMAL_INDEX_READ

          public static final int ALLOW_NORMAL_INDEX_READ

      Specifies that this IndexedGeometryArray allows reading the array of normal indices.
      See Also:
        Constant Field Values

    - #### ALLOW_NORMAL_INDEX_WRITE

          public static final int ALLOW_NORMAL_INDEX_WRITE

      Specifies that this IndexedGeometryArray allows writing the array of normal indices.
      See Also:
        Constant Field Values

    - #### ALLOW_TEXCOORD_INDEX_READ

          public static final int ALLOW_TEXCOORD_INDEX_READ

      Specifies that this IndexedGeometryArray allows reading the array of texture coordinate indices.
      See Also:
        Constant Field Values

    - #### ALLOW_TEXCOORD_INDEX_WRITE

          public static final int ALLOW_TEXCOORD_INDEX_WRITE

      Specifies that this IndexedGeometryArray allows writing the array of texture coordinate indices.
      See Also:
        Constant Field Values

    - #### ALLOW_VERTEX_ATTR_INDEX_READ

          public static final int ALLOW_VERTEX_ATTR_INDEX_READ

      Specifies that this IndexedGeometryArray allows reading the array of vertex attribute indices.
      Since:
        Java 3D 1.4
      See Also:
        Constant Field Values

    - #### ALLOW_VERTEX_ATTR_INDEX_WRITE

          public static final int ALLOW_VERTEX_ATTR_INDEX_WRITE

      Specifies that this IndexedGeometryArray allows writing the array of vertex attribute indices.
      Since:
        Java 3D 1.4
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### IndexedGeometryArray

          public IndexedGeometryArray(int vertexCount,
                              int vertexFormat,
                              int indexCount)

      Constructs an empty IndexedGeometryArray object with the specified number of vertices, vertex format, and number of indices. Defaults are used for all other parameters. The default values are as follows:
      validIndexCount : indexCount
      initialIndexIndex : 0
      all index array values : 0
      Parameters:
        `vertexCount` - see `GeometryArray.GeometryArray(int,int)` for a description of this parameter.
        `vertexFormat` - see `GeometryArray.GeometryArray(int,int)` for a description of this parameter.
        `indexCount` - the number of indices in this object. This count is the maximum number of vertices that will be rendered.
      Throws:
        `java.lang.IllegalArgumentException` - if `indexCount < 0` ;
        See `GeometryArray.GeometryArray(int,int)` for more exceptions that can be thrown

    - #### IndexedGeometryArray

          public IndexedGeometryArray(int vertexCount,
                              int vertexFormat,
                              int texCoordSetCount,
                              int[] texCoordSetMap,
                              int indexCount)

      Constructs an empty IndexedGeometryArray object with the specified number of vertices, vertex format, number of texture coordinate sets, texture coordinate mapping array, and number of indices. Defaults are used for all other parameters.
      Parameters:
        `vertexCount` - see `GeometryArray.GeometryArray(int,int,int,int[])` for a description of this parameter.
        `vertexFormat` - see `GeometryArray.GeometryArray(int,int,int,int[])` for a description of this parameter.
        `texCoordSetCount` - see `GeometryArray.GeometryArray(int,int,int,int[])` for a description of this parameter.
        `texCoordSetMap` - see `GeometryArray.GeometryArray(int,int,int,int[])` for a description of this parameter.
        `indexCount` - the number of indices in this object. This count is the maximum number of vertices that will be rendered.
      Throws:
        `java.lang.IllegalArgumentException` - if `indexCount < 0` ;
        See `GeometryArray.GeometryArray(int,int,int,int[])` for more exceptions that can be thrown
      Since:
        Java 3D 1.2

    - #### IndexedGeometryArray

          public IndexedGeometryArray(int vertexCount,
                              int vertexFormat,
                              int texCoordSetCount,
                              int[] texCoordSetMap,
                              int vertexAttrCount,
                              int[] vertexAttrSizes,
                              int indexCount)

      Constructs an empty IndexedGeometryArray object with the specified number of vertices, vertex format, number of texture coordinate sets, texture coordinate mapping array, vertex attribute count, vertex attribute sizes array, and number of indices.
      Parameters:
        `vertexCount` - see `GeometryArray.GeometryArray(int,int,int,int[],int,int[])` for a description of this parameter.
        `vertexFormat` - see `GeometryArray.GeometryArray(int,int,int,int[],int,int[])` for a description of this parameter.
        `texCoordSetMap` - see `GeometryArray.GeometryArray(int,int,int,int[],int,int[])` for a description of this parameter.
        `vertexAttrCount` - see `GeometryArray.GeometryArray(int,int,int,int[],int,int[])` for a description of this parameter.
        `vertexAttrSizes` - see `GeometryArray.GeometryArray(int,int,int,int[],int,int[])` for a description of this parameter.
        `indexCount` - the number of indices in this object. This count is the maximum number of vertices that will be rendered.
      Throws:
        `java.lang.IllegalArgumentException` - if `indexCount < 0` ;
        See `GeometryArray.GeometryArray(int,int,int,int[],int,int[])` for more exceptions that can be thrown
      Since:
        Java 3D 1.4

  - ### Method Detail

    - #### getIndexCount

          public int getIndexCount()

      Gets number of indices for this IndexedGeometryArray.
      Returns:
        indexCount the number of indices

    - #### setValidIndexCount

          public void setValidIndexCount(int validIndexCount)

      Sets the valid index count for this IndexedGeometryArray object. This count specifies the number of indexed vertices actually used in rendering or other operations such as picking and collision. This attribute is initialized to `indexCount`.
      Parameters:
        `validIndexCount` - the new valid index count.
      Throws:
        `CapabilityNotSetException` - if the appropriate capability is not set and this object is part of a live or compiled scene graph
        `java.lang.IllegalArgumentException` - if either of the following is true:
        `validIndexCount < 0`, or
        `initialIndexIndex + validIndexCount > indexCount`
        `java.lang.ArrayIndexOutOfBoundsException` - if any element in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` in the index array associated with any of the enabled vertex components (coord, color, normal, texcoord) is out of range. An element is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the particular component's array.
        `java.lang.ArrayIndexOutOfBoundsException` - if the data mode for this geometry array object is `BY_REFERENCE_INDICES` and `coordIndices.length < (initialIndexIndex + validIndexCount)`.
      Since:
        Java 3D 1.3

    - #### getValidIndexCount

          public int getValidIndexCount()

      Gets the valid index count for this IndexedGeometryArray object. For geometry strip primitives (subclasses of IndexedGeometryStripArray), the valid index count is defined to be the sum of the stripIndexCounts array.
      Returns:
        the current valid index count
      Throws:
        `CapabilityNotSetException` - if the appropriate capability is not set and this object is part of a live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### setInitialIndexIndex

          public void setInitialIndexIndex(int initialIndexIndex)

      Sets the initial index index for this IndexedGeometryArray object. This index specifies the first index within this indexed geometry array that is actually used in rendering or other operations such as picking and collision. This attribute is initialized to 0.
      Parameters:
        `initialIndexIndex` - the new initial index index.
      Throws:
        `CapabilityNotSetException` - if the appropriate capability is not set and this object is part of a live or compiled scene graph
        `java.lang.IllegalArgumentException` - if either of the following is true:
        `initialIndexIndex < 0`, or
        `initialIndexIndex + validIndexCount > indexCount`
        `java.lang.ArrayIndexOutOfBoundsException` - if any element in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` in the index array associated with any of the enabled vertex components (coord, color, normal, texcoord) is out of range. An element is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the particular component's array.
        `java.lang.ArrayIndexOutOfBoundsException` - if the data mode for this geometry array object is `BY_REFERENCE_INDICES` and `coordIndices.length < (initialIndexIndex + validIndexCount)`.
      Since:
        Java 3D 1.3

    - #### getInitialIndexIndex

          public int getInitialIndexIndex()

      Gets the initial index index for this IndexedGeometryArray object.
      Returns:
        the current initial index index
      Throws:
        `CapabilityNotSetException` - if the appropriate capability is not set and this object is part of a live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### setInitialVertexIndex

          public void setInitialVertexIndex(int initialVertexIndex)

      This method is not supported for indexed geometry arrays. Indexed primitives use an array of indices to determine how to access the vertex array. The initialIndexIndex attribute can be used to set the starting index within the index arrays.
      Overrides:
        `setInitialVertexIndex` in class `GeometryArray`
      Parameters:
        `initialVertexIndex` - the new initial vertex index.
      Throws:
        `java.lang.UnsupportedOperationException` - this method is not supported
      Since:
        Java 3D 1.3

    - #### setInitialCoordIndex

          public void setInitialCoordIndex(int initialCoordIndex)

      This method is not supported for indexed geometry arrays. Indexed primitives use an array of indices to determine how to access the vertex array.
      Overrides:
        `setInitialCoordIndex` in class `GeometryArray`
      Parameters:
        `initialCoordIndex` - the new initial coordinate index.
      Throws:
        `java.lang.UnsupportedOperationException` - this method is not supported
      Since:
        Java 3D 1.3

    - #### setInitialColorIndex

          public void setInitialColorIndex(int initialColorIndex)

      This method is not supported for indexed geometry arrays. Indexed primitives use an array of indices to determine how to access the vertex array.
      Overrides:
        `setInitialColorIndex` in class `GeometryArray`
      Parameters:
        `initialColorIndex` - the new initial color index.
      Throws:
        `java.lang.UnsupportedOperationException` - this method is not supported
      Since:
        Java 3D 1.3

    - #### setInitialNormalIndex

          public void setInitialNormalIndex(int initialNormalIndex)

      This method is not supported for indexed geometry arrays. Indexed primitives use an array of indices to determine how to access the vertex array.
      Overrides:
        `setInitialNormalIndex` in class `GeometryArray`
      Parameters:
        `initialNormalIndex` - the new initial normal index.
      Throws:
        `java.lang.UnsupportedOperationException` - this method is not supported
      Since:
        Java 3D 1.3

    - #### setInitialTexCoordIndex

          public void setInitialTexCoordIndex(int texCoordSet,
                                     int initialTexCoordIndex)

      This method is not supported for indexed geometry arrays. Indexed primitives use an array of indices to determine how to access the vertex array.
      Overrides:
        `setInitialTexCoordIndex` in class `GeometryArray`
      Parameters:
        `texCoordSet` - texture coordinate set in this geometry array
        `initialTexCoordIndex` - the new initial texture coordinate index.
      Throws:
        `java.lang.UnsupportedOperationException` - this method is not supported
      Since:
        Java 3D 1.3

    - #### setInitialVertexAttrIndex

          public void setInitialVertexAttrIndex(int vertexAttrNum,
                                       int initialVertexAttrIndex)

      This method is not supported for indexed geometry arrays. Indexed primitives use an array of indices to determine how to access the vertex array.
      Overrides:
        `setInitialVertexAttrIndex` in class `GeometryArray`
      Parameters:
        `vertexAttrNum` - vertex attribute number in this geometry array
        `initialVertexAttrIndex` - the new initial vertex attribute index.
      Throws:
        `java.lang.UnsupportedOperationException` - this method is not supported
      Since:
        Java 3D 1.4

    - #### setValidVertexCount

          public void setValidVertexCount(int validVertexCount)

      This method is not supported for indexed geometry arrays. Indexed primitives use an array of indices to determine how to access the vertex array. The validIndexCount attribute can be used to set the number of valid indexed vertices rendered.
      Overrides:
        `setValidVertexCount` in class `GeometryArray`
      Parameters:
        `validVertexCount` - the new valid vertex count.
      Throws:
        `java.lang.UnsupportedOperationException` - this method is not supported
      Since:
        Java 3D 1.3

    - #### setCoordinateIndex

          public void setCoordinateIndex(int index,
                                int coordinateIndex)

      Sets the coordinate index associated with the vertex at the specified index for this object.
      Parameters:
        `index` - the vertex index
        `coordinateIndex` - the new coordinate index
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if index is less than 0 or is greater than or equal to indexCount
        `java.lang.ArrayIndexOutOfBoundsException` - if index is in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` and the specified coordinateIndex is out of range. The coordinateIndex is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the coordinate array.
        `java.lang.IllegalStateException` - if the data mode for this geometry array object is `BY_REFERENCE_INDICES`.

    - #### setCoordinateIndices

          public void setCoordinateIndices(int index,
                                  int[] coordinateIndices)

      Sets the coordinate indices associated with the vertices starting at the specified index for this object.
      Parameters:
        `index` - the vertex index
        `coordinateIndices` - an array of coordinate indices
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if index is less than 0 or is greater than or equal to indexCount
        `java.lang.ArrayIndexOutOfBoundsException` - if any element of the coordinateIndices array whose destination position is in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` is out of range. An element is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the coordinate array.
        `java.lang.IllegalStateException` - if the data mode for this geometry array object is `BY_REFERENCE_INDICES`.

    - #### setCoordIndicesRef

          public void setCoordIndicesRef(int[] coordIndices)

      Sets the coordinate indices array reference to the specified array. If the coordinate indices array reference is null, the entire geometry array object is treated as if it were null--any Shape3D or Morph node that uses this geometry array will not be drawn.
      Parameters:
        `coordIndices` - an array of indices to which a reference will be set.
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.IllegalStateException` - if the data mode for this geometry array object is not `BY_REFERENCE_INDICES`.
        `java.lang.ArrayIndexOutOfBoundsException` - if any element of the coordIndices array whose destination position is in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` is out of range. An element is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the coordinate array.
        `java.lang.ArrayIndexOutOfBoundsException` - if `coordIndices.length < (initialIndexIndex + validIndexCount)`.
      Since:
        Java 3D 1.5

    - #### setColorIndex

          public void setColorIndex(int index,
                           int colorIndex)

      Sets the color index associated with the vertex at the specified index for this object.
      Parameters:
        `index` - the vertex index
        `colorIndex` - the new color index
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if index is less than 0 or is greater than or equal to indexCount
        `java.lang.ArrayIndexOutOfBoundsException` - if index is in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` and the specified colorIndex is out of range. The colorIndex is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the color array.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.

    - #### setColorIndices

          public void setColorIndices(int index,
                             int[] colorIndices)

      Sets the color indices associated with the vertices starting at the specified index for this object.
      Parameters:
        `index` - the vertex index
        `colorIndices` - an array of color indices
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if index is less than 0 or is greater than or equal to indexCount
        `java.lang.ArrayIndexOutOfBoundsException` - if any element of the colorIndices array whose destination position is in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` is out of range. An element is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the color array.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.

    - #### setNormalIndex

          public void setNormalIndex(int index,
                            int normalIndex)

      Sets the normal index associated with the vertex at the specified index for this object.
      Parameters:
        `index` - the vertex index
        `normalIndex` - the new normal index
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if index is less than 0 or is greater than or equal to indexCount
        `java.lang.ArrayIndexOutOfBoundsException` - if index is in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` and the specified normalIndex is out of range. The normalIndex is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the normal array.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.

    - #### setNormalIndices

          public void setNormalIndices(int index,
                              int[] normalIndices)

      Sets the normal indices associated with the vertices starting at the specified index for this object.
      Parameters:
        `index` - the vertex index
        `normalIndices` - an array of normal indices
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if index is less than 0 or is greater than or equal to indexCount
        `java.lang.ArrayIndexOutOfBoundsException` - if any element of the normalIndices array whose destination position is in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` is out of range. An element is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the normal array.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.

    - #### setTextureCoordinateIndex

          public void setTextureCoordinateIndex(int index,
                                       int texCoordIndex)

      Deprecated. As of Java 3D version 1.2, replaced by `setTextureCoordinateIndex(int texCoordSet, ...)`

    - #### setTextureCoordinateIndex

          public void setTextureCoordinateIndex(int texCoordSet,
                                       int index,
                                       int texCoordIndex)

      Sets the texture coordinate index associated with the vertex at the specified index in the specified texture coordinate set for this object.
      Parameters:
        `texCoordSet` - texture coordinate set in this geometry array
        `index` - the vertex index
        `texCoordIndex` - the new texture coordinate index
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if neither of the `TEXTURE_COORDINATE` bits are set in the `vertexFormat` or if the index or texCoordSet is out of range.
        `java.lang.ArrayIndexOutOfBoundsException` - if index is in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` and the specified texCoordIndex is out of range. The texCoordIndex is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the texture coordinate array.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.
      Since:
        Java 3D 1.2

    - #### setTextureCoordinateIndices

          public void setTextureCoordinateIndices(int index,
                                         int[] texCoordIndices)

      Deprecated. As of Java 3D version 1.2, replaced by `setTextureCoordinateIndices(int texCoordSet, ...)`

    - #### setTextureCoordinateIndices

          public void setTextureCoordinateIndices(int texCoordSet,
                                         int index,
                                         int[] texCoordIndices)

      Sets the texture coordinate indices associated with the vertices starting at the specified index in the specified texture coordinate set for this object.
      Parameters:
        `texCoordSet` - texture coordinate set in this geometry array
        `index` - the vertex index
        `texCoordIndices` - an array of texture coordinate indices
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if neither of the `TEXTURE_COORDINATE` bits are set in the `vertexFormat` or if the index or texCoordSet is out of range.
        `java.lang.ArrayIndexOutOfBoundsException` - if any element of the texCoordIndices array whose destination position is in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` is out of range. An element is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the texture coordinate array.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.
      Since:
        Java 3D 1.2

    - #### setVertexAttrIndex

          public void setVertexAttrIndex(int vertexAttrNum,
                                int index,
                                int vertexAttrIndex)

      Sets the vertex attribute index associated with the vertex at the specified index for the specified vertex attribute number for this object.
      Parameters:
        `vertexAttrNum` - vertex attribute number in this geometry array
        `index` - the vertex index
        `vertexAttrIndex` - the new vertex attribute index
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if the index or vertexAttrNum is out of range.
        `java.lang.ArrayIndexOutOfBoundsException` - if index is in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` and the specified vertexAttrIndex is out of range. The vertexAttrIndex is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the vertex attribute array.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.
      Since:
        Java 3D 1.4

    - #### setVertexAttrIndices

          public void setVertexAttrIndices(int vertexAttrNum,
                                  int index,
                                  int[] vertexAttrIndices)

      Sets the vertex attribute indices associated with the vertices starting at the specified index for the specified vertex attribute number for this object.
      Parameters:
        `vertexAttrNum` - vertex attribute number in this geometry array
        `index` - the vertex index
        `vertexAttrIndices` - an array of vertex attribute indices
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if the index or vertexAttrNum is out of range.
        `java.lang.ArrayIndexOutOfBoundsException` - if any element of the vertexAttrIndices array whose destination position is in the range `[initialIndexIndex, initialIndexIndex+validIndexCount-1]` is out of range. An element is out of range if it is less than 0 or is greater than or equal to the number of vertices actually defined for the vertex attribute array.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.
      Since:
        Java 3D 1.4

    - #### getCoordinateIndex

          public int getCoordinateIndex(int index)

      Retrieves the coordinate index associated with the vertex at the specified index for this object.
      Parameters:
        `index` - the vertex index
      Returns:
        the coordinate index
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.IllegalStateException` - if the data mode for this geometry array object is `BY_REFERENCE_INDICES`.

    - #### getCoordinateIndices

          public void getCoordinateIndices(int index,
                                  int[] coordinateIndices)

      Retrieves the coordinate indices associated with the vertices starting at the specified index for this object.
      Parameters:
        `index` - the vertex index
        `coordinateIndices` - array that will receive the coordinate indices
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.IllegalStateException` - if the data mode for this geometry array object is `BY_REFERENCE_INDICES`.

    - #### getCoordIndicesRef

          public int[] getCoordIndicesRef()

      Returns a reference to the coordinate indices associated with the vertices
      Returns:
        the coordinate indices array
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.IllegalStateException` - if the data mode for this geometry array object is not `BY_REFERENCE_INDICES`.
      Since:
        Java 3D 1.5

    - #### getColorIndex

          public int getColorIndex(int index)

      Retrieves the color index associated with the vertex at the specified index for this object.
      Parameters:
        `index` - the vertex index
      Returns:
        the color index
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.

    - #### getColorIndices

          public void getColorIndices(int index,
                             int[] colorIndices)

      Retrieves the color indices associated with the vertices starting at the specified index for this object. The color indicies are copied into the specified array. The array must be large enough to hold all of the indices.
      Parameters:
        `index` - the vertex index
        `colorIndices` - array that will receive the color indices
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.

    - #### getNormalIndex

          public int getNormalIndex(int index)

      Retrieves the normal index associated with the vertex at the specified index for this object.
      Parameters:
        `index` - the vertex index
      Returns:
        the normal index
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.

    - #### getNormalIndices

          public void getNormalIndices(int index,
                              int[] normalIndices)

      Retrieves the normal indices associated with the vertices starting at the specified index for this object. The normal indicies are copied into the specified array. The array must be large enough to hold all of the normal indicies.
      Parameters:
        `index` - the vertex index
        `normalIndices` - array that will receive the normal indices
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.

    - #### getTextureCoordinateIndex

          public int getTextureCoordinateIndex(int index)

      Deprecated. As of Java 3D version 1.2, replaced by `getTextureCoordinateIndex(int texCoordSet, ...)`

    - #### getTextureCoordinateIndex

          public int getTextureCoordinateIndex(int texCoordSet,
                                      int index)

      Retrieves the texture coordinate index associated with the vertex at the specified index in the specified texture coordinate set for this object.
      Parameters:
        `texCoordSet` - texture coordinate set in this geometry array
        `index` - the vertex index
      Returns:
        the texture coordinate index
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if neither of the `TEXTURE_COORDINATE` bits are set in the `vertexFormat` or if the index or texCoordSet is out of range.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.
      Since:
        Java 3D 1.2

    - #### getTextureCoordinateIndices

          public void getTextureCoordinateIndices(int index,
                                         int[] texCoordIndices)

      Deprecated. As of Java 3D version 1.2, replaced by `getTextureCoordinateIndices(int texCoordSet, ...)`

    - #### getTextureCoordinateIndices

          public void getTextureCoordinateIndices(int texCoordSet,
                                         int index,
                                         int[] texCoordIndices)

      Retrieves the texture coordinate indices associated with the vertices starting at the specified index in the specified texture coordinate set for this object. The texture coordinate indices are copied into the specified array. The array must be large enough to hold all of the indices.
      Parameters:
        `texCoordSet` - texture coordinate set in this geometry array
        `index` - the vertex index
        `texCoordIndices` - array that will receive the texture coordinate indices
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if neither of the `TEXTURE_COORDINATE` bits are set in the `vertexFormat` or if the index or texCoordSet is out of range.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.
      Since:
        Java 3D 1.2

    - #### getVertexAttrIndex

          public int getVertexAttrIndex(int vertexAttrNum,
                               int index)

      Retrieves the vertex attribute index associated with the vertex at the specified index for the specified vertex attribute number for this object.
      Parameters:
        `vertexAttrNum` - vertex attribute number in this geometry array
        `index` - the vertex index
      Returns:
        the vertex attribute index
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if the index or vertexAttrNum is out of range.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.
      Since:
        Java 3D 1.4

    - #### getVertexAttrIndices

          public void getVertexAttrIndices(int vertexAttrNum,
                                  int index,
                                  int[] vertexAttrIndices)

      Retrieves the vertex attribute indices associated with the vertices starting at the specified index for the specified vertex attribute number for this object. The vertex attribute indices are copied into the specified array. The array must be large enough to hold all of the indices.
      Parameters:
        `vertexAttrNum` - vertex attribute number in this geometry array
        `index` - the vertex index
        `vertexAttrIndices` - array that will receive the vertex attribute indices
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `java.lang.ArrayIndexOutOfBoundsException` - if the index or vertexAttrNum is out of range.
        `java.lang.NullPointerException` - if the `USE_COORD_INDEX_ONLY` bit is set in `vertexFormat`.
      Since:
        Java 3D 1.4

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