Afront

Usage

Examples:

Remeshing:
./afront bunny.off -rho 0.5 -tri

Isosurface Extraction:
./afront skull.nhdr -rho 0.8 -tri 150.5 bspline

Command Line Options:

The command line format is as follows:
./afront <-nogui> <-noedgeflip> surface1 <mesh2> [-commands]

The -nogui and -noedgeflip options recieve special treatment and must be specified before the input surface filenames if they are used. The commands are evaluated in the order they are specified, so be sure to set variables before invoking the triangulation (-tri will usually be the last command). Only the most common commands are summarized below. Run afront with no command line arguements to see all available commands and default values.

Option Description
-nogui Run afront in batch mode.
-noedgeflip By default, the output mesh in run through a streaming edge flipper to improve the worst case triangles in the mesh. Specifying this will bypass the edge flipper.
surface1 The main surface to load. This can be a .m or .off mesh, .nhdr volume, .offt tet mesh (normal .off tet mesh file renamed to be distinguishable from .off surface mesh files), or a .obj pointset.
mesh2 An optional second surface (must be a triangle mesh) that can be loaded for csg operations.
-rho User parameter controlling triangle sizing. Typical values are between 0.2 and 0.8.
-reduction User parameter controlling the triangle gradation. Typical values are between 0.7 and 0.85.
-radius_factor Point radius factor for the MLS projection.
-meshinfo Print some stats about the loaded mesh.
-histogram Generate a histogram of the qualities of the triangles in the loaded mesh. Outputs histogram.txt and histogram.ppm.
-idealNumThreads The number of worker threads that should be used.
-outname Set the filename for the output mesh.
-tri_mesh <subdiv> Remesh the loaded triangle mesh surface. An optional number of Loop subdivision iterations can be specified for computer the curvature on the mesh.
-tri_vol isovalue <bspline> Extract an isosurface from the regular grid volume dataset that is loaded. A Catmull-Rom spline is used for the function reconstruction unless the optional 'bspline' is specified.
-tri_tet isovalue Extract an isosurface from the loaded tet mesh.
-tri_mls Triangulate the surface from the pointset that is loaded using MLS surface reconstruction.
-tri Invoke the correct -tri_* command depending on what surface type is loaded.

 

GUI Keys:

The GUI is essentially a debugging interface that allows inspection of the input surface and the output mesh as it is generated. As such, the algorithm will frequently pause and wait for the user to press a key before continuing (usually the space bar). When this happens, a message will be drawn in the lower left corner of the window. Most of these pauses can be skipped with the 'p' key (see below).

Key Description
Left Mouse Rotate.
Shift + Left Mouse Zoom.
Control + Left Mouse Pan.
Alt + Left Mouse Pan.
Middle Mouse Look at point clicked.
a Reset view.
m Cycle drawing mode of input mesh (none -> smooth shaded -> flat+edges)
o Cycle drawing mode of output mesh (none -> flat shaded -> flat+edges)
n Toggle drawing of normals.
b Toggle drawing the boundaries of the input surface.
c Clear the debug points/lines/polys.
f Toggle drawing the advancing fronts.
e Toggle drawing the fences used for front interference detection.
s Save view information to view.txt.
l Load view information from view.txt.
p Toggle pausing for user input (don't wait for user when "waiting for key" messages are displayed)