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