Aviatrix3D
2.1.0

org.j3d.aviatrix3d
Class IndexedLineStripArray

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.aviatrix3d.VertexGeometry
                  extended by org.j3d.aviatrix3d.IndexedVertexGeometry
                      extended by org.j3d.aviatrix3d.IndexedLineStripArray
All Implemented Interfaces:
java.lang.Comparable, LeafPickTarget, PickableObject, PickTarget, DeletableRenderable, GeometryRenderable, Renderable

public class IndexedLineStripArray
extends IndexedVertexGeometry

An OpenGL LineStripArray.

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.

Internationalisation Resource Names

Version:
$Revision: 1.27 $
Author:
Justin Couch

Field Summary
protected  int numStripIndicesUsed
          The number of indices required for the strip geometry
 
Fields inherited from class org.j3d.aviatrix3d.IndexedVertexGeometry
indexBuffer, indices, numIndices, numIndicesUsed, vboElementIdMap
 
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, dataChanged, 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, useVbo, VBO_HINT_DYNAMIC, VBO_HINT_STATIC, VBO_HINT_STREAM, vboAvailable, vboHint, vboIdMap, vboQueryComplete, 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
IndexedLineStripArray()
          Constructs a LineStripArray with default values.
IndexedLineStripArray(boolean useVbo, int vboHint)
          Constructs an instance.
 
Method Summary
 int compareTo(IndexedLineStripArray ta)
          Compares this object with the specified object for order.
 int compareTo(java.lang.Object o)
          Compares this object with the specified object for order.
 boolean equals(IndexedLineStripArray ta)
          Compares this object with the specified object to check for equivalence.
 boolean equals(java.lang.Object o)
          Compare this object for equality to the given object.
 void getStripCount(int[] values)
          Get the sizes of the valid strips.
 int getValidStripCount()
          Get the number of valid strips that are defined for this geometry.
protected  boolean isVisible()
          Check to see if this geometry is making the geometry visible or not.
protected  void recomputeBounds()
          Internal method to recalculate the implicit bounds of this Node.
 void render(javax.media.opengl.GL gl)
          Issue ogl commands needed for this renderable object.
 void setStripCount(int[] counts, int num)
          Set the number of valid strips to use.
 
Methods inherited from class org.j3d.aviatrix3d.IndexedVertexGeometry
cleanup, createBuffer, fillBufferData, getIndices, getValidIndexCount, setIndices, setVBOEnabled, setVertexStateVBO
 
Methods inherited from class org.j3d.aviatrix3d.VertexGeometry
clearVertexState, computeBufferSize, getColor, getColors, getFogCoordinates, getFogCoordinates, getNormal, getNormals, getSecondaryColors, getSecondaryColors, getTextureCoordinate, getTextureCoordinates, getValidVertexCount, getVBOEnabled, getVBOHint, getVertex, getVertexType, getVertices, initPolygonDetails, is2D, isMultiTextureAllowed, numTextureUnits, ray3DQuadChecked, ray3DTriangleChecked, setAttributes, setAttributes, setAttributes, setAttributes, setAttributes, setColors, setFogCoordinates, setLive, setNormals, setSecondaryColors, setSingleColor, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureSetMap, setTextureSetMap, setValidVertexCount, setVBOHint, 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, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.j3d.aviatrix3d.rendering.GeometryRenderable
hasTransparency
 

Field Detail

numStripIndicesUsed

protected int numStripIndicesUsed
The number of indices required for the strip geometry

Constructor Detail

IndexedLineStripArray

public IndexedLineStripArray()
Constructs a LineStripArray with default values.


IndexedLineStripArray

public IndexedLineStripArray(boolean useVbo,
                             int vboHint)
Constructs an instance.

Parameters:
useVbo - Should we use vertex buffer objects
vboHint - Hints for how to setup VBO. Valid values are VBO_HINT_*
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, indices and strips are all non-zero.

Overrides:
isVisible in class IndexedVertexGeometry
Returns:
true when the geometry is visible

recomputeBounds

protected void recomputeBounds()
Internal method to recalculate the implicit bounds of this Node.

Overrides:
recomputeBounds in class IndexedVertexGeometry

render

public void render(javax.media.opengl.GL gl)
Issue ogl commands needed for this renderable object.

Parameters:
gl - The gl context to draw with

compareTo

public int compareTo(java.lang.Object o)
              throws java.lang.ClassCastException
Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

Parameters:
o - The objec to be compared
Returns:
-1, 0 or 1 depending on order
Throws:
java.lang.ClassCastException - The specified object's type prevents it from being compared to this Object

equals

public boolean equals(java.lang.Object o)
Compare this object for equality to the given object.

Specified by:
equals in interface Renderable
Overrides:
equals in class java.lang.Object
Parameters:
o - The object to be compared
Returns:
True if these represent the same values

setStripCount

public void setStripCount(int[] counts,
                          int num)
                   throws java.lang.IllegalArgumentException,
                          InvalidWriteTimingException
Set the number of valid strips to use. A check is performed to make sure that the number of vertices high enough to support the total of all the strip counts so make sure to call setVertex() with the required array length before calling this method. Each strip must be a minumum length of three.

Parameters:
counts - The array of counts
num - The number of valid items to read from the array
Throws:
java.lang.IllegalArgumentException - Invalid total strip count or individual strip count < 2
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener bounds changed callback method

getValidStripCount

public int getValidStripCount()
Get the number of valid strips that are defined for this geometry.

Returns:
a positive number

getStripCount

public void getStripCount(int[] values)
Get the sizes of the valid strips. The passed array must be big enough to contain all the strips.

Parameters:
values - An array to copy the strip values into

compareTo

public int compareTo(IndexedLineStripArray ta)
Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

Parameters:
ta - The argument instance to be compared
Returns:
-1, 0 or 1 depending on order

equals

public boolean equals(IndexedLineStripArray ta)
Compares this object with the specified object to check for equivalence.

Parameters:
ta - The geometry instance to be compared
Returns:
true if the objects represent identical values

Aviatrix3D
2.1.0

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