org.j3d.aviatrix3d
Class IndexedVertexGeometry
java.lang.Object
org.j3d.aviatrix3d.SceneGraphObject
org.j3d.aviatrix3d.NodeComponent
org.j3d.aviatrix3d.Geometry
org.j3d.aviatrix3d.VertexGeometry
org.j3d.aviatrix3d.IndexedVertexGeometry
- All Implemented Interfaces:
- PickableObject, Renderable, RenderableObject
- Direct Known Subclasses:
- IndexedLineArray, IndexedLineStripArray, IndexedQuadArray, IndexedQuadStripArray, IndexedTriangleArray, IndexedTriangleFanArray, IndexedTriangleStripArray
- public abstract class IndexedVertexGeometry
- extends VertexGeometry
Base class that defines indexed geometry types.
The implementation assumes a single index is used to describe all the
information needed for rendering. An index will grab the same index from
vertex, normal, colour and texture arrays.
Setting geometry
Part of the optimisation we make is to only copy into the underlying
structures the exact number of coordinates, normals etc that are needed.
To know this number, we need to know how many coordinates exist before
attempting to set anything else. When constructing, or updating, geometry,
you should always make sure that you first set the vertex list, then the
sizing information for the strip or fan counts, and then set normals as
needed.
- Version:
- $Revision: 1.8.2.1 $
- Author:
- Justin Couch
Field Summary |
protected int[] |
indices
The indices defining the geometry types |
protected int |
numIndices
The number of valid values to read from the array |
Fields inherited from class org.j3d.aviatrix3d.VertexGeometry |
ATTRIB_CLEAR, ATTRIB_MASK, attribIds, ATTRIBS, attributes, COLOR_3, COLOR_4, COLOR_CLEAR, COLOR_MASK, COLOR_SINGLE, COLOR2, COLOR2_CLEAR, COLOR2_MASK, color2Buffer, color2s, colorBuffer, colors, COORDINATE_2, COORDINATE_3, COORDINATE_4, COORDINATE_CLEAR, COORDINATE_MASK, coordinates, EDGE_CLEAR, EDGE_MASK, EDGES, FOG, FOG_CLEAR, FOG_MASK, fogBuffer, fogCoords, hasMultiTextureAPI, INTERSECT_ALL, INTERSECT_COLOR, INTERSECT_COORDS, INTERSECT_NORMAL, INTERSECT_TEXCOORDS_MULTI, INTERSECT_TEXCOORDS_SINGLE, maxTextureUnits, NORMAL_CLEAR, normalBuffer, normals, NORMALS, numCoords, numRenderedTextureSets, numRequiredCoords, numTextureArrays, numTextureSets, TEXTURE_CLEAR, TEXTURE_COORDINATE_1, TEXTURE_COORDINATE_2, TEXTURE_COORDINATE_3, TEXTURE_COORDINATE_4, TEXTURE_COORDINATE_MULTI, TEXTURE_COORDINATE_SINGLE, TEXTURE_MASK, TEXTURE_SET_AVAILABLE, TEXTURE_SET_CLEAR, textureBuffer, textures, textureSets, textureTypes, vertexBuffer, vertexFormat, wkPolygon |
Method Summary |
void |
getIndices(int[] values)
Get the sizes of the valid indexs. |
int |
getValidIndexCount()
Get the number of valid indexs that are defined for this geometry. |
protected boolean |
isVisible()
Check to see if this geometry is making the geometry visible or
not. |
void |
setIndices(int[] indexList,
int num)
Set the number of valid indexs to use. |
Methods inherited from class org.j3d.aviatrix3d.VertexGeometry |
clearVertexState, getColors, getFogCoordinates, getNormals, getSecondaryColors, getTextureCoordinates, getValidVertexCount, getVertexType, getVertices, initPolygonDetails, isMultiTextureAllowed, numTextureUnits, ray3DQuadChecked, ray3DTriangleChecked, recomputeBounds, setAttributes, setAttributes, setAttributes, setAttributes, setAttributes, setColors, setFogCoordinates, setLive, setNormals, setSecondaryColors, setSingleColor, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureSetMap, setTextureSetMap, setValidVertexCount, setVertexState, setVertices, setVertices, updateBounds |
Methods inherited from class org.j3d.aviatrix3d.Geometry |
addParent, boundsChanged, getBounds, getPickMask, hasTransparency, markBoundsDirty, pickBatch, pickLineRay, pickLineSegment, pickSingle, removeParent, setBounds, setPickMask |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
indices
protected int[] indices
- The indices defining the geometry types
numIndices
protected int numIndices
- The number of valid values to read from the array
IndexedVertexGeometry
public IndexedVertexGeometry()
isVisible
protected boolean isVisible()
- Check to see if this geometry is making the geometry visible or
not. Returns true if the defined number of coordinates and indices
are both non-zero.
- Overrides:
isVisible
in class VertexGeometry
- Returns:
- true when the geometry is visible
setIndices
public void setIndices(int[] indexList,
int num)
throws InvalidWriteTimingException,
java.lang.IllegalArgumentException
- Set the number of valid indexs to use. A check is performed to make
sure that the number of vertices high enough to support the total
of all the index counts so make sure to call setVertex() with the
required array length before calling this method. Each index must be
a minumum length of three.
- Parameters:
indexList
- The array of indices to setnum
- The number of valid items to read from the array
- Throws:
java.lang.IllegalArgumentException
- Invalid total index count or
individual index count < 3
InvalidWriteTimingException
- An attempt was made to write outside
of the NodeUpdateListener callback method
getValidIndexCount
public int getValidIndexCount()
- Get the number of valid indexs that are defined for this geometry.
- Returns:
- a positive number
getIndices
public void getIndices(int[] values)
- Get the sizes of the valid indexs. The passed array must be big enough
to contain all the indexs.
- Parameters:
values
- An array to copy the index values into
Latest Info from http://aviatrix3d.j3d.org/
Copyright © 2003 - 2005 j3d.org