|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.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 datapublic 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 datapublic 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 normalpublic 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 |