Aviatrix3D
2.1.0

org.j3d.renderer.aviatrix3d.nodes
Class IndexedBufferGeometry

java.lang.Object
  extended by org.j3d.aviatrix3d.SceneGraphObject
      extended by org.j3d.aviatrix3d.NodeComponent
          extended by org.j3d.aviatrix3d.Geometry
              extended by org.j3d.renderer.aviatrix3d.nodes.BufferGeometry
                  extended by org.j3d.renderer.aviatrix3d.nodes.IndexedBufferGeometry
All Implemented Interfaces:
java.lang.Comparable, LeafPickTarget, PickableObject, PickTarget, GeometryRenderable, Renderable
Direct Known Subclasses:
IndexedLineArray, IndexedLineStripArray, IndexedQuadArray, IndexedQuadStripArray, IndexedTriangleArray, IndexedTriangleFanArray, IndexedTriangleStripArray

public abstract class IndexedBufferGeometry
extends BufferGeometry

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.

Version:
$Revision: 1.6 $
Author:
Justin Couch

Field Summary
protected  java.nio.IntBuffer indexBuffer
          Buffer holding the current index list
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.renderer.aviatrix3d.nodes.BufferGeometry
ATTRIB_CLEAR, ATTRIB_MASK, attribIds, ATTRIBS, attributes, COLOR_3, COLOR_4, COLOR_CLEAR, COLOR_MASK, COLOR2, COLOR2_CLEAR, COLOR2_MASK, color2Buffer, colorBuffer, COORDINATE_2, COORDINATE_3, COORDINATE_4, COORDINATE_CLEAR, COORDINATE_MASK, EDGE_CLEAR, EDGE_MASK, EDGES, FOG, FOG_CLEAR, FOG_MASK, fogBuffer, NORMAL_CLEAR, normalBuffer, NORMALS, numCoords, 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, 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_TIMING_ERR_PROP, updateHandler
 
Fields inherited from interface org.j3d.aviatrix3d.picking.PickableObject
COLLIDABLE_OBJECT, GENERAL_OBJECT, PROXIMITY_OBJECT, VISIBLE_OBJECT
 
Fields inherited from interface org.j3d.aviatrix3d.picking.PickTarget
CUSTOM_PICK_TYPE, GROUP_PICK_TYPE, LEAF_PICK_TYPE, SINGLE_PICK_TYPE
 
Constructor Summary
IndexedBufferGeometry()
           
 
Method Summary
protected  java.nio.IntBuffer createBuffer(int size)
          Convenience method to allocate a NIO buffer for the vertex handling that handles floats.
 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.renderer.aviatrix3d.nodes.BufferGeometry
clearVertexState, getColors, getFogCoordinates, getNormals, getSecondaryColors, getTextureCoordinates, getValidVertexCount, getVertexType, getVertices, initPolygonDetails, is2D, ray3DQuadChecked, ray3DTriangleChecked, recomputeBounds, setAttributes, setAttributes, setAttributes, setAttributes, setAttributes, setColors, setFogCoordinates, setLive, setNormals, setSecondaryColors, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureSetMap, setTextureSetMap, setValidVertexCount, setVertexState, setVertices, setVertices, updateBounds
 
Methods inherited from class org.j3d.aviatrix3d.Geometry
addParent, boundsChanged, checkPickMask, getBounds, getPickableBounds, getPickMask, getPickTargetType, hasTransparency, markBoundsDirty, pickBatch, pickLineRay, pickLineSegment, pickSingle, removeParent, setBounds, setPickMask
 
Methods inherited from class org.j3d.aviatrix3d.NodeComponent
addParent, getParents, numParents, removeParent
 
Methods inherited from class org.j3d.aviatrix3d.SceneGraphObject
checkForCyclicChild, checkForCyclicParent, dataChanged, getAppUpdateWriteTimingMessage, getBoundsWriteTimingMessage, getDataWriteTimingMessage, 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.rendering.GeometryRenderable
hasTransparency, render
 
Methods inherited from interface org.j3d.aviatrix3d.rendering.Renderable
equals
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Field Detail

indices

protected int[] indices
The indices defining the geometry types. A reference to the user-provided array. The current values are kept in the accompanying IntBuffer instance.


numIndices

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


indexBuffer

protected java.nio.IntBuffer indexBuffer
Buffer holding the current index list

Constructor Detail

IndexedBufferGeometry

public IndexedBufferGeometry()
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 BufferGeometry
Returns:
true when the geometry is visible

setIndices

public void setIndices(int[] indexList,
                       int num)
                throws InvalidWriteTimingException
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 bounds changed 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

createBuffer

protected java.nio.IntBuffer createBuffer(int size)
Convenience method to allocate a NIO buffer for the vertex handling that handles floats.

Parameters:
size - The number of floats to have in the array

Aviatrix3D
2.1.0

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