|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjavax.media.j3d.SceneGraphObject
javax.media.j3d.NodeComponent
javax.media.j3d.Geometry
javax.media.j3d.GeometryArray
javax.media.j3d.GeometryStripArray
javax.media.j3d.TriangleStripArray
edu.d.umn.geometry.InterleavedTriangleStripArray
public class InterleavedTriangleStripArray
This class is a specialization of the TriangleStripArray created to enhance performance of generating triangle strips. This is done by adding a generateNormals method to calculate, in place the normals for each vertex. This saves the overhead in processor time and memory required for using the NormalsGenerator object.
| Field Summary |
|---|
| Fields inherited from class javax.media.j3d.GeometryArray |
|---|
ALLOW_COLOR_READ, ALLOW_COLOR_WRITE, ALLOW_COORDINATE_READ, ALLOW_COORDINATE_WRITE, ALLOW_COUNT_READ, ALLOW_COUNT_WRITE, ALLOW_FORMAT_READ, ALLOW_NORMAL_READ, ALLOW_NORMAL_WRITE, ALLOW_REF_DATA_READ, ALLOW_REF_DATA_WRITE, ALLOW_TEXCOORD_READ, ALLOW_TEXCOORD_WRITE, ALLOW_VERTEX_ATTR_READ, ALLOW_VERTEX_ATTR_WRITE, BY_REFERENCE, COLOR_3, COLOR_4, COORDINATES, INTERLEAVED, NORMALS, TEXTURE_COORDINATE_2, TEXTURE_COORDINATE_3, TEXTURE_COORDINATE_4, USE_COORD_INDEX_ONLY, USE_NIO_BUFFER, VERTEX_ATTRIBUTES |
| Fields inherited from class javax.media.j3d.Geometry |
|---|
ALLOW_INTERSECT |
| Constructor Summary | |
|---|---|
InterleavedTriangleStripArray(int vertexCount,
int vertexFormat,
int[] stripVertexCounts)
Setups the offset of the data based on the vertex format passed in. |
|
| Method Summary | |
|---|---|
static void |
averageNormals(double[][] normals,
int nNormals,
double[] avgNormal)
This method calculates the average of a set of normals stored in an array of doubles. |
void |
calcNormalCCW(double[] normal,
float[] vertexData,
int v0,
int v1,
int v2)
Calculate normal, assumes counter-clockwise order of vertices |
void |
calcNormalCW(double[] norm,
float[] vertexData,
int v0,
int v1,
int v2)
Calculate normal, assumes clockwise order of vertices |
void |
changeExageration(float oldAmount,
float newAmount)
Resets to exageration of 1, then applies the new value. |
void |
generateNormals(boolean averageAdjacentColumns)
Traverse interleaved vertex data and generate normal values. |
void |
normalize(float[] vertexData,
int v)
normalize (make length equal 1) vector from origin to normal |
| Methods inherited from class javax.media.j3d.TriangleStripArray |
|---|
cloneNodeComponent |
| Methods inherited from class javax.media.j3d.GeometryStripArray |
|---|
getNumStrips, getStripVertexCounts, setStripVertexCounts, setValidVertexCount |
| Methods inherited from class javax.media.j3d.GeometryArray |
|---|
getColor, getColor, getColor, getColor, getColor, getColor, getColorRef3b, getColorRef3f, getColorRef4b, getColorRef4f, getColorRefBuffer, getColorRefByte, getColorRefFloat, getColors, getColors, getColors, getColors, getColors, getColors, getCoordinate, getCoordinate, getCoordinate, getCoordinate, getCoordinates, getCoordinates, getCoordinates, getCoordinates, getCoordRef3d, getCoordRef3f, getCoordRefBuffer, getCoordRefDouble, getCoordRefFloat, getInitialColorIndex, getInitialCoordIndex, getInitialNormalIndex, getInitialTexCoordIndex, getInitialVertexAttrIndex, getInitialVertexIndex, getInterleavedVertexBuffer, getInterleavedVertices, getNormal, getNormal, getNormalRef3f, getNormalRefBuffer, getNormalRefFloat, getNormals, getNormals, getTexCoordRef2f, getTexCoordRef3f, getTexCoordRefBuffer, getTexCoordRefFloat, getTexCoordSetCount, getTexCoordSetMap, getTexCoordSetMapLength, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinate, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getTextureCoordinates, getValidVertexCount, getVertexAttr, getVertexAttr, getVertexAttr, getVertexAttr, getVertexAttrCount, getVertexAttrRefBuffer, getVertexAttrRefFloat, getVertexAttrs, getVertexAttrs, getVertexAttrs, getVertexAttrs, getVertexAttrSizes, getVertexCount, getVertexFormat, setColor, setColor, setColor, setColor, setColor, setColor, setColorRef3b, setColorRef3f, setColorRef4b, setColorRef4f, setColorRefBuffer, setColorRefByte, setColorRefFloat, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setColors, setCoordinate, setCoordinate, setCoordinate, setCoordinate, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setCoordinates, setCoordRef3d, setCoordRef3f, setCoordRefBuffer, setCoordRefDouble, setCoordRefFloat, setInitialColorIndex, setInitialCoordIndex, setInitialNormalIndex, setInitialTexCoordIndex, setInitialVertexAttrIndex, setInitialVertexIndex, setInterleavedVertexBuffer, setInterleavedVertices, setNormal, setNormal, setNormalRef3f, setNormalRefBuffer, setNormalRefFloat, setNormals, setNormals, setNormals, setNormals, setTexCoordRef2f, setTexCoordRef3f, setTexCoordRefBuffer, setTexCoordRefFloat, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinate, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setTextureCoordinates, setVertexAttr, setVertexAttr, setVertexAttr, setVertexAttr, setVertexAttrRefBuffer, setVertexAttrRefFloat, setVertexAttrs, setVertexAttrs, setVertexAttrs, setVertexAttrs, setVertexAttrs, setVertexAttrs, setVertexAttrs, setVertexAttrs, updateData |
| Methods inherited from class javax.media.j3d.NodeComponent |
|---|
cloneNodeComponent, duplicateNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree |
| Methods inherited from class javax.media.j3d.SceneGraphObject |
|---|
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public InterleavedTriangleStripArray(int vertexCount,
int vertexFormat,
int[] stripVertexCounts)
vertexCount - the number of vertex elements in this arrayvertexFormat - a mask indicating which components are present in each vertex.
This is specified as one or more individual flags that are bitwise "OR"ed together to
describe the per-vertex data. The flags include: COORDINATES, to signal the
inclusion of vertex positions--always present; NORMALS, to signal the inclusion of
per vertex normals; one of COLOR_3, COLOR_4, to signal the inclusion of per
vertex colors (without or with color information); and one of
TEXTURE_COORDINATE_2 or TEXTURE_COORDINATE_3, to signal the
inclusion of per-vertex texture coordinates 2D or 3D.stripVertexCounts - - array that specifies the count of the number of vertices for
each separate strip. The length of this array is the number of separate strips.| Method Detail |
|---|
public void generateNormals(boolean averageAdjacentColumns)
averageAdjacentColumns - if true, then the algorithm assumes
that the strips comprise a grid whereby adjacent strips have common
vertices. The normals of the vertices are averaged to eliminate stripes.
public void calcNormalCW(double[] norm,
float[] vertexData,
int v0,
int v1,
int v2)
vertexData - the interleaved data.norm - reference to a double[3] array to receive the resultv0 - index of first vertex in interleaved datav1 - index of middle vertex in interleaved datav2 - index of last vertex in interleaved data
public void calcNormalCCW(double[] normal,
float[] vertexData,
int v0,
int v1,
int v2)
vertexData - the interleaved data.normal - reference to a double[3] array to receive the resultv0 - index of first coordinates in interleaved datav1 - index of middle coordinates in interleaved datav2 - index of last coordinates in interleaved data
public static void averageNormals(double[][] normals,
int nNormals,
double[] avgNormal)
normals - a an N by 3 double array holding vector normals to be averagednNormals - number of normals to averageavgNormal - destination for the averaged normal
public void normalize(float[] vertexData,
int v)
vertexData - interleaved array of floatsv - index into interleaved data of vertex data to be normalized.
public void changeExageration(float oldAmount,
float newAmount)
oldAmount - last known exageration value.newAmount - desired exageration value.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||