Commit Graph

3945 Commits

Author SHA1 Message Date
Laurent Rineau 1ac4c2903a Merge pull request #5589 from MaelRL/Number_types-Fix_approx_sqrt_mpq-GF
Fix approximate_sqrt return types
2021-05-18 17:32:26 +02:00
Laurent Rineau 49aff67985 Merge pull request #5689 from janetournois/PMP-isotropic_remeshing_fixes-jtournois
PMP::isotropic_remeshing - fixes about "isolated constraints"

# Conflicts:
#	Polygon_mesh_processing/test/Polygon_mesh_processing/CMakeLists.txt
2021-05-18 17:31:55 +02:00
Jane Tournois 74e2ee9734 do not collapse isolated constraints 2021-05-06 19:40:52 +02:00
Jane Tournois 14385aaf15 add a test with isolated constraints, on and away from mesh borders 2021-05-06 17:48:39 +02:00
Jane Tournois 3a6e31de65 do not split isolated constraints 2021-05-06 15:56:23 +01:00
Jane Tournois 64e568f748 an isolated constraint can be on the mesh border
the halfedge status for a pair of opposite halfedges can be
MESH_BORDER and ISOLATED_CONSTRAINT, but MESH_BORDER has
priority
2021-05-06 16:56:05 +02:00
Jane Tournois 49fc218c45 avoid iterating over all halfedges, but only the ones of the patch to be remeshed 2021-05-06 15:55:19 +01:00
Jane Tournois 9d3d29fd6d encapsulate debug code in debug macro 2021-05-06 16:55:02 +02:00
Laurent Rineau 795c931b55 Merge pull request #5637 from sloriot/PMP-hole_filling_empty_range_warning
Fix use of empty range
2021-04-28 15:22:41 +02:00
Sébastien Loriot 0eea836f1e handle empty point range 2021-04-23 08:46:28 +02:00
Sébastien Loriot eef92fbef7 Merge remote-tracking branch 'cgal/5.1.x-branch' 2021-04-21 15:47:06 +02:00
Mael Rouxel-Labbé c489b7ffa5 Add missing Coercion_traits specialization for custom FT in PMP test 2021-04-20 15:59:29 +02:00
Sebastien Loriot e9c97d2b59
Merge pull request #5539 from sloriot/PMP-coref_check_si
Collect faces incident to edges too
2021-04-17 11:04:38 +02:00
Jane Tournois d61cf58f2f add ISOLATED_CONSTRAINT halfedge status
this type is needed for edges that are part of the input constrained
edges property map, and are incident to a face to be remeshed only by a
vertex.
These edges contribute to creating corner vertices (incident to >= 3
constrained edges), but should still not be considered as patch borders

without dealing with these "isolated constraints", the corner vertices that
are incident to 2 patch borders and 1 of these edges was not considered
as a corner but as a simple patch border vertex, hence it could be
moved/deleted by a collapse or relaxation steps
2021-04-13 15:20:21 +02:00
Laurent Rineau a11a7578f6 Merge pull request #5570 from MaelRL/PMP-Repair_PS_invalid_polygons_speed_up-GF
Speed up invalid polygon removal in repair_PS
2021-04-06 15:11:41 +02:00
Mael Rouxel-Labbé dc854d8088 Use std::remove_if to speed-up invalid polygon removal 2021-03-31 11:54:38 +02:00
Sébastien Loriot f5a6ff424e collect face incident to edges too 2021-03-19 14:47:54 +01:00
Laurent Rineau 4dc8a341f9 Merge pull request #5423 from afabri/PMP-corefine_OM-GF
PMP:: Use operator<  instead of operator> as OM only implements the former
2021-03-10 10:33:17 +01:00
Laurent Rineau 325436540f Merge pull request #5429 from sloriot/PMP-coref_face_patch_init
Corefine: always init faces of patches
2021-03-03 17:10:16 +01:00
Laurent Rineau 3c3dad3243 Merge pull request #5435 from afabri/Intersect_3-fix_isocuboid_plane-GF
Intersect_3: Fix Iso_cuboid_3/Plane_3 and Tetrahedon_/Plane_3 intersection
2021-03-03 16:56:31 +01:00
Laurent Rineau b5e6ef261f Merge pull request #5442 from MaelRL/PMP-stitch_borders_reintroduce_zipping-GF
Re-introduce some kind of zipping as a first step to boundary cycle stitching
2021-03-03 16:39:54 +01:00
Laurent Rineau e522630610 Merge pull request #5476 from sloriot/PMP-needle_caps_ecm_bug
PMP: Remove needles&caps fixes
2021-03-03 16:34:46 +01:00
Laurent Rineau 7e61495ef5 Merge pull request #5429 from sloriot/PMP-coref_face_patch_init
Corefine: always init faces of patches
2021-03-03 16:31:17 +01:00
Laurent Rineau 2800c8c587 Merge pull request #5435 from afabri/Intersect_3-fix_isocuboid_plane-GF
Intersect_3: Fix Iso_cuboid_3/Plane_3 and Tetrahedon_/Plane_3 intersection
2021-03-03 16:31:15 +01:00
Sébastien Loriot fa47c35271 remove unused variable 2021-03-03 08:28:28 +01:00
Sébastien Loriot c1dcaac020 remove TODOs 2021-03-02 16:21:06 +01:00
Sébastien Loriot 313f682b8c use custom functor for bbox and split primitives
aabb tree build runtime is similar to using EPICK
2021-03-02 16:16:07 +01:00
Sébastien Loriot 20865d2544 robustify side_of test 2021-02-26 15:46:01 +01:00
Mael Rouxel-Labbé abe1f6e577 Misc cleaning 2021-02-22 16:51:35 +01:00
Mael Rouxel-Labbé b3d7977fac Fix boundary cycle zipping not updating its representative 2021-02-22 16:50:52 +01:00
Sébastien Loriot 85a9962892 2 fixes:
- an edge cannot be collapsed if both its endpoints are constrained -> allow cap classification
- an edge with two constrained endpoints can be flipped (if not constrained)
2021-02-22 14:50:41 +01:00
Mael Rouxel-Labbé 68f53bc518 Clean preconditions of is_needle/cap 2021-02-19 18:04:58 +01:00
Mael Rouxel-Labbé 8afeab71e7 Various fixes for PMP::remove_almost_degenerate_faces
See https://github.com/CGAL/cgal/pull/5476
2021-02-19 18:02:15 +01:00
Mael Rouxel-Labbé aacd453965 Do not stitch two halfedges if both are incident to the same degenerate face 2021-02-19 17:38:34 +01:00
Sébastien Loriot a75ad50a31 allow to handle a triangle as a cap if the collapse_length_threshold is not met 2021-02-19 16:53:01 +01:00
Sébastien Loriot b5277495e2 remove no longer needed variables 2021-02-19 16:10:32 +01:00
Sébastien Loriot 7ab4a8f6a2 handle constrained edges removed upon collapse 2021-02-19 14:38:20 +01:00
Sébastien Loriot a595e529c5 remove edge map and inter pt set 2021-02-09 18:43:05 +01:00
Mael Rouxel-Labbé 1b01b67c86 Added a test for zipping-based boundary cycle stitching 2021-02-08 15:54:52 +01:00
Mael Rouxel-Labbé f55d586d9d Re-introduce some kind of zipping as a first step to boundary cycle stitching
Zipping was removed when local stitching was introduced, and a common interface
between stitching-within-a-cycle and normal-stitching was introduced.

However, that common interface does not handle any non-manifold configuration,
even if it's a folded cycle with obvious stitching (consecutive equal edges).

So, some kind of zipping is re-added. It is cheap anyway
(compared to e.g. calling PMP::connected_components on the whole mesh).
2021-02-08 15:50:48 +01:00
Laurent Rineau 8c86a6a858 Merge pull request #5377 from sloriot/PMP-typo
Remove extra p
2021-02-05 16:07:20 +01:00
Laurent Rineau a4bbce7f7a Merge pull request #5424 from sloriot/PMP-hole_filling_no_warnings
Do not emit warning as hole filling can fail
2021-02-05 16:07:09 +01:00
Laurent Rineau 11939d830f Merge pull request #5377 from sloriot/PMP-typo
Remove extra p
2021-02-05 16:05:48 +01:00
Sébastien Loriot 2510571448 always init faces of patches 2021-02-04 17:00:48 +01:00
Sébastien Loriot 29379aec95 use EPECK 2021-02-03 14:09:33 +01:00
Sébastien Loriot bdbc4a3ca0 remove unused typedef 2021-02-03 14:09:22 +01:00
Andreas Fabri 96769b2873 Use 2 template parameters so that it matches for a handle and a smart handle 2021-02-03 12:38:25 +00:00
Sébastien Loriot 22724728e7 do not emit warning as hole filling can fail 2021-02-03 12:48:50 +01:00
Andreas Fabri 3f05cf3139 Add the example 2021-02-03 11:08:56 +00:00
Andreas Fabri cd70b9b172 Use operator< instead of operator> as OM only implements the former 2021-02-03 10:46:28 +00:00