POLYMERGE(1)                General Commands Manual               POLYMERGE(1)

       polymerge - merge coincident vertices, collinear edges, coplanar faces
       in an OOGL OFF object

       polymerge [-v vertex_thresh] [-e edge_thresh] [-f face_thresh] [-V]
       [-E] [-F] [-d] [-b] [inputfile.off]

       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
              Merged vertices nnn and mmm (both indices in the original

       # 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.

       Stuart Levy, Geometry Center, University of Minnesota

       anytooff(1), offconsol(1)

       Coplanar faces are merged even if they were assigned different colors.
       Should be able to handle binary OFF objects, but this hasn't been

Geometry Center                  25 July 1993                     POLYMERGE(1)