logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Author

       Stuart Levy, Geometry Center, University of Minnesota

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.

Geometry Center                                   25 July 1993                                    POLYMERGE(1gv)

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:

       -vvertex_thresh
              Merge vertices when they're closer than vertex_thresh apart; the default is .00001.

       -V     Don't attempt to merge vertices.

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

       -fface_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 vvvwww) 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.

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

       facedescription  # oldvertno...
              For each new face, with N vertices after reduction, the comment indicates N corresponding vertices
              in the original object.

Name

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

See Also

anytooff(1), offconsol(1)

Synopsis

polymerge [-vvertex_thresh] [-eedge_thresh] [-fface_thresh] [-V] [-E] [-F] [-d] [-b] [inputfile.off]

See Also