org.xith3d.scenegraph
Class IndexedTriangleFanArray

java.lang.Object
  extended by org.xith3d.scenegraph.SceneGraphObject
      extended by org.xith3d.scenegraph.NodeComponent
          extended by org.xith3d.scenegraph.Geometry
              extended by org.xith3d.scenegraph.IndexedGeometryArray
                  extended by org.xith3d.scenegraph.IndexedTriangleFanArray
All Implemented Interfaces:
org.jagatoo.datatypes.NamableObject, org.jagatoo.datatypes.NamedObject, org.openmali.spatial.TriangleContainer, org.openmali.spatial.VertexContainer, org.openmali.spatial.WriteableTriangleContainer

public class IndexedTriangleFanArray
extends IndexedGeometryArray
implements org.openmali.spatial.WriteableTriangleContainer

(Indexed)TriangleFanArray defines a triangle array, where the first vertex is part of any triangle. The second and thirtvertex form the first triangle (together with the first vertex) and the fourth and fifth triangle form the second triangle (together with the first vertex) and so forth.

In the Indexed version the first vertex is the one referenced by the number in the first element of the index array.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.xith3d.scenegraph.Geometry
Geometry.Optimization
 
Field Summary
 
Fields inherited from class org.xith3d.scenegraph.Geometry
BY_REFERENCE, COLORS, COORDINATES, dataContainer, INTERLEAVED, NORMALS, TEXTURE_COORDINATES, VERTEX_ATTRIBUTES
 
Fields inherited from class org.xith3d.scenegraph.SceneGraphObject
XITH3D_USERDATAKEY_OLDUSERDATA
 
Constructor Summary
IndexedTriangleFanArray(int vertexCount, int indexCount, int[] stripIndexCounts)
          Constructs an empty IndexedTriangleArray object with the specified number of vertices, vertex format, and number of indices.
IndexedTriangleFanArray(int coordsSize, int vertexCount, int indexCount, int[] stripIndexCounts)
          Constructs an empty IndexedTriangleArray object with the specified number of vertices, vertex format, and number of indices.
 
Method Summary
 IndexedTriangleFanArray cloneNodeComponent(boolean forceDuplicate)
          
protected  void duplicateNodeComponent(NodeComponent original, boolean forceDuplicate)
          
 boolean getTriangle(int i, org.openmali.spatial.polygons.Triangle triangle)
          
 int getTriangleCount()
          
 boolean isTriangulatable()
          
 boolean isTriangulated()
          
 boolean setTriangle(int i, org.openmali.spatial.polygons.Triangle triangle)
          
 
Methods inherited from class org.xith3d.scenegraph.IndexedGeometryArray
getIndex, getIndex, getIndexCount, getIndexData, getInitialIndexIndex, getValidIndexCount, setIndex, setIndex, setInitialIndexIndex, setValidIndexCount
 
Methods inherited from class org.xith3d.scenegraph.Geometry
addData, addData, addData, calculateFaceNormals, calculateFaceNormals, finalize, flipNormals, freeOpenGLResources, getColor, getColor, getColorData, getColorRefFloat, getColors, getColorsOffset, getColorsSize, getCoordinate, getCoordinate, getCoordinates, getCoordinates, getCoordinatesData, getCoordinatesOffset, getCoordinatesSize, getCoordRefFloat, getFaceSize, getInitialVertexIndex, getInterleavedData, getMaxVertexCount, getNormal, getNormal, getNormalRefFloat, getNormals, getNormals, getNormalsData, getNormalsOffset, getNormalsSize, getNumTextureUnits, getOpenGLReference_DL_GeomData, getOpenGLReference_DL_TexCoords, getOpenGLReference_DL, getOptimization, getTexCoordRefFloat, getTexCoordsData, getTexCoordSetCount, getTexCoordSetMap, getTexCoordSetMap, getTexCoordSize, getTexCoordsOffset, getTextureCoordinate, getTextureCoordinate, getTextureCoordinates, getTriangle, getType, getValidVertexCount, getVertex, getVertexAttribData, getVertexAttribSize, getVertexAttribsOffset, getVertexAttribute, getVertexAttribute, getVertexAttribute, getVertexAttributes, getVertexAttributesCount, getVertexCount, getVertexFormat, hasColorAlpha, hasColors, hasFeature, hasIndex, hasNormals, hasTextureCoordinates, hasTextureCoordinates, hasVertexAttributes, hasVertexAttributes, invertNormals, isBoundsDirty, isInterleaved, isStrip, makeInterleaved, makeInterleaved, setBoundsDirty, setColor, setColor, setColor, setColor, setColorData, setColors, setColors, setColors, setColors, setCoordinate, setCoordinate, setCoordinate, setCoordinateData, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setInitialVertexIndex, setNormal, setNormal, setNormal, setNormalData, setNormals, setNormals, setNormals, setNormals, setOptimization, setTexCoordData, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTriangle, setTriangle, setValidVertexCount, setVertexAttribute, setVertexAttribute, setVertexAttribute, setVertexAttributes, setVertexAttributes, setVertexAttributes, setVertexAttributes, toString
 
Methods inherited from class org.xith3d.scenegraph.NodeComponent
freeOpenGLResources, getDuplicateOnCloneTree, getModListener, isChanged, isChanged2, setChanged, setDuplicateOnCloneTree, setModListener
 
Methods inherited from class org.xith3d.scenegraph.SceneGraphObject
getName, getUserData, getUserData, getUserDataMap, isLive, setLive, setName, setUserData, setUserData, setUserDataRecursive, setUserDataRecursive
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IndexedTriangleFanArray

public IndexedTriangleFanArray(int coordsSize,
                               int vertexCount,
                               int indexCount,
                               int[] stripIndexCounts)
Constructs an empty IndexedTriangleArray object with the specified number of vertices, vertex format, and number of indices.


IndexedTriangleFanArray

public IndexedTriangleFanArray(int vertexCount,
                               int indexCount,
                               int[] stripIndexCounts)
Constructs an empty IndexedTriangleArray object with the specified number of vertices, vertex format, and number of indices.

Method Detail

isTriangulatable

public final boolean isTriangulatable()

Specified by:
isTriangulatable in class Geometry
Returns:
true, if this Geometry is built of triangles or can at least be interpreted as triangles.

isTriangulated

public final boolean isTriangulated()

Specified by:
isTriangulated in class Geometry
Returns:
true, if this Geometry is built of triangles.

getTriangleCount

public int getTriangleCount()

Specified by:
getTriangleCount in interface org.openmali.spatial.TriangleContainer

setTriangle

public boolean setTriangle(int i,
                           org.openmali.spatial.polygons.Triangle triangle)

Specified by:
setTriangle in interface org.openmali.spatial.WriteableTriangleContainer

getTriangle

public boolean getTriangle(int i,
                           org.openmali.spatial.polygons.Triangle triangle)

Specified by:
getTriangle in interface org.openmali.spatial.TriangleContainer

duplicateNodeComponent

protected void duplicateNodeComponent(NodeComponent original,
                                      boolean forceDuplicate)

Overrides:
duplicateNodeComponent in class IndexedGeometryArray

cloneNodeComponent

public IndexedTriangleFanArray cloneNodeComponent(boolean forceDuplicate)

Specified by:
cloneNodeComponent in class Geometry