POLYMERGE(1) Geometry Center (25 July 1993) POLYMERGE(1)
NAME
polymerge - merge coincident vertices, collinear edges,
coplanar faces in an OOGL OFF object
SYNOPSIS
polymerge [-v vertex_thresh] [-e edge_thresh] [-f
face_thresh] [-V] [-E] [-F] [-d] [-b] [inputfile.off]
DESCRIPTION
Polymerge eliminates redundancies from polyhedral objects in
OOGL's OFF format, and writes another OFF object to its
standard output. (Optionally it can produce instead an
input file for Brakke's Evolver.) Specifically, it combines
nearly-coincident vertices, nearly-collinear edges, and
nearly-coplanar faces. Vertices which aren't used on any
face are deleted, as are faces with less than three
vertices. Thresholds for approximate equality are
adjustable from the command line. Options are:
-v vertex_thresh
Merge vertices when they're closer than vertex_thresh
apart; the default is .00001.
-V Don't attempt to merge vertices.
-e edge_thresh
Merge edges where |sin(vertex_angle)| < edge_thresh;
the default is When edges are merged, the corresponding
vertex is removed.
-E Don't attempt to merge edges. (4OFF edges are never
merged.)
-f face_thresh
Merge faces sharing an edge where the faces are nearly
coplanar: when |sin(angle_between_face_normal_vectors)|
< face_thresh. The default is .03, or about two
degrees. Note that merging can create faces which are
concave polygons.
-F Don't attempt to merge faces. (4OFF faces are never
merged.)
-b Produce an output file in .fe format for Brakke's
Surface Evolver, instead of a new OFF file.
-d Include debugging information as comments in the new
OFF object. The comments indicate which vertices and
faces in the original object correspond to which in the
new one. Messages include:
# Vtx nnn->mmm
Page 1 (printed 12/22/98)
POLYMERGE(1) Geometry Center (25 July 1993) POLYMERGE(1)
Merged vertices nnn and mmm (both indices in the
original object).
# Merged face nnn into mmm (vertices vvv www) n1.n2 s
Faces nnn and mmm in the original object were merged;
their common edge joined original vertices vvv and www.
The cosine of the angle between the face normals was s.
vertex coordinates # newvertno [order] # oldvertno
Each vertex written appears with its new index, its
order (number of edges touching that vertex), and its
old index (index of a corresponding vertex in the
original object).
face description # oldvertno ...
For each new face, with N vertices after reduction, the
comment indicates N corresponding vertices in the
original object.
AUTHOR
Stuart Levy, Geometry Center, University of Minnesota
SEE ALSO
anytooff(1), offconsol(1)
BUGS
Coplanar faces are merged even if they were assigned
different colors. Should be able to handle binary OFF
objects, but this hasn't been tested.
Page 2 (printed 12/22/98)