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
Jane Tournois
817d28515c
duplicate every function in the overload for tuple<visitor, graph>
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
Laurent Rineau
7a7c4fa447
<boost/core/ref.hpp> appeared in Boost-1.56
...
The compatibility path is <boost/ref.hpp>.
2015-07-15 16:02:30 +02:00
Laurent Rineau
6303dbeb7d
Fix a syntax error not detected my MSVC
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
4ba9dbd71b
fix constness
2015-07-15 16:02:30 +02:00
Jane Tournois
ef124155fe
macros
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
2c3c2e0c58
fix the use of selected facets with no selected edges
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
edbe0338f6
add checkbox to split only selected edges
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
127327fff3
add vertical spacers between groups
2015-07-15 16:02:26 +02:00
Jane Tournois
ca12add0bf
add QDialog for isotropic remeshing options
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
139949d739
split detect_sharp_edges in two functions
2015-07-15 16:02:25 +02:00
Jane Tournois
b6a221a0e9
use selected edges as boundary for remeshing
2015-07-15 16:02:25 +02:00
Jane Tournois
c554466b80
fix default value
2015-07-15 16:02:25 +02:00
Jane Tournois
ad624dbea1
clear selection after remeshing
...
everything has changed, but some faces have been recycled to the
selection has become completely wrong
2015-07-15 16:02:25 +02:00