Aviatrix3D 1.0

org.j3d.aviatrix3d
Class IndexedVertexGeometry

java.lang.Object
  extended byorg.j3d.aviatrix3d.SceneGraphObject
      extended byorg.j3d.aviatrix3d.NodeComponent
          extended byorg.j3d.aviatrix3d.Geometry
              extended byorg.j3d.aviatrix3d.VertexGeometry
                  extended byorg.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
 
Fields inherited from class org.j3d.aviatrix3d.Geometry
bounds, implicitBounds, internalUpdater, INVALID_BOUNDS, lastParentList, parentList, pickFlags, validAlpha
 
Fields inherited from class org.j3d.aviatrix3d.NodeComponent
lastParent, liveCount
 
Fields inherited from class org.j3d.aviatrix3d.SceneGraphObject
alive, LISTENER_SET_NOT_LIVE_MESSAGE, updateHandler, WRITE_TIMING_MSG
 
Fields inherited from interface org.j3d.aviatrix3d.PickableObject
COLLIDABLE_OBJECT, GENERAL_OBJECT, PROXIMITY_OBJECT, VISIBLE_OBJECT
 
Constructor Summary
IndexedVertexGeometry()
           
 
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 org.j3d.aviatrix3d.NodeComponent
addParent, getParents, hasChanged, numParents, removeParent
 
Methods inherited from class org.j3d.aviatrix3d.SceneGraphObject
checkForCyclicChild, checkForCyclicParent, dataChanged, getUserData, isLive, setUpdateHandler, setUserData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.j3d.aviatrix3d.RenderableObject
postRender, render
 

Field Detail

indices

protected int[] indices
The indices defining the geometry types


numIndices

protected int numIndices
The number of valid values to read from the array

Constructor Detail

IndexedVertexGeometry

public IndexedVertexGeometry()
Method Detail

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 set
num - 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

Aviatrix3D 1.0

Latest Info from http://aviatrix3d.j3d.org/
Copyright © 2003 - 2005 j3d.org