com.jme.scene.lod
Class ClodCreator
java.lang.Object
com.jme.scene.lod.VETMesh
com.jme.scene.lod.ClodCreator
public class ClodCreator
- extends VETMesh
ClodCreator
originally ported from David Eberly's c++,
modifications and enhancements made from there.
This class is used by ClodMesh to create automatically generated records. The
reason for lack of documentation is that it should have little use to someone
outside the API, unless they already know how to use it.
- Version:
- $Id: ClodCreator.java 4131 2009-03-19 20:15:28Z blaine.dev $
- Author:
- Joshua Slack
Constructor Summary |
ClodCreator(java.nio.FloatBuffer vertexArray,
java.nio.FloatBuffer normalArray,
java.nio.FloatBuffer colorArray,
java.nio.FloatBuffer textureArray,
java.nio.IntBuffer indiceArray)
|
Method Summary |
void |
add(float fMetric)
|
boolean |
collapseCausesFolding(int iVKeep,
int iVThrow)
|
void |
collapseEdge(int iVKeep,
int iVThrow)
|
CollapseRecord[] |
computeRecords()
|
void |
doCollapse()
|
void |
flushTriangles()
|
void |
flushVertices()
|
float |
getMetric(VETMesh.Edge pkE,
VETMesh.EdgeAttribute pkEA)
|
CollapseRecord[] |
getRecords()
|
void |
initializeHeap()
|
boolean |
isValidHeap()
|
boolean |
isValidHeap(int iStart,
int iFinal)
|
void |
modifyTriangle(VETMesh.Triangle rkT,
int iVKeep,
int iVThrow)
|
void |
onEdgeInsert(VETMesh.Edge rkE,
boolean bCreate,
VETMesh.EdgeAttribute att)
|
void |
onEdgeRemove(VETMesh.Edge rkE,
boolean bDestroy,
VETMesh.EdgeAttribute att)
|
void |
onTriangleInsert(VETMesh.Triangle tri,
boolean bCreate,
VETMesh.TriangleAttribute att)
|
void |
onTriangleRemove(VETMesh.Triangle tri,
boolean bDestroy,
VETMesh.TriangleAttribute att)
|
void |
onVertexInsert(java.lang.Integer vert,
boolean bCreate,
VETMesh.VertexAttribute att)
|
void |
onVertexRemove(java.lang.Integer vert,
boolean bDestroy,
VETMesh.VertexAttribute att)
|
void |
remove()
|
void |
removeTriangle(VETMesh.Triangle rkT)
|
void |
reorder()
|
void |
sort()
|
void |
update(int iHIndex,
float fMetric)
|
Methods inherited from class com.jme.scene.lod.VETMesh |
create, getComponents, getComponents, getConsistentComponents, getData, getData, getData, getData, getData, getEdgeMap, getEdgeQuantity, getEdges, getEdges, getReversedOrderMesh, getTriangleMap, getTriangleQuantity, getTriangles, getTriangles, getTriangles, getVertexMap, getVertexQuantity, getVertices, insertTriangle, insertTriangle, isClosed, isConnected, isManifold, removeAllTriangles, removeComponent, removeTriangle, setData, setData |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
heapSize
int heapSize
heapArray
ClodCreator.HeapRecord[] heapArray
collapsing
boolean collapsing
deletedVertices
java.util.TreeSet<java.lang.Integer> deletedVertices
deletedEdges
java.util.ArrayList<CollapseRecord> deletedEdges
records
CollapseRecord[] records
ClodCreator
public ClodCreator(java.nio.FloatBuffer vertexArray,
java.nio.FloatBuffer normalArray,
java.nio.FloatBuffer colorArray,
java.nio.FloatBuffer textureArray,
java.nio.IntBuffer indiceArray)
getRecords
public CollapseRecord[] getRecords()
doCollapse
public void doCollapse()
collapseCausesFolding
public boolean collapseCausesFolding(int iVKeep,
int iVThrow)
getMetric
public float getMetric(VETMesh.Edge pkE,
VETMesh.EdgeAttribute pkEA)
removeTriangle
public void removeTriangle(VETMesh.Triangle rkT)
- Overrides:
removeTriangle
in class VETMesh
modifyTriangle
public void modifyTriangle(VETMesh.Triangle rkT,
int iVKeep,
int iVThrow)
collapseEdge
public void collapseEdge(int iVKeep,
int iVThrow)
flushVertices
public void flushVertices()
flushTriangles
public void flushTriangles()
reorder
public void reorder()
computeRecords
public CollapseRecord[] computeRecords()
initializeHeap
public void initializeHeap()
sort
public void sort()
add
public void add(float fMetric)
remove
public void remove()
update
public void update(int iHIndex,
float fMetric)
isValidHeap
public boolean isValidHeap(int iStart,
int iFinal)
isValidHeap
public boolean isValidHeap()
onVertexInsert
public void onVertexInsert(java.lang.Integer vert,
boolean bCreate,
VETMesh.VertexAttribute att)
- Overrides:
onVertexInsert
in class VETMesh
onVertexRemove
public void onVertexRemove(java.lang.Integer vert,
boolean bDestroy,
VETMesh.VertexAttribute att)
- Overrides:
onVertexRemove
in class VETMesh
onEdgeInsert
public void onEdgeInsert(VETMesh.Edge rkE,
boolean bCreate,
VETMesh.EdgeAttribute att)
- Overrides:
onEdgeInsert
in class VETMesh
onEdgeRemove
public void onEdgeRemove(VETMesh.Edge rkE,
boolean bDestroy,
VETMesh.EdgeAttribute att)
- Overrides:
onEdgeRemove
in class VETMesh
onTriangleInsert
public void onTriangleInsert(VETMesh.Triangle tri,
boolean bCreate,
VETMesh.TriangleAttribute att)
- Overrides:
onTriangleInsert
in class VETMesh
onTriangleRemove
public void onTriangleRemove(VETMesh.Triangle tri,
boolean bDestroy,
VETMesh.TriangleAttribute att)
- Overrides:
onTriangleRemove
in class VETMesh