Commit Graph

674 Commits

Author SHA1 Message Date
Jane Tournois 7ad049d14c don't use status visitor, it is not enough to keep halfedges status up-to-date 2015-07-15 16:02:31 +02:00
Jane Tournois e87c65bd3d rename variable for consistency 2015-07-15 16:02:30 +02:00
Jane Tournois ab1ddcac25 fix non-inversion test 2015-07-15 16:02:30 +02:00
Jane Tournois b7c0acae56 first operations for visitor that deals with status map 2015-07-15 16:02:30 +02:00
Laurent Rineau b639f7d051 Fix a compilation error
One cannot bind a temporary object to a non-const reference.
2015-07-15 16:02:30 +02:00
Jane Tournois 4b7a997df0 add the ability to use a Visitor for a BGL graph using an overload of graph_traits
TODO : is_valid(mesh) does not compile on msvc. To be fixed
2015-07-15 16:02:30 +02:00
Jane Tournois f8eb659abd remove debug_mesh_border
since it has become wrong when we have 2 adjacent patches
with a constrained polyline separating them
the same vertex can appear more than twice
2015-07-15 16:02:30 +02:00
Jane Tournois 237c20321f deal with degenerate faces better 2015-07-15 16:02:29 +02:00
Jane Tournois 6214feaaf1 add stuff for verbose mode 2015-07-15 16:02:29 +02:00
Jane Tournois 4f5be714bb add warning code 2015-07-15 16:02:29 +02:00
Jane Tournois e3121567fa automatically re-select border of selection after refining only border 2015-07-15 16:02:29 +02:00
Jane Tournois 7da4b81a19 add very verbose mode 2015-07-15 16:02:29 +02:00
Jane Tournois 99e0a245a0 add macro for verbose mode 2015-07-15 16:02:29 +02:00
Jane Tournois dea8a59dbb make flip_allowed test simpler, and reorganize flipping step
to save useless operations
2015-07-15 16:02:28 +02:00
Jane Tournois 4e95d9cc05 check that flip does not create a non-triangle face
this can happen around sharp tips of the domain,
when no incident edge is selected for protection
2015-07-15 16:02:28 +02:00
Jane Tournois df1985d296 use named parameters 2015-07-15 16:02:28 +02:00
Jane Tournois 07820b8e0d remove dump 2015-07-15 16:02:28 +02:00
Jane Tournois 6e7f4f7b21 test code 2015-07-15 16:02:28 +02:00
Jane Tournois 4f58f5182e add debug code and fix constness 2015-07-15 16:02:28 +02:00
Jane Tournois 2dd3ae2407 fix remeshing of a patch WITH protection of constrained edges 2015-07-15 16:02:28 +02:00
Jane Tournois cfff71068d add options and draft to the remeshing test 2015-07-15 16:02:28 +02:00
Jane Tournois d56e54ec6f fix the edge collapse step
degenerate faces where responsible for some self intersections, so we remove
them after collapses and flips

the function that checks that no triangle gets inverted by a flip has also
been fixed
we had to check both the 1-ring of source(h) and target(h), even though those
vertices got the same coordinates
The common faces in their rings were degenerate, but their normals had all to
be checked for consistent orientation

also add more debugging code
2015-07-15 16:02:28 +02:00
Jane Tournois 891b426f82 new attempt to avoid self intersections 2015-07-15 16:02:27 +02:00
Jane Tournois 679e93b252 remove degenerate faces a posteriori 2015-07-15 16:02:27 +02:00
Jane Tournois 7543f35ff2 adapt code to PATCH_BORDER cases and add debugging code 2015-07-15 16:02:27 +02:00
Jane Tournois 97379e50b2 add null vector test (should not happen!) 2015-07-15 16:02:27 +02:00
Jane Tournois 0844e79b67 add code to read selection from input 2015-07-15 16:02:27 +02:00
Jane Tournois 6f667c7a24 reorganize 2015-07-15 16:02:27 +02:00
Jane Tournois 8b5902b038 add function to split long edges listed by the user
this changes the remesher internal API only
2015-07-15 16:02:27 +02:00
Jane Tournois 8d5312d263 reorganize test 2015-07-15 16:02:26 +02:00
Jane Tournois 117a24807d make tests simpler 2015-07-15 16:02:26 +02:00
Jane Tournois 67874c737d fix test when splitting of constraints is allowed 2015-07-15 16:02:26 +02:00
Jane Tournois 2b7bf24205 add documentation for protect_constraints 2015-07-15 16:02:26 +02:00
Jane Tournois 00cc96f968 add code to protect_constraints
edges tagged as constraints are not refined when protect_constraints is true
2015-07-15 16:02:26 +02:00
Jane Tournois ebeb1fdcaa edge_is_constrained_map does not need to be kept as a member
it is used only in the initialization, to fill the halfedge_status_map
2015-07-15 16:02:26 +02:00
Jane Tournois c460008f23 make test simpler (it is equivalent) 2015-07-15 16:02:26 +02:00
Jane Tournois f7204a0a99 add edge_is_constrained_map as a parameter for remeshing
this property map "tags" the edges that should be kept in the remeshed mesh.
They can be splitted or collapsed, but their vertices can't move with the
Laplacian, and they can't be flipped.

in the Polyhedron demo, this feature is integrated in order to remesh two
adjacent surface patches and keep the (possibly sharp) polyline that is
delimitating them
2015-07-15 16:02:26 +02:00
Jane Tournois c554466b80 fix default value 2015-07-15 16:02:25 +02:00
Jane Tournois caad50a628 documentation 2015-07-15 16:02:25 +02:00
Jane Tournois 7256746891 doc 2015-07-15 16:02:25 +02:00
Jane Tournois c41bc2250d start documentation for get_border and incremental_triangle_based_remeshing 2015-07-15 16:02:24 +02:00
Jane Tournois e6a7b5a0a3 use get and set to access vertex point map, instead of operator[] 2015-07-15 16:02:24 +02:00
Jane Tournois f958fe7d5d fix warning 2015-07-15 16:02:24 +02:00
Jane Tournois d34d47a6d5 Revert "detect sharp edges and surface patches"
This reverts commit 80b1363f1db4db8391398188bcb33427ffc69aac.
2015-07-15 16:02:23 +02:00
Jane Tournois 83957ed495 add code to the selection tool to be able to select a surface patch
for now it works only for facets and the checkbox is not used
2015-07-15 16:02:23 +02:00
Jane Tournois 9e8ad02f94 more in remeshing test 2015-07-15 16:02:23 +02:00
Jane Tournois 577e0f08f0 use macro and 17 digits in cout 2015-07-15 16:02:23 +02:00
Jane Tournois 54922319ff remove todo 2015-07-15 16:02:23 +02:00
Jane Tournois abc92fcc24 fix assertion code 2015-07-15 16:02:23 +02:00
Jane Tournois d7caded018 remove useless template qualifier 2015-07-15 16:02:23 +02:00