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, and texture coordinates. 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
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.
 
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, BY_REFERENCE, COLOR_3, COLOR_4, COORDINATES, INTERLEAVED, NORMALS, TEXTURE_COORDINATE_2, TEXTURE_COORDINATE_3
 
Fields inherited from class javax.media.j3d.Geometry
ALLOW_INTERSECT
 
Constructor Summary
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.
 
Method Summary
 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 getIndexCount()
          Gets number of indices for this IndexedGeometryArray.
 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.
 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 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.
 
Methods inherited from class javax.media.j3d.GeometryArray
getColor, getColor, getColor, getColor, getColor, getColor, getColorRef3b, getColorRef3f, getColorRef4b, getColorRef4f, getColorRefByte, getColorRefFloat, getColors, getColors, getColors, getColors, getColors, getColors, getCoordinate, getCoordinate, getCoordinate, getCoordinate, getCoordinates, getCoordinates, getCoordinates, getCoordinates, getCoordRef3d, getCoordRef3f, getCoordRefDouble, getCoordRefFloat, getInitialColorIndex, getInitialCoordIndex, getInitialNormalIndex, getInitialTexCoordIndex, getInitialVertexIndex, getInterleavedVertices, getNormal, getNormal, getNormalRef3f, getNormalRefFloat, getNormals, getNormals, getTexCoordRef2f, getTexCoordRef3f, getTexCoordRefFloat, getTexCoordSetCount, getTexCoordSetMap, getTexCoordSetMapLength, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getValidVertexCount, getVertexCount, getVertexFormat, setColor, setColor, setColor, setColor, setColor, setColor, setColorRef3b, setColorRef3f, setColorRef4b, setColorRef4f, 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, setCoordRefDouble, setCoordRefFloat, setInitialColorIndex, setInitialCoordIndex, setInitialNormalIndex, setInitialTexCoordIndex, setInitialVertexIndex, setInterleavedVertices, setNormal, setNormal, setNormalRef3f, setNormalRefFloat, setNormals, setNormals, setNormals, setNormals, setTexCoordRef2f, setTexCoordRef3f, setTexCoordRefFloat, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setValidVertexCount, updateData
 
Methods inherited from class javax.media.j3d.NodeComponent
cloneNodeComponent, cloneNodeComponent, duplicateNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree
 
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, duplicateSceneGraphObject, getCapability, getUserData, isCompiled, isLive, setCapability, setUserData, updateNodeReferences
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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.

ALLOW_COORDINATE_INDEX_WRITE

public static final int ALLOW_COORDINATE_INDEX_WRITE
Specifies that this IndexedGeometryArray allows writing the array of coordinate indices.

ALLOW_COLOR_INDEX_READ

public static final int ALLOW_COLOR_INDEX_READ
Specifies that this IndexedGeometryArray allows reading the array of color indices.

ALLOW_COLOR_INDEX_WRITE

public static final int ALLOW_COLOR_INDEX_WRITE
Specifies that this IndexedGeometryArray allows writing the array of color indices.

ALLOW_NORMAL_INDEX_READ

public static final int ALLOW_NORMAL_INDEX_READ
Specifies that this IndexedGeometryArray allows reading the array of normal indices.

ALLOW_NORMAL_INDEX_WRITE

public static final int ALLOW_NORMAL_INDEX_WRITE
Specifies that this IndexedGeometryArray allows writing the array of normal indices.

ALLOW_TEXCOORD_INDEX_READ

public static final int ALLOW_TEXCOORD_INDEX_READ
Specifies that this IndexedGeometryArray allows reading the array of texture coordinate indices.

ALLOW_TEXCOORD_INDEX_WRITE

public static final int ALLOW_TEXCOORD_INDEX_WRITE
Specifies that this IndexedGeometryArray allows writing the array of texture coordinate indices.
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. The index values in each of the four index arrays (coordinates, colors, normals, and texture coordinates) are all initialized to 0.
Parameters:
vertexCount - the number of vertex elements in this IndexedGeometryArray
vertexFormat - a mask indicating which components are present in each vertex. This is specified as one or more individual flags that are bitwise "OR"ed together to describe the per-vertex data. The flags include: COORDINATES, to signal the inclusion of vertex positions--always present; NORMALS, to signal the inclusion of per vertex normals; one of COLOR_3, COLOR_4, to signal the inclusion of per vertex colors (without or with color information); one of TEXTURE_COORDINATE_2 or TEXTURE_COORDINATE_3, to signal the inclusion of per-vertex texture coordinates 2D or 3D.
indexCount - the number of indices in this object. This count is the number of vertices that will be rendered.

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. The index values in each of the four index arrays (coordinates, colors, normals, and texture coordinates) are all initialized to 0.
Parameters:
vertexCount - the number of vertex elements in this IndexedGeometryArray

vertexFormat - a mask indicating which components are present in each vertex. This is specified as one or more individual flags that are bitwise "OR"ed together to describe the per-vertex data. The flags include: COORDINATES, to signal the inclusion of vertex positions--always present; NORMALS, to signal the inclusion of per vertex normals; one of COLOR_3, COLOR_4, to signal the inclusion of per vertex colors (without or with color information); one of TEXTURE_COORDINATE_2 or TEXTURE_COORDINATE_3, to signal the inclusion of per-vertex texture coordinates 2D or 3D.

texCoordSetCount - the number of texture coordinate sets in this GeometryArray object. If vertexFormat does not include one of TEXTURE_COORDINATE_2 or TEXTURE_COORDINATE_3, the texCoordSetCount parameter is not used.

texCoordSetMap - an array that maps texture coordinate sets to texture units. The array is indexed by texture unit number for each texture unit in the associated Appearance object. The values in the array specify the texture coordinate set within this GeometryArray object that maps to the corresponding texture unit. All elements within the array must be less than texCoordSetCount. A negative value specifies that no texture coordinate set maps to the texture unit corresponding to the index. If there are more texture units in any associated Appearance object than elements in the mapping array, the extra elements are assumed to be -1. The same texture coordinate set may be used for more than one texture unit. Each texture unit in every associated Appearance must have a valid source of texture coordinates: either a non-negative texture coordinate set must be specified in the mapping array or texture coordinate generation must be enabled. Texture coordinate generation will take precedence for those texture units for which a texture coordinate set is specified and texture coordinate generation is enabled. If vertexFormat does not include one of TEXTURE_COORDINATE_2 or TEXTURE_COORDINATE_3, the texCoordSetMap array is not used.

indexCount - the number of indices in this object. This count is the number of vertices that will be rendered.
Since:
Java 3D 1.2
Method Detail

getIndexCount

public int getIndexCount()
Gets number of indices for this IndexedGeometryArray.
Returns:
indexCount the number of indices

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

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

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

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

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

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

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
ArrayIndexOutOfBoundsException - if neither of the TEXTURE_COORDINATE bits are set in the vertexFormat or if the index or texCoordSet is out of range.
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
ArrayIndexOutOfBoundsException - if neither of the TEXTURE_COORDINATE bits are set in the vertexFormat or if the index or texCoordSet is out of range.
Since:
Java 3D 1.2

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

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

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

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

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

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

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
ArrayIndexOutOfBoundsException - if neither of the TEXTURE_COORDINATE bits are set in the vertexFormat or if the index or texCoordSet is out of range.
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
ArrayIndexOutOfBoundsException - if neither of the TEXTURE_COORDINATE bits are set in the vertexFormat or if the index or texCoordSet is out of range.
Since:
Java 3D 1.2