org.jcae.mesh.amibe.algos3d
Class ImproveConnectivity

java.lang.Object
  extended by org.jcae.mesh.amibe.algos3d.AbstractAlgoHalfEdge
      extended by org.jcae.mesh.amibe.algos3d.ImproveConnectivity

public class ImproveConnectivity
extends AbstractAlgoHalfEdge

Swaps edge to try to have all vertices have six neighbors. TODO: In Explicit Surface Remeshing, Vitaly Surazhsky and Craig Gotsman proposes an interesting algorithm.


Field Summary
 
Fields inherited from class org.jcae.mesh.amibe.algos3d.AbstractAlgoHalfEdge
maxEdgeLength, mesh, noSwapAfterProcessing, notInTree, notProcessed, nrFinal, nrTriangles, processed, swapped, tolerance, tree
 
Constructor Summary
ImproveConnectivity(Mesh m, java.util.Map<java.lang.String,java.lang.String> options)
          Creates a ImproveConnectivity instance.
 
Method Summary
 boolean canProcessEdge(HalfEdge current)
           
 double cost(HalfEdge e)
           
static void main(java.lang.String[] args)
           
 void postProcessAllHalfEdges()
           
 void preProcessAllHalfEdges()
           
 HalfEdge processEdge(HalfEdge current, double costCurrent)
           
 java.util.logging.Logger thisLogger()
           
 
Methods inherited from class org.jcae.mesh.amibe.algos3d.AbstractAlgoHalfEdge
addToTree, appendDumpState, appendRestoreState, compute, countInnerTriangles, dumpState, postComputeTree, preProcessEdge, removeFromTree, restoreState, setProgressBarStatus, uniqueOrientation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImproveConnectivity

public ImproveConnectivity(Mesh m,
                           java.util.Map<java.lang.String,java.lang.String> options)
Creates a ImproveConnectivity instance.

Parameters:
m - the Mesh instance to modify
options - map containing key-value pairs to modify algorithm behaviour. Valid key is coplanar.
Method Detail

thisLogger

public java.util.logging.Logger thisLogger()
Specified by:
thisLogger in class AbstractAlgoHalfEdge

preProcessAllHalfEdges

public void preProcessAllHalfEdges()
Specified by:
preProcessAllHalfEdges in class AbstractAlgoHalfEdge

cost

public double cost(HalfEdge e)
Specified by:
cost in class AbstractAlgoHalfEdge

canProcessEdge

public boolean canProcessEdge(HalfEdge current)
Specified by:
canProcessEdge in class AbstractAlgoHalfEdge

processEdge

public HalfEdge processEdge(HalfEdge current,
                            double costCurrent)
Specified by:
processEdge in class AbstractAlgoHalfEdge

postProcessAllHalfEdges

public void postProcessAllHalfEdges()
Specified by:
postProcessAllHalfEdges in class AbstractAlgoHalfEdge

main

public static void main(java.lang.String[] args)
Parameters:
args - xmlDir, -t tolerance | -n triangle, brepFile, output