Commit Graph

1326 Commits

Author SHA1 Message Date
Sébastien Loriot bcc88dcb25 Merge patches kept and patches removed and update the set of intersection
That way internal intersection edges and vertices also get removed
2017-11-28 10:21:45 +01:00
Sébastien Loriot 0f0a67b55e fix error and warnings in release mode 2017-11-28 10:21:45 +01:00
Sébastien Loriot 32aea69cba fix bug when two coplanar faces intersect while sharing an edge
the edge should ignore the shared edge as there is no stitching needed
2017-11-28 10:21:45 +01:00
Sébastien Loriot f0ce3644f8 bugfix: use the correct halfedge for setting next pointer 2017-11-28 10:21:45 +01:00
Sébastien Loriot 47b4a3941b update user and reference manual 2017-11-28 10:21:45 +01:00
Sébastien Loriot 2feff1c01a handle open meshes 2017-11-28 10:21:45 +01:00
Sébastien Loriot 857f996c3f avoid reporting duplicated coplanar face pairs by sorting them in the callback 2017-11-28 10:21:45 +01:00
Sébastien Loriot 9954a41e3f handling two intersecting edges that are identical for autorefinement 2017-11-28 10:21:45 +01:00
Sébastien Loriot 3d434f7953 correctly initialize bitset to 1 2017-11-28 10:21:45 +01:00
Sébastien Loriot adcfc00996 do not block the fixing when there is a non-manifold situation
Note that is might pose pb in case the status of the patch is
changed in another case
2017-11-28 10:21:44 +01:00
Sébastien Loriot 247ad9ec1b by default patches are tagged as kept
the purpose of the function being to remove self-intersection
I decided to not remove self-inclusion (as it might be surprizing
considering the name of the function)
2017-11-28 10:21:44 +01:00
Sébastien Loriot ad4327530f clean up 2017-11-28 10:21:44 +01:00
Sébastien Loriot 54998f8246 fix comment 2017-11-28 10:21:44 +01:00
Sébastien Loriot 983d3cbdb8 WIP for self-intersection removal using autorefinement 2017-11-28 10:21:44 +01:00
Sébastien Loriot a093cd5e9f use a small struct instead of a two element map 2017-11-28 10:17:05 +01:00
Sébastien Loriot d449fa56f7 move mesh_to_intersection_edges to the output builder 2017-11-28 10:17:05 +01:00
Sébastien Loriot efb2f596bb move an_edge_per_polyline_map in the output builder 2017-11-28 10:17:05 +01:00
Sébastien Loriot ea31cc4bde add autorefine 2017-11-28 10:17:04 +01:00
Sébastien Loriot 70d1d18461 Add function to compute auto-intersection of a surface 2017-11-28 10:17:04 +01:00
Sébastien Loriot 7e12600403 remove deprecated TODO 2017-11-15 22:59:55 +01:00
Sébastien Loriot ee57fc2d6c add SPDX identifier for files under the GPL-3+ license 2017-11-12 10:17:51 +01:00
Laurent Rineau 666ff0c862 Merge pull request #2544 from janetournois/PMP-corefinement-improve-doc-GF
PMP corefinement : improve doc
2017-10-27 18:00:42 +02:00
Laurent Rineau a1d6d2a7a7 Merge pull request #2514 from janetournois/Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois
Polyhedron demo - fix isotropic remeshing plugin
2017-10-23 17:14:37 +02:00
Jane Tournois a7a94ac1d7 improve doc
add a precondition,
and move a piece of doc where it should be
2017-10-19 15:23:24 +02:00
Jane Tournois 5a45fdf99d Merge branch 'PMP-fix_isotropic_remeshing_next_to_corners-jtournois' into Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois 2017-10-17 15:45:30 +02:00
Jane Tournois fb0d7840d5 remove useless check for reverse version 2017-10-17 15:30:37 +02:00
Jane Tournois aa758493b1 Merge branch 'PMP-fix_isotropic_remeshing_next_to_corners-jtournois' into Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois
# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h
2017-10-16 14:49:02 +02:00
Jane Tournois 03e7265cef a Polyhedron_3 does not have an internal pmap for face_patch_id_t
so the condition was always returning false for a Polyhedron
we are inside the demo, so this condition can be safely removed
2017-10-16 13:04:42 +02:00
Laurent Rineau 0533547da9 Merge pull request #2447 from sloriot/Demo-add_more_repair_functions
add more repair functions in the Polyhedron demo
2017-10-13 17:00:47 +02:00
Laurent Rineau 6bda8ad7d5 Merge pull request #2516 from janetournois/PMP-fix_isotropic_remeshing_with_isolated_vertices-jtournois
PMP - fix isotropic remeshing with isolated vertices
2017-10-13 16:54:35 +02:00
Sébastien Loriot 01bda3f852 add function to close boundary cycle of size 2
use it after the general stitching function
2017-10-12 14:38:41 +02:00
Sébastien Loriot a2cc276ccb simplify the code by avoid to have an extra map for the edge to be stitched
the code changes a little bit the output as some border cycles of size 2
can be created (these edges were not set for stitching for example if
there were a third edge that could be stitched and was rejected by the
manifold test)
2017-10-12 14:19:58 +02:00
Laurent Rineau 107cdccd6d Merge pull request #2438 from lrineau/Mesh_3-test_polyhedral_complex_with_surface_mesh-GF
Mesh_3: make it work with Surface_mesh
2017-10-11 19:14:49 +02:00
Jane Tournois 8d486694dc use check_normals() inside collapse_does_not_invert_face() 2017-10-10 12:51:04 +02:00
Jane Tournois c657f43f19 deal with more than 2 surface patches in check_normals(v)
until now it did not deal with the corner cases
2017-10-10 12:16:03 +02:00
Jane Tournois 6e8bb6b03e deal with more than 2 patches in the collapsibility checks 2017-10-10 11:48:37 +02:00
Jane Tournois ddaad24e63 add corner case conditions for collapsibility 2017-10-10 11:46:31 +02:00
Jane Tournois 5cc6209528 filter out isolated vertices
for tangential_relaxation and projection
2017-10-09 16:38:57 +02:00
Jane Tournois 6a5c46dd50 remove duplicate member variable 2017-10-09 11:27:06 +02:00
Jane Tournois 3e4e4968f7 add missing vertex_point_map 2017-10-09 11:26:34 +02:00
Jane Tournois f6418c6145 add a little verbosity 2017-10-09 11:22:54 +02:00
Sébastien Loriot e9cb74d927 remove doc of parameter removed 2017-10-03 14:00:50 +02:00
Sébastien Loriot 26c1543d14 remove the requirements on the absence of degenerate edges
it is no longer needed thanks to the union-find used to merge vertices
2017-10-03 13:58:12 +02:00
Sébastien Loriot 7fdf9cad8c integrate the are_vertices_stitchable test into the check for non-manifold edges
also reinit the union-find on vertices as the master vertex kept
might be one marked as non-stitchable
2017-10-03 13:41:58 +02:00
Sébastien Loriot d23b301cea filter edges to be stitched to avoid creating non-manifold vertices
edges filtered have two endpoints to be merged
2017-10-02 16:20:05 +02:00
Sébastien Loriot 07bb1d6839 use union-find to merge vertices and decide which vertex to keep
This is needed if two patches have edges stitched with identical
vertex point coordinates.
2017-09-29 17:51:58 +02:00
Sébastien Loriot 67791520a1 ignore degenerate edges during the collection of edges to stitch 2017-09-29 16:39:34 +02:00
Sébastien Loriot 671b7abcb6 do nothing is the model is fixed 2017-09-20 14:33:37 +02:00
Sébastien Loriot 78f3d1a38d extract the function removing faces and filling hole ...
... and use it to handle deg faces
2017-09-20 14:33:37 +02:00
Sébastien Loriot ea34f1b2dd remove assertions that are using Surface_mesh features 2017-09-20 14:33:37 +02:00