Commit Graph

3555 Commits

Author SHA1 Message Date
Maxime Gimeno cba53c4937 WIP 2020-01-28 10:38:17 +01:00
Maxime Gimeno c45fe2bbd3 fix boost::get_param() 2020-01-28 09:58:35 +01:00
Maxime Gimeno 1f0d062c10 Merge remote-tracking branch 'cgal/master' into PMP-Add_split_to_clip-GF 2020-01-27 12:51:26 +01:00
Mael Rouxel-Labbé fa6fa8bb79 Put some const& around named parameters 2020-01-24 18:33:10 +01:00
Mael Rouxel-Labbé ef1236dd2b Add #include <limits> 2020-01-23 12:04:20 +01:00
Mael Rouxel-Labbé 8a0005573e Relax assertion due to numerical errors that can sneak in
Logically speaking, the vector nb is the bisector of ni and nj,
so ni.nb and nj.nb are positive by construction.
2020-01-23 12:00:27 +01:00
Mael Rouxel-Labbé 828e47f61e Fix some header includes 2020-01-17 17:55:53 +01:00
Laurent Rineau 2c5826dd6f Merge pull request #4474 from sloriot/CGAL-warning_macro
Update warning macro usages

# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h
2020-01-17 16:29:49 +01:00
Laurent Rineau fe91249ac4 Merge pull request #4474 from sloriot/CGAL-warning_macro
Update warning macro usages

# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h
2020-01-17 16:27:13 +01:00
Sébastien Loriot 858bb72abf Update branch by a merge of PMP-corefine_non_manifold into cgal/master
also fix new np issues
2020-01-17 14:58:44 +01:00
Laurent Rineau b91c43ba54 Fix more occurrences of -Wstring-conversion (clang++) 2020-01-16 15:09:45 +01:00
Sébastien Loriot 4365f90a0a hide warning 2020-01-16 14:21:16 +01:00
Sébastien Loriot d97795ef8b use CGAL_error_msg 2020-01-16 14:19:32 +01:00
Sébastien Loriot 4fbd1ed69c use CGAL_warning_msg instead of CGAL_warning to display a message 2020-01-16 14:14:13 +01:00
Mael Rouxel-Labbé 4432031bbf Halfedges_comparator > halfedges_keeper + functor returns kept halfedge 2020-01-16 11:45:26 +01:00
Mael Rouxel-Labbé 57a86afc3b Merge branch 'PMP-Snapping_improvements-GF-old' into PMP-Snapping_improvements-GF 2020-01-15 18:18:24 +01:00
Mael Rouxel-Labbé f80626749f Merge branch 'PMP-Halfedge_comparer_for_stitch_borders-GF-old' into PMP-Halfedge_comparer_for_stitch_borders-GF 2020-01-15 18:04:28 +01:00
Mael Rouxel-Labbé 24aa901970 Rename the halfedges comparator 2020-01-15 18:01:25 +01:00
Mael Rouxel-Labbé 8f3127db40 Clean PMP::stitching code 2020-01-15 17:55:20 +01:00
Laurent Rineau ed4cf46ee0 Merge pull request #4065 from MaelRL/PMP-New_vertex_normal_computations-GF
PMP: add a new way to compute vertex normals
2020-01-15 17:24:02 +01:00
Laurent Rineau 631e383e20 Merge pull request #4132 from MaelRL/PMP-Remove_small_CCs
PMP: remove small connected components
2020-01-15 17:24:00 +01:00
Mael Rouxel-Labbé 3e1a6d0e14 Add missing includes 2020-01-15 13:34:59 +01:00
Mael Rouxel-Labbé 92110e918b Collateral code cleaning 2020-01-15 13:24:54 +01:00
Mael Rouxel-Labbé 30bfd877e2 Enable enforcing which edge is preserved during stitching 2020-01-15 13:21:19 +01:00
Mael Rouxel-Labbé a1115c2ef1 Merge branch 'PMP-Snapping_improvements-GF-old' into PMP-Snapping_improvements-GF 2020-01-15 10:44:49 +01:00
Mael Rouxel-Labbé afdef50f4e Fix using wrong function names 2020-01-15 10:32:19 +01:00
Mael Rouxel-Labbé c08777205a Update tolerances after vertex-vertex snapping
Done to fix foldings appearing when a post-vertex-vertex-snap vertex wants
to snap to the first non-incident edge on the other border
2020-01-15 10:28:14 +01:00
Mael Rouxel-Labbé 92087b5e88 Minor debug code cleaning 2020-01-15 10:27:56 +01:00
Mael Rouxel-Labbé b027690f3f Only do source-target analysis for border vertices 2020-01-14 18:17:23 +01:00
Mael Rouxel-Labbé e62850808a Use proper VPM type 2020-01-14 18:17:06 +01:00
Mael Rouxel-Labbé 1e3c819c1e Add debug code to dump matches 2020-01-14 18:16:29 +01:00
Mael Rouxel-Labbé 420f3e1186 Do not enforce same type of halfedge ranges 2020-01-14 17:45:03 +01:00
Mael Rouxel-Labbé 007d7da906 Fix verbose macro 2020-01-14 17:44:24 +01:00
Mael Rouxel-Labbé d8c15b6513 Don't stack tolerances in vertex-vertex snapping 2020-01-14 17:43:15 +01:00
Mael Rouxel-Labbé 81b244683e Remove unused typedef 2020-01-14 17:42:50 +01:00
Maxime Gimeno 85712ba28c WIP replacing tbb deprecated includes. 2020-01-14 15:03:20 +01:00
Mael Rouxel-Labbé 06a462695f Use new API 2020-01-13 10:46:05 +01:00
Mael Rouxel-Labbé 467303da1f Add convenience function to transform a vertex range into a halfedge range 2020-01-13 10:45:30 +01:00
Mael Rouxel-Labbé d4e952f98c Fix range being all border halfedges after simplification 2020-01-10 18:13:23 +01:00
Mael Rouxel-Labbé dcf056c94c Fix calling function that doesn't exist anymore 2020-01-10 18:13:02 +01:00
Mael Rouxel-Labbé 694363a860 Improve debug code 2020-01-10 18:12:46 +01:00
Mael Rouxel-Labbé 0c73fd740a Fix moving only the first vertex of a group of vertices being snapped 2020-01-08 18:07:26 +01:00
Mael Rouxel-Labbé bda619e538 Improve checks detecting the creation of degenerate faces 2020-01-08 18:05:33 +01:00
Sébastien Loriot 4146c5c558 fix invalid scope of for loop
this impacted intersections on existing non-manifold vertices
2020-01-08 17:32:52 +01:00
Mael Rouxel-Labbé ffb8c63742 Tiny indentation fixes 2020-01-07 17:16:27 +01:00
Mael Rouxel-Labbé 967aaa5d35 Fix only hiding part of the aniso metric code 2020-01-07 17:15:42 +01:00
Mael Rouxel-Labbé 52f5ee6fc1 Fix missing header include 2020-01-07 17:15:32 +01:00
Mael Rouxel-Labbé eeeb5929ca Clean debug code 2020-01-06 10:53:51 +01:00
Mael Rouxel-Labbé 159a46c08b Update license headers 2020-01-02 16:15:04 +01:00
Mael Rouxel-Labbé 743228a250 Merge branch 'PMP-Make_remove_self_intersections_local-GF-old' into PMP-Make_remove_self_intersections_local-GF 2020-01-02 16:02:08 +01:00
Mael Rouxel-Labbé a53a66013d Add some verbose macro 2020-01-02 09:32:43 +01:00
Mael Rouxel-Labbé b005350f37 more debug code, exact 32bit doesn't seem deterministic 2019-12-30 11:25:21 +01:00
Mael 0f4986f82b Merge branch 'master' into PMP-New_vertex_normal_computations-GF 2019-12-26 19:37:59 +01:00
Sébastien Loriot e80f869147 Merge remote-tracking branch 'cgal/master' 2019-12-20 09:35:45 +01:00
Mael 1a4b8e8dc0
more debug code for Debian 32 2019-12-18 09:09:38 +01:00
Mael 8cdcd006f0
Use 'seed' even when TBB is not linked 2019-12-17 17:57:54 +01:00
Sebastien Loriot 65072b4a33
copy-paste error 2019-12-16 10:15:07 +01:00
Sebastien Loriot 1ff278eb35
copy-paste error 2019-12-16 10:14:33 +01:00
Sebastien Loriot a777e02da3
copy-paste error 2019-12-16 10:13:56 +01:00
Sébastien Loriot 2f32876c8f add vertex point map 2019-12-13 11:59:16 +01:00
Sébastien Loriot 49d3656731 use generic type 2019-12-13 10:57:57 +01:00
Sébastien Loriot 0189379767 update doc after review 2019-12-13 10:47:17 +01:00
Sébastien Loriot d46eb99644 add clipping overload to a iso-cuboid 2019-12-13 08:32:48 +01:00
Sébastien Loriot e3c17c1fee allow non default constructible maps 2019-12-12 14:39:19 +01:00
Sébastien Loriot de855f47db readd work around for intersection edge being both on the boundary and in the interior
The solution is not perfect, as too many nodes are marked as terminal
but the output is correct (too much work is done on the boundary)
2019-12-12 14:37:50 +01:00
Sébastien Loriot 6fd649e5c6 avoid using 2 extra vectors already available in the main part 2019-12-12 14:21:41 +01:00
Mael Rouxel-Labbé 257ad60fef More debug code to understand Debian 32 2019-12-12 09:42:03 +01:00
Mael Rouxel-Labbé 7af0704cea Reintegrate the callback within the call to box_intersection_d()
This is motivated by the fact that if you have a configuration
where there is a large number of boxes intersection (such as
k*n^2, with n being the number of faces), then the size
of the concurrent container can be very large and thus
the memory footprint would be huge.

Instead, since the box_intersection_d call is now parallel,
we can just do callbacks in the tree directly. The only thing is,
we want to have these (heavy) callback calls to be roughly balanced.
For this, we random shuffle the range of faces.

Same runtime as before, no more huge memory footprint!
2019-12-11 09:52:52 +01:00
Laurent Rineau d4b5bad692 Fix a compilation error 2019-12-09 15:45:29 +01:00
Laurent Rineau 3a963288ef Merge remote-tracking branch 'cgal/master' into Installation-fix_check_of_documented_headers__for_5.1-GF 2019-12-09 15:23:22 +01:00
Laurent Rineau 8db15111a4 Merge branch 'releases/CGAL-5.0-branch' into Installation-fix_check_of_documented_headers-GF 2019-12-09 15:08:33 +01:00
Laurent Rineau 9149d26492 Fix check headers
Before this commit, headers with their own documentation pages, but
not referenced in other documentation pages, were not considered as
documented. This is a fix.
2019-12-09 15:07:10 +01:00
Mael Rouxel-Labbé b90128af9d Fix unused warning 2019-12-06 09:14:27 +01:00
Mael Rouxel-Labbé 16836091af Remove documentation of non-existent parameter 2019-12-06 09:01:12 +01:00
Mael 7db5153f6d
Merge branch 'master' into PMP-Remove_small_CCs 2019-12-05 12:19:31 +01:00
Laurent Rineau 80ef3b832c Merge pull request #4175 from MaelRL/PMP-Stitch_borders_returns_number_of_stitched_pairs-GF
PMP: stitch borders returns number of stitched pairs
2019-12-05 11:05:44 +01:00
Laurent Rineau 0fa0c4fbb9 Merge pull request #4244 from maxGimeno/AABB_tree-Make_accelerate_distance_queries_default-maxGimeno
AABB_tree: make accelerate distance queries default
2019-12-05 11:05:35 +01:00
Laurent Rineau 3b5d13f023 Merge pull request #4250 from maxGimeno/PMP-Side_of_tm-use_bbox-maxGimeno
PMP: Make Side_of_triangle_mesh faster for disjoint meshes
2019-12-05 11:05:29 +01:00
Laurent Rineau 2589d55c05 Merge pull request #4254 from MaelRL/PMP-Remove_needles_and_caps-GF
Add experimental code to remove needles and caps using flips and collapses
2019-12-05 11:05:25 +01:00
Mael Rouxel-Labbé 57fed1416a Factorize code creating throwing output iterators 2019-12-04 09:10:49 +01:00
Mael Rouxel-Labbé b210bf3f08 Fix conflict in struct names 2019-12-03 19:56:00 +01:00
Mael Rouxel-Labbé e9e3d9b5b0 Add missing includes 2019-12-03 16:23:35 +01:00
Mael Rouxel-Labbé c526d40b44 Fix throwing as soon as boxes intersect and not checking for actual intersection 2019-12-03 16:17:53 +01:00
Mael Rouxel-Labbé 6bd31f593e Minor doc fix 2019-12-03 14:30:11 +01:00
Mael Rouxel-Labbé cbf78b3de1 Minor doc / comment changes 2019-12-03 12:11:19 +01:00
Mael Rouxel-Labbé c0921a5e53 Fix collecting all intersecting pairs before throwing + fix NP improper forward 2019-12-03 12:00:31 +01:00
Sébastien Loriot b67c16d6d4 remove license notice 2019-12-02 17:24:51 +01:00
Mael Rouxel-Labbé 0191d868fa Simplify and clean parallel code for PMP::self_intersections 2019-12-02 16:39:58 +01:00
Mael f01f25234b
Merge branch 'master' into PMP-Stitch_borders_returns_number_of_stitched_pairs-GF 2019-12-02 16:25:43 +01:00
Mael Rouxel-Labbé 783d5df98c TMP DEBUG CODE 2019-11-28 18:39:28 +01:00
Mael Rouxel-Labbé 908da8cdf7 Fix some debug macros 2019-11-28 18:39:12 +01:00
Mael Rouxel-Labbé e50b54a8b8 Minor cleaning 2019-11-28 18:28:19 +01:00
Mael Rouxel-Labbé b604d066d7 Mute an output from PMP::repair_polygon_soup when there's nothing interesting 2019-11-28 15:49:48 +01:00
Mael Rouxel-Labbé b403f2afdc PMP::Snap 2.0
About fully rewritten
- Make vertex-vertex snapping immediately two way in a single function call
- factorize vertex-edge code
- Greatly improve robustness through a bunch of heurestics
- Make it possible to simplify borders and lock borders
- Simplify code in many places
- Parallelize vertex-vertex box_intersection_d calls
- Clarify types and variables
- etc.
2019-11-28 15:45:06 +01:00
Mael Rouxel-Labbé 9ae08f7277 Add a convenience function to get the number of edges on a border
Can't use degree(f) since it is the null face...
2019-11-28 15:43:58 +01:00
Sébastien Loriot 820621b7b7 make sure that an edge registered for split is the first one if non-manifold
(coplanar case)
2019-11-25 10:56:51 +01:00
Mael Rouxel-Labbé d13f4f8ddc Merge remote-tracking branch 'mine/PMP-Remove_small_CCs' into PMP-Snapping_improvements-GF 2019-11-22 14:27:59 +01:00
Sébastien Loriot 23d41c50a6 handle case of a halfedge on the boundary (ignore in the if after) 2019-11-22 11:24:47 +01:00
Sébastien Loriot afcf0775fb use the non-manifoldness of the vertex to collect incident edges
we might be missing some edges that are incident to the non-manifold vertex
Also include a fix to get the canonical non-manifold edge
2019-11-21 13:15:43 +01:00
Mael Rouxel-Labbé e73b973b62 Use Parallel_if_available_tag to simplify code that used CGAL_LINKED_WITH_TBB 2019-11-20 12:24:54 +01:00
Mael Rouxel-Labbé 41bb11cdee Make unique indentation style a little less unique (no real changes) 2019-11-19 17:08:25 +01:00
Mael Rouxel-Labbé b6dd62be52 Use ID_FROM_BOX_ADDRESS in Box_with_info_d where safe
That is, where we are passing box ranges by pointer.

See also 52ce0b6ac4
2019-11-19 17:06:47 +01:00
Mael Rouxel-Labbé ac86fadd7a Misc code formatting improvements 2019-11-19 12:51:17 +01:00
Mael Rouxel-Labbé 09419dca5c More work towards local self-intersection removal (bug fixes, etc.) 2019-11-18 12:06:42 +01:00
Andreas Fabri a44674a694 Add ConcurrencyTag in Box_intersection_d 2019-11-15 21:45:19 +01:00
Andreas Fabri bef2b5f1b8 Parallelize using 2 or 4 parallel threads 2019-11-15 16:21:25 +01:00
Andreas Fabri 40fbe18dcd Merge branch 'Box_intersection_d-accelerate-GF' of github.com:afabri/cgal into Box_intersection_d-accelerate-GF 2019-11-15 12:55:43 +01:00
Mael a47f0ee91d
Fix inconsistency in doc/code parameter names 2019-11-15 12:03:18 +01:00
Mael ff960adea0
Fix namespace lookup issue (and a warning) 2019-11-14 17:08:58 +01:00
Andreas Fabri 3caad9bc88 Remove #include 2019-11-14 13:26:47 +01:00
Andreas Fabri f033e0a244 Cleanup 2019-11-14 11:45:37 +01:00
Andreas Fabri 899b9ec384 Remove experimental code 2019-11-14 11:31:50 +01:00
Andreas Fabri 45cd4dc8bf remove parameter; Add ConcurrencyTag to does_self_intersect 2019-11-14 11:21:40 +01:00
Sébastien Loriot e4b205bca6 update doc + reorder/factorize code 2019-11-14 06:31:43 +01:00
Sébastien Loriot ceddeb9756 hide debug code 2019-11-13 15:55:08 +01:00
Andreas Fabri 5ea8d36129 Do not use a concurrent_vector 2019-11-13 09:35:48 +01:00
Andreas Fabri 2d14c67304 Remove unused class Output_iterator_with_bool 2019-11-13 09:07:10 +01:00
Andreas Fabri a35a7ebf9b fix a reserve() 2019-11-12 18:40:17 +01:00
Andreas Fabri 343ca0b4a7 Add the version that reports all pairs of faces and performs the intersection tests in parallel 2019-11-12 18:27:32 +01:00
Andreas Fabri 732d1d8f8a Add overloads with ConcurencyTag 2019-11-12 16:32:08 +01:00
Andreas Fabri fc72b37db4 Functor cleanup 2019-11-12 15:31:26 +01:00
Andreas Fabri 899d8f7b59 cleanup 2019-11-12 13:01:26 +01:00
Andreas Fabri ead0da3c77 WIP: not the same number of intersections for Tuyaeaux.stl 2019-11-12 11:40:40 +01:00
Mael Rouxel-Labbé a191211494 Rephrase named parameter documentation 2019-11-12 11:22:06 +01:00
Mael Rouxel-Labbé 3b738f0e95 Fix broken edge-case in keep_largest_CCs
Even if there's a single CC, a user may still want to keep 0 (who knows why,
but that's not the question).
Also, if number_to_keep == number_of_CCs, you can also exit early.
2019-11-12 11:05:03 +01:00
Mael Rouxel-Labbé c065b35ee5 Document new named parameters 2019-11-12 10:59:20 +01:00
Mael Rouxel-Labbé 791a5277d2 Add an output iterator to keep_large(st)/small_CCs (+dry run if needed)
The point is to be able to collect the faces if you do a dry run
2019-11-12 10:58:18 +01:00
Andreas Fabri b6bc521c22 WIP does not even compile 2019-11-08 16:21:20 +01:00
Andreas Fabri e18413c9b5 fixes 2019-11-07 21:26:53 +01:00
Andreas Fabri 21bd1af505 Avoid chains of next and target 2019-11-07 17:54:46 +01:00
Sébastien Loriot b9a079b530 remove cpp11/cpp0x 2019-11-04 11:34:53 +01:00
Sébastien Loriot 9a0bff4008 remove BOOST_FOREACH added by recent PRs 2019-11-04 10:59:15 +01:00
Mael Rouxel-Labbé c15f8e0c70 Do not allow non-conformal snapping to snap onto stitchable pairs 2019-10-31 13:48:55 +01:00
Mael Rouxel-Labbé 5637390346 Return stitchable halfedge pairs in vertex-vertex snapping 2019-10-31 13:48:26 +01:00
Laurent Rineau 416cbbcf47 Merge pull request #4277 from MaelRL/PMP-Locate_rework_traits-GF
PMP: Replace `Location_traits` by a simpler API
2019-10-29 15:23:41 +01:00
Mael Rouxel-Labbé e0d42f0e37 Rephrase documentation 2019-10-28 14:41:37 +01:00
Mael Rouxel-Labbé f058989e9b Misc minor changes in tests 2019-10-28 14:38:46 +01:00
Mael Rouxel-Labbé 4401a80642 Do not do useless computations (check for negative thresholds) 2019-10-28 14:37:38 +01:00
Mael Rouxel-Labbé 20c446df41 Clarify documentation 2019-10-28 14:37:04 +01:00
Mael ab65cc9800
Merge branch 'master' into PMP-Remove_small_CCs 2019-10-28 09:07:45 +01:00
Mael fe681a2edb
Merge branch 'master' into PMP-New_vertex_normal_computations-GF 2019-10-28 08:52:52 +01:00
Mael Rouxel-Labbé ff09c5d0c8 Merge branch 'SMS-Add_GH_simplification-GF-old' into SMS-Add_GH_simplification-GF 2019-10-25 16:35:53 +02:00
Sébastien Loriot 254d60f642 First pass on removing license notice in header for GPL files 2019-10-19 15:23:19 +02:00
Sébastien Loriot 7356421d80 introduce Commercial license SPDX tag 2019-10-19 12:15:19 +02:00
Mael Rouxel-Labbé 7e9f1e9acc Fix compilation error in area()
(Re-add some code removed instead of moved in
0f7de56d76)
2019-10-18 23:42:45 +02:00
Sébastien Loriot 9bd9c68b83 update LGPL[23]+ and GPL[23]+ SPDX tags
ack -l --no-svg "SPDX-License-Identifier: GPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-3.0+/SPDX-License-Identifier: GPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-3.0+/SPDX-License-Identifier: LGPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: GPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-2.0+/SPDX-License-Identifier: GPL-2.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-2.0+/SPDX-License-Identifier: LGPL-2.0-or-later/"
2019-10-18 21:57:54 +02:00
Maxime GIMENO 63a6dc2a4b
Fix typo
Co-Authored-By: Mael <mael.rouxel.labbe@geometryfactory.com>
2019-10-18 16:01:43 +02:00
Laurent Rineau 2edcf7b033 Merge pull request #4269 from maxGimeno/PMP-Fix_doc_macro-maxGimeno
PMP: Fix doc macro
2019-10-18 14:17:19 +02:00
Mael Rouxel-Labbé 0f7de56d76 Move a number of Named Parameter type extractor from CGAL::PMP:: to PMP::
These are used in a number of pacakges other than PMP and the code
is also already in /BGL. None are documented.
2019-10-17 12:41:30 +02:00
Laurent Rineau c58815d7c7 Merge pull request #4269 from maxGimeno/PMP-Fix_doc_macro-maxGimeno
PMP: Fix doc macro
2019-10-15 16:34:06 +02:00
Mael Rouxel-Labbé 77e0937fb2 Uniformize tparam formulation 2019-10-15 13:13:16 +02:00
Martin Skrodzki 2d4c254362 Keep current global bounds in mind when traversing tm2. 2019-10-14 00:51:40 +02:00
Martin Skrodzki fed345c07a Add notes from skype meeting. 2019-10-14 00:32:55 +02:00
Sébastien Loriot 052be439e5 fix indentation and missing blank line 2019-10-10 11:37:30 +02:00
Sébastien Loriot acec5469fe lazily build the tree 2019-10-10 08:00:41 +02:00
Mael Rouxel-Labbé 3801a35eb3 Tiny fixes 2019-10-08 16:03:51 +02:00
Mael Rouxel-Labbé 0b67e30c01 Improve user-friendliness of PMP::Locate by removing the class Location_traits
The problem was that Location_traits is templated by Named Parameters, and
it is extremely unpractical to have to explicitly write the type (it's nested
classes all the way down).

Instead, we use template aliases for most types, and template by the field
type (FT) when necessary, which is much easier to write for the user.

Since template aliases cannot automatically deduce template parameters,
non-Doxygen versions of functions must be written without them
from time to time.

Other fixes:
- Simplify implementation of function 'random_location_halfedge'
- Don't initialize FTs from doubles
- Minor doc improvements
- reference to points when using VPMs
2019-10-08 15:54:08 +02:00
Maxime Gimeno a4947324e9 clean-up and new tests 2019-10-04 13:13:00 +02:00
Maxime Gimeno c276ddaca0 fix warning 2019-10-04 09:55:30 +02:00
Maxime Gimeno cf4e1b4bd6 Add missing macro definition 2019-10-03 12:15:46 +02:00
Maxime Gimeno 0c26c6c3e8 Add missing macro def 2019-10-03 12:14:41 +02:00
Maxime Gimeno 9e3b59e55d Add missing macro def 2019-10-03 12:07:47 +02:00
Maxime Gimeno fe746764cf remove the bool. 2019-10-02 15:20:18 +02:00
Maxime Gimeno 130d4a5e24 remove useless bool 2019-10-02 09:56:07 +02:00
Maxime Gimeno e42c87b54f add the missing box 2019-10-02 09:35:41 +02:00
Mael Rouxel-Labbé e834971904 Minor code fixes 2019-10-01 13:03:43 +02:00
Mael Rouxel-Labbé 978a3f9504 Minor doc fixes 2019-10-01 13:03:29 +02:00
Maxime Gimeno c18ad651d6 Fix last constro 2019-10-01 10:19:54 +02:00
Maxime Gimeno c42d1b3cfd test the dry_run 2019-10-01 09:56:37 +02:00
Maxime Gimeno 1a429d03e4 Add dry_run to keep_large_components() and remove_connected_components_of_negligible_size9) 2019-10-01 09:47:00 +02:00
Maxime Gimeno 10f53f8595 Fix the doc 2019-10-01 09:30:29 +02:00
Maxime Gimeno 546be7aff7 Add a `dry_run` parameter to `keep_large_connected_components()` 2019-09-30 15:49:36 +02:00
Maxime Gimeno 3bcd8810e5 update doc 2019-09-27 14:40:35 +02:00
Maxime Gimeno 1916821995 Fix copy_nested_parents 2019-09-27 13:23:56 +02:00
Maxime Gimeno 8583935ae8 Use the functions where possible 2019-09-27 11:50:55 +02:00
Sébastien Loriot ee8528e02b fix the test 2019-09-27 11:45:57 +02:00
Sébastien Loriot 429bf8676b fix handling of constrained vertices in geometric test for collapse 2019-09-27 11:15:34 +02:00
Sébastien Loriot 80a462d9a4 disable the max length test if 0 is given as threshold 2019-09-27 11:08:10 +02:00
Sébastien Loriot 6cedfac39a move code to internal/experimental and example to test
also update test that was no longer compiling
2019-09-27 08:35:03 +02:00
Sébastien Loriot 89094af48d use do_intersect correctly as it is still needed 2019-09-26 17:59:54 +02:00
Maxime Gimeno 97a3390457 Wrap the mechanism in 3 functions with 3 types to reduce the number of template parameters to 2. 2019-09-26 16:31:38 +02:00
Sébastien Loriot 3e5e721542 plug do_intersect_with_priority 2019-09-26 16:06:24 +02:00
Andreas Fabri 6027b2d5f7 Add Traits::intersection_with_priority() 2019-09-26 15:15:50 +02:00
Maxime Gimeno b831e41013 Use a bbox in Side-of_triangle_mesh until a request is inside, only then use the tree. Make it faster when working with disjoint meshes. 2019-09-25 13:03:12 +02:00
Mael Rouxel-Labbé e37d708f62 Fix target mesh being geometrically modified during non-conformal snapping 2019-09-25 10:32:40 +02:00
Mael Rouxel-Labbé 3bd071175e Tiny optimization 2019-09-25 09:40:21 +02:00
Mael Rouxel-Labbé 2049e9e90c Add support for VCM 2019-09-25 09:26:25 +02:00
Mael Rouxel-Labbé a6ff330190 Use traits' functors 2019-09-24 17:32:50 +02:00
Mael Rouxel-Labbé 898663245f Allow needle/cap/length threshold to be passed as NP
+ edge constraint map
+ general code cleaning
2019-09-24 16:58:10 +02:00
Maxime Gimeno bf0e52cf6e Incorporate the initialization of the map to the helpers. 2019-09-24 16:36:57 +02:00
Maxime Gimeno 5a4dc7733c blah 2019-09-24 15:39:01 +02:00
Maxime Gimeno d18191db46 rename helper and add detect if map is writable (need_init is true in that case) 2019-09-24 14:15:01 +02:00
Maxime Gimeno a52592909f Remove all calls to accelerate_distance_queries(), now redundant. 2019-09-24 11:44:20 +02:00
Mael Rouxel-Labbé 9b3da64b8c Merge branch 'PMP-Remove_needles_and_caps-GF-old' into PMP-Remove_needles_and_caps-GF 2019-09-24 09:54:30 +02:00
Mael Rouxel-Labbé 05fdacd6bf Clean code 2019-09-24 09:42:06 +02:00
Sébastien Loriot 168463e038 remove extra assertion 2019-09-24 08:51:22 +02:00
Sébastien Loriot d3094f18e4 make sure that an edge registered for split is the first one if non-manifold
otherwise some points might be added on different non-manifold edges
and this would require a merge of vertices on edges
2019-09-23 17:36:38 +02:00
Sébastien Loriot 6e061f2afe fix indentation and use constexpr 2019-09-23 17:35:32 +02:00
Sébastien Loriot 1a4c47d6b4 update macro name 2019-09-19 12:47:48 +02:00
Laurent Rineau ebcd182b5c Merge remote-tracking branch 'cgal/releases/CGAL-4.14-branch' 2019-09-17 14:31:44 +02:00
Maxime Gimeno d893b694f4 Don't use "using parameters::choose_param" 2019-09-17 10:11:12 +02:00
Sébastien Loriot e1366dd184 flip only if the flip is the best quad diagonal 2019-09-12 10:52:41 +02:00
Sébastien Loriot 31e44f2580 keep the vertex minimizing the volume variation 2019-09-11 16:04:25 +02:00
Sébastien Loriot 7cf0c7daad add a geometric test to prevent folding and self-intersections 2019-09-11 14:44:27 +02:00
Sébastien Loriot 5e736889d2 make sure all elements are removed during one call of the function
an additional call should not do anything
2019-09-11 07:06:23 +02:00
Sébastien Loriot d47f3f57a3 Test the opposite triangle too (same edge = same key) 2019-09-10 17:27:03 +02:00
Sébastien Loriot f3c2ae6b98 re-evaluate triangles after changes 2019-09-10 14:34:26 +02:00
Sébastien Loriot fe2daaae75 retest the validity of the criteria before doing the operations
+ add debug code to dump model before the operation
2019-09-10 10:27:12 +02:00
Maxime Gimeno f9074ce00a remove capital and make vec const 2019-09-06 15:51:35 +02:00
Sébastien Loriot 89c1c4b3e8 check if the edge to be collapsed still verify the needle criteria 2019-09-06 15:35:03 +02:00
Maxime Gimeno 5fdcb3c83e Replace the hardcoded std::vector<> of the NPs by a more flexible concept, and add functions for copy. 2019-09-06 11:45:42 +02:00
Sébastien Loriot ee537eb89c do not iterate on a container if we remove elements from it 2019-09-06 11:41:19 +02:00
Sébastien Loriot acb8b8ffa2 split the function checking for needles and caps and use it to avoid inifinite flipping loops 2019-09-06 10:35:29 +02:00
Mael Rouxel-Labbé d6bb0e5bf0 Use a generic dynamic pmap rather than the specific edge_is_feature one
Don't want the state of a feature edge to be remembered from one step
of the algorithm to the other
2019-09-05 15:58:57 +02:00
Mael Rouxel-Labbé 0c497580cd Misselleneaous... Miscalleneous.. Miscenalleous... Miscelleanous... Misc cleaning! 2019-09-05 15:52:34 +02:00
Mael Rouxel-Labbé c2d3ee8e1e Add hole-filling with constraints as a fourth possible step to treat local SI
It is tried before hole-filling without constraints, which is used as a last
resort (before non-local hole-filling)
2019-09-05 15:32:06 +02:00
Maxime Gimeno 0b71f00eb5 Add a bitset to foes_bound_a_volume and add a hidden test for all possible orientations of nested_cubes. 2019-09-05 14:27:36 +02:00
Sébastien Loriot 64cd7b67c2 hide debug 2019-09-05 11:26:12 +02:00
Sébastien Loriot 2e8b3ec7a5 remove BOOST_FOREACH 2019-09-05 08:10:11 +02:00
Maxime Gimeno 54895543b3 Fix boost::get_param and bad if() 2019-09-04 17:04:20 +02:00
Maxime Gimeno ccf338b9b7 Merge remote-tracking branch 'cgal/master' into PMP-volume_segmentation 2019-09-04 14:58:16 +02:00
Maxime Gimeno d285d4aae2 Fix mechanism and adapt cc test for polyhedron with no id 2019-09-04 14:00:08 +02:00
Sébastien Loriot a5e3841a14 reduce expression + improve test 2019-08-30 17:43:21 +02:00
Sébastien Loriot 7fd73c3919 use the new function to implement orient_to_bound_a_volume
the former implementation was recursive

    this makes the implementation non-recursive
2019-08-30 17:25:21 +02:00
Mael Rouxel-Labbé 2c06609445 Fix some warnings 2019-08-30 16:22:50 +02:00
Sébastien Loriot 5fe1b43ce6 Merge pull request #4139 from MaelRL/PMP-Fix_duplicate_nm_vertices_5.0-GF
PMP: Fix improper halfedge incidence state in post non-manifold vertex duplication mesh  (5.0)
2019-08-29 20:10:16 +02:00
Sébastien Loriot 73ff5f610b Merge pull request #4174 from MaelRL/PMP-Fix_boundary_cycle_stitching_5.0-GF
PMP: Fix boundary cycle when non manifold vertices exist in the cycle (5.0)
2019-08-29 20:09:34 +02:00
Sebastien Loriot 201a4b8ff8
Merge pull request #4176 from MaelRL/PMP-Fix_boundary_cycle_nm_vertices-4.14-GF
PMP: Fix boundary cycle when non manifold vertices exist in the cycle (4.14)
2019-08-29 19:52:12 +02:00
Sebastien Loriot 98f3847cf1
Merge pull request #4137 from MaelRL/PMP-Fix_duplicate_nm_vertices_414-GF
PMP: Fix improper halfedge incidence state in post non-manifold vertex duplication mesh (4.14)
2019-08-29 19:51:17 +02:00
Sebastien Loriot aa3b75a596
Merge pull request #4178 from janetournois/PMP-fix_isotropic_remeshing_degenerate_flip-jtournois
`PMP::isotropic_remeshing()` - prevent creating non-manifold configurations
2019-08-29 07:32:44 +02:00
Andreas Fabri 4bedab0ef4 Do not use free function 2019-08-28 15:56:51 +02:00
Sébastien Loriot 0e7d85ca07 add TODO 2019-08-27 08:29:44 +02:00
Sébastien Loriot 09de5587a6 remove no longer used function 2019-08-27 08:13:24 +02:00
Sébastien Loriot 8c27d11fdb use the new function to implement does_bound_a_volume
this makes the implementation non-recursive
2019-08-27 08:10:12 +02:00
Sébastien Loriot 551313ac5c Merge branch 'cgal/releases/CGAL-4.14-branch' 2019-08-27 06:37:23 +02:00
Sébastien Loriot f0fb56233a Merge 'cgal/releases/CGAL-4.13-branch' 2019-08-27 06:36:39 +02:00
Mael Rouxel-Labbé e9d1841a5f Merge branch 'PMP-Make_remove_self_intersections_local-GF-old' into PMP-Make_remove_self_intersections_local-GF 2019-08-26 16:00:37 +02:00
Mael Rouxel-Labbé c2cb44175b Add a reference to the paper 2019-08-26 13:24:51 +02:00
Mael Rouxel-Labbé 5cf6ec5261 Fix minor bug in 'is_default_parameter' usage 2019-08-26 13:05:50 +02:00
Mael Rouxel-Labbé ae60ff2d15 Robustification of most visible vertex normal computation 2019-08-26 13:05:27 +02:00
Mael Rouxel-Labbé 6da2cebc8d Sqrt -> Approximate_sqrt 2019-08-26 13:04:52 +02:00
Mael Rouxel-Labbé ce9b3a890d Use sin-based weights in the default vertex normal computation 2019-08-26 13:04:24 +02:00
Mael Rouxel-Labbé b9f37cea38 Hide debug code behind macros 2019-08-26 13:03:22 +02:00
Sébastien Loriot 242cce424b add parameters to collect pair of cc intersecting 2019-08-25 13:53:32 +02:00
Sébastien Loriot 83fcb5d24e add new named parmeters to extract more info from the function 2019-08-25 09:46:56 +02:00
Martin Skrodzki 5f2069a6b3 Document named parameters. 2019-08-24 11:09:36 +02:00
Martin Skrodzki 316cae0dd9 Finalize documentation of bounded Hausdorff Distance computation and make print outs optional via a debug parameter. 2019-08-23 17:30:07 +02:00
Mael Rouxel-Labbé cf35771337 Robustify and incorporate most visible normal computations into standard fns 2019-08-23 16:29:36 +02:00
Maxime Gimeno ed91d4e86e Add doc for new function 2019-08-23 15:41:06 +02:00
Maxime Gimeno a446908575 Use some CRTP voodoo to factorize the mesh and the soup versions of sampling. 2019-08-23 15:40:57 +02:00
Maxime Gimeno cc5b9c7a8a WIP 2019-08-23 15:40:02 +02:00
Maxime Gimeno 9551de0782 Clarify precondition message in polygon_soup_to_polygon_mesh() 2019-08-23 15:39:52 +02:00
Sébastien Loriot 283b52cb8b Revert "move self-intersection computation in an internal function"
This reverts commit 3ae8e0f06f.
2019-08-23 15:33:59 +02:00
Sébastien Loriot 48b72b3fab use c++11 for-range loop 2019-08-23 15:22:01 +02:00
Sébastien Loriot 3ae8e0f06f move self-intersection computation in an internal function 2019-08-23 14:59:59 +02:00
Mael Rouxel-Labbé 195a3319eb Also remove isolated vertices in remove_negligible_CCs 2019-08-23 14:37:16 +02:00
Sébastien Loriot baea5490a4 collect only faces for cc to be handled 2019-08-23 12:00:17 +02:00
Mael Rouxel-Labbé bba6e57053 Misc code cleaning 2019-08-23 11:35:34 +02:00
Mael Rouxel-Labbé ad90fa30fd Fix potentially taking references to temporaries
For example, if the vertex point property map returned temporaries
2019-08-23 11:16:01 +02:00
Mael Rouxel-Labbé f05a11dde5 Fix some internal functions not being in the 'internal' namespace 2019-08-23 11:15:41 +02:00
Mael Rouxel-Labbé c65c5e0b42 Merge branch 'PMP-New_vertex_normal_computations-GF-old' into PMP-New_vertex_normal_computations-GF 2019-08-23 11:01:31 +02:00
Mael Rouxel-Labbé 923bd66ddf Document remove_connected_components_of_negligible_size 2019-08-23 10:33:13 +02:00
Sébastien Loriot 68f7fac254 update doc to make links working 2019-08-23 09:49:08 +02:00
Mael Rouxel-Labbé 68419d1e65 Remove_negligible_CCs now take two new NP: area and volume thresholds
If no treshold is provided, a default value is computed based on the length
of the diagonal of the bbox.
2019-08-23 09:24:17 +02:00
Mael Rouxel-Labbé cd46683b48 Update NP syntax to new standards (choose_parameter / get_parameter) 2019-08-23 09:23:40 +02:00
Mael Rouxel-Labbé 83184032e6 Add a function 'number_of_CCs' for convenience
Just so that we don't have have to create the face map and such
if we only care about the number of CCs
2019-08-23 09:22:54 +02:00
Martin Skrodzki ba0a67190f Clean up Code. 2019-08-23 07:47:46 +02:00
Mael Rouxel-Labbé fad61974d6 Merge branch 'PMP-Remove_small_CCs-old' into PMP-Remove_small_CCs 2019-08-22 14:22:41 +02:00
Mael Rouxel-Labbé 6d2ebc7a6e Minor doc changes 2019-08-22 13:14:45 +02:00
Mael 023dfec313
Add const marker 2019-08-22 09:06:02 +02:00
Mael be20ddb568
Add const marker 2019-08-22 09:05:14 +02:00
Mael d2349066af
Add const marker
Co-Authored-By: Sebastien Loriot <sloriot.ml@gmail.com>
2019-08-22 09:03:01 +02:00
Mael Rouxel-Labbé 4bca5d114f Rephrase end condition 2019-08-21 17:07:44 +02:00
Mael Rouxel-Labbé afec55f375 Rephrase end condition 2019-08-21 17:06:55 +02:00
Mael Rouxel-Labbé 799916d7c5 Rephrase end condition 2019-08-21 17:04:39 +02:00
Mael Rouxel-Labbé a1039b9d33 Fix boundary cycle stitching when nm vertices are present 2019-08-21 16:51:58 +02:00
Mael Rouxel-Labbé b60f1f5205 stitch_borders() now returns the number of halfedge pairs that were stitched 2019-08-21 16:24:34 +02:00
Mael Rouxel-Labbé 9bd79323f6 Change guard name 2019-08-21 16:15:57 +02:00
Mael Rouxel-Labbé 7c09f56889 Minor changes to enable debug code 2019-08-21 16:10:04 +02:00
Mael Rouxel-Labbé 13f9d60518 Fix boundary cycle stitching when non-manifold vertices are present 2019-08-21 16:05:04 +02:00
Mael Rouxel-Labbé 7f55980ac6 Misc debug and code cleaning (no real changes) 2019-08-21 16:02:53 +02:00
Simon Giraudot dd5fe73996 Document type of iterator (random access) 2019-08-21 15:43:50 +02:00
Simon Giraudot 790ed44613 Fix distance range type 2019-08-21 14:51:04 +02:00
Jane Tournois 77c8e68e07 fix the use of flip() inside fix_degenerate_faces()
the topological condition should be a strong condition, not an assertion
2019-08-20 17:23:32 +02:00
Maxime Gimeno a8bccc6e41 restore the bool parameter and use ittogether with the `init_XXX_indices` helper functions. 2019-08-19 12:55:17 +02:00
Maxime Gimeno 4f0d883b27 WIP map_getter helper 2019-08-16 16:01:26 +02:00
Maxime Gimeno 3b38ede8c4 Add CGAL_USE to manage case where assertions are ignored 2019-08-14 13:22:19 +02:00
Andreas Fabri 7db6c8e670 make const & 2019-08-12 07:51:32 -07:00
Andreas Fabri 52ca4f828f Comment debug output as travis fails 2019-08-12 07:49:12 -07:00
Sébastien Loriot 760365987c Merge branch 'cgal/releases/CGAL-4.14-branch' 2019-08-12 09:20:53 +02:00
Sebastien Loriot e67611862b
Merge pull request #4129 from janetournois/PMP-fix_isotropic_remeshing_collapse-jtournois
Fix segfault in `PMP::isotropic_remeshing()`
2019-08-12 09:16:57 +02:00
Sebastien Loriot eb712a67e9
Merge pull request #4094 from MaelRL/PMP-Snap_pp-GF
PMP: speed improvements for snap.h
2019-08-12 09:02:50 +02:00
Mael Rouxel-Labbé e7a71ec797 Misc cleaning 2019-08-07 15:30:59 +02:00
Mael Rouxel-Labbé 4b996c61f6 Add a range parameter to 'remove_self_intersections' 2019-08-07 15:29:16 +02:00
Mael Rouxel-Labbé e0f3a66de6 Fix a few header includes 2019-08-07 15:27:30 +02:00
Mael Rouxel-Labbé 114ff8a967 Minor sanity improval (cosmetic chance) 2019-08-07 15:27:04 +02:00
Mael Rouxel-Labbé de3305f4df Add new headers to PMP.h 2019-08-06 16:53:41 +02:00
Mael Rouxel-Labbé 994be6a41c Progress on local self intersection removal 2019-08-06 16:53:19 +02:00
Mael Rouxel-Labbé 82e1c93eef Ensure that all vertices have a proper halfedge after non manifold duplication 2019-08-05 16:06:33 +02:00
Mael Rouxel-Labbé 9bf457ffcc Fix duplicate nm vertices
There was an issue with keeping a valid incident halfedge for vertices
post-duplication
2019-08-05 15:38:30 +02:00
Mael Rouxel-Labbé a1e2cba1c9 Minor comment change 2019-08-03 15:02:48 +02:00
Mael Rouxel-Labbé 814f8c67e5 Fix non-manifold vertex duplication 2019-08-03 14:52:35 +02:00
Mael Rouxel-Labbé 35cd0513cb Put a simple check before the more expensive angle computation 2019-08-03 14:51:11 +02:00
Mael Rouxel-Labbé 56354bcf8b Use approximate sqrt because compute_area_3 does not work for some kernels 2019-08-02 12:14:25 +02:00
Mael Rouxel-Labbé 71304cf145 Fix np internal type 2019-08-02 11:04:26 +02:00
Mael Rouxel-Labbé 9f3009f88b Add breathing room 2019-08-02 09:05:09 +02:00
Mael Rouxel-Labbé 22acb31a12 Add a function to remove small (in terms of area && volume) CCs 2019-08-01 16:10:52 +02:00
Mael Rouxel-Labbé 16cdbb4b8f Avoid default constructing the traits 2019-08-01 16:10:36 +02:00
Mael Rouxel-Labbé edbe852d4d Simplify initialization 2019-08-01 16:10:14 +02:00
Jane Tournois 5f8a58a046 deal with faces on the boundary
a precondition inside `flip_edge()` fails if this boundary condition is not satisfied
2019-08-01 14:58:19 +02:00
Mael Rouxel-Labbé 96d1cee7a7 Refactor a bit 'self_intersections()' ahead of later use
(A later would be to consider that two faces intersect if they are
e.g. vertex-adjacent)
2019-07-30 13:01:10 +02:00
Mael Rouxel-Labbé 7e7abafd08 Add some code to treat self-intersections locally 2019-07-30 13:00:32 +02:00
Mael Rouxel-Labbé 68e80471b2 Revert some changes about passing a face range to remove_self_intersections 2019-07-30 11:43:29 +02:00
Sébastien Loriot b84297f8f6 update the usage for the new CGAL named function parameters 2019-07-29 09:38:39 +02:00
Sébastien Loriot 25a05e9f4c Merge branch 'CGAL-named_function_parameters-4.14' into master
Conflicts resolved by hand
2019-07-28 23:46:43 +02:00
Sébastien Loriot aa47744c36 update the usage for the new CGAL named function parameters 2019-07-28 22:30:17 +02:00
Sébastien Loriot 2f81a21523 Merge 'CGAL-named_function_parameters' for 4.13-branch into 4.14-branch
Conflicts resolved by hand
2019-07-28 22:30:13 +02:00
Mael Rouxel-Labbé 3a89e8240e Split large and eclectic file PMP/repair.h into smaller files 2019-07-25 09:25:54 +02:00
Mael Rouxel-Labbé dac6c04529 Make lack of degenerate faces a precondition of self-intersection removal
It's just too tedious / ugly maintaining a range while removing degenerate
edges and faces.
2019-07-24 10:42:03 +02:00
Mael Rouxel-Labbé d5eff6a663 Minor doc fix 2019-07-24 10:41:37 +02:00
Mael Rouxel-Labbé 633477b8aa Remove useless border check (the vertex is interior) 2019-07-23 15:24:53 +02:00
Martin Skrodzki 405cf12249 Implement Priority Queue for the set of candidate triangles. 2019-07-21 14:18:35 +02:00
Martin Skrodzki 680edc46b1 Modify triangle bounding box distance to have sharper bounds. 2019-07-21 11:07:21 +02:00
Martin Skrodzki 156cac5107 Implement benchmarking on both time and number of culled triangles. 2019-07-20 19:05:55 +02:00
Martin Skrodzki 130dcbc158 Bugfix entering nodes of TM2 when traversing it. 2019-07-19 11:07:06 +02:00
Mael Rouxel-Labbé 00f8f3ae43 Remove example that had been moved to test (snap already has two tests) 2019-07-19 09:07:01 +02:00
Sébastien Loriot 4a58db22b9 fix warnings 2019-07-18 20:01:44 +02:00
Mael 9ba0870ebd
Merge branch 'master' into PMP-Snap_pp-GF 2019-07-18 17:43:04 +02:00
Sébastien Loriot 41ef56f8ad Merge remote-tracking branch 'cgal/releases/CGAL-4.14-branch' into HEAD 2019-07-18 16:57:27 +02:00
Sébastien Loriot c411ae69d0 Merge pull request #2951 from kkatrio/PMP-smoothing-kkatrio
PMP: Mesh and shape smoothing
2019-07-18 16:49:05 +02:00
Sébastien Loriot 1f8065c6c3 Merge pull request #3885 from MaelRL/PMP-Locate-GF
PMP: Add locate.h and rewrite Triangulation_2 graph traits
2019-07-18 16:40:49 +02:00
Sebastien Loriot 8adc64dfe3
Merge pull request #3860 from MaelRL/PMP-Add_non_manifold_vertices_collector-GF
PMP: Add function 'non_manifold_vertices'
2019-07-18 16:38:15 +02:00
Sebastien Loriot 0c089d6f91
Merge pull request #3721 from sloriot/PMP-clip_fixes
Fixes for clipping
2019-07-18 16:28:44 +02:00
Mael Rouxel-Labbé 13e87ad3bd Parallelize AABB tree traversal 2019-07-18 14:32:56 +02:00
Sébastien Loriot b1bbcfa81a add missing reference 2019-07-18 11:48:25 +02:00
Martin Skrodzki 98e92a973b Introduce an additional stopping criterion to stop in degenerate cases where a triangle is never projected onto a single triangle in the other mesh. 2019-07-18 11:42:16 +02:00
Mael Rouxel-Labbé 3fe52056cf Do not normalize bisector in most visible vertex computations 2019-07-18 11:19:03 +02:00
Mael Rouxel-Labbé 9d1cec6be6 Fix indentation (cosmetic) 2019-07-18 11:18:52 +02:00
Martin Skrodzki 30b6c70b3b Add naive and optimized Hausdorff implementation to test file. 2019-07-18 09:56:13 +02:00
Mael Rouxel-Labbé 1954203264 Change comment after tests 2019-07-17 15:22:10 +02:00
Mael Rouxel-Labbé 95982eb36f Allow source vertex to snap to edges, even if they have been previously snapped
The key point is that the splitting point of a (target) halfedge
is assigned the position of the source vertex that breaks this target halfedge.
In other words, if multiple source vertices have the same position, we do
not have to track and move these together because they do not move anyway.
2019-07-17 14:54:41 +02:00
Mael Rouxel-Labbé 348b806d5e Use some point references to avoid copies 2019-07-17 14:53:57 +02:00
Mael Rouxel-Labbé a63c10c2cb Use traits class functors for equality tests 2019-07-17 14:33:47 +02:00
Mael Rouxel-Labbé 0d617400bc Accelerate AABB tree traversal by passing the tolerance as initial min_dist 2019-07-17 14:29:26 +02:00
Mael Rouxel-Labbé ead092a62b Clean useless includes 2019-07-17 14:28:14 +02:00
Martin Skrodzki 313402589a Bugfix computation of upper bound, should not go below lower bound. 2019-07-15 14:54:52 +02:00
Martin Skrodzki 000604faa9 Comment naive comparison method. 2019-07-15 14:20:15 +02:00
Martin Skrodzki e78cbff8a1 Implement naive bounded Hausdoff computation by simple subdivision. 2019-07-15 14:12:01 +02:00
Mael Rouxel-Labbé b39d728f45 Minor doc cleaning 2019-07-15 11:40:46 +02:00
Sébastien Loriot 560c77f567 rename named function parameter class 2019-07-15 06:25:02 +02:00
Sébastien Loriot cebf0657d8 Use a full CGAL version of named function parameters
no longer rely on boost
2019-07-14 22:45:47 +02:00
Martin Skrodzki 519d37d9d7 Use Kernel method instead of computations by hand. 2019-07-12 18:17:24 +02:00
Martin Skrodzki d8b6e7dfb1 Results of Code Review with Sebastien. 2019-07-12 18:04:08 +02:00
Sébastien Loriot 0ff0b41ac8 remove unused code 2019-07-11 12:24:05 +02:00
Mael Rouxel-Labbé a284ec00d4 Fix typo 2019-07-11 11:31:40 +02:00
Mael Rouxel-Labbé c3d1977ac1 Explicitely specify parameter blocks
Might help windows...?
2019-07-11 11:30:48 +02:00
Sébastien Loriot f1e2bf702c improve code + make sure in tests that halfedges are correctly linked 2019-07-11 09:38:23 +02:00
Mael b8b1989c65
Update macroname
Apparently called MINILOG_MAX_LOG_LEVEL on the installations that matter...
2019-07-10 15:38:51 +02:00
Mael Rouxel-Labbé f019ace14c Remove obsolete code 2019-07-10 08:57:21 +02:00
Mael Rouxel-Labbé eb086c7847 Fix border case of normal computation at a vertex with valence 1 2019-07-09 18:07:11 +02:00
Mael Rouxel-Labbé bfaa4e000d Fix doc warning 2019-07-09 16:45:10 +02:00
Mael Rouxel-Labbé 675cd33dbc Fix some edges not being properly cleaned from the active sets 2019-07-09 16:08:09 +02:00
Mael Rouxel-Labbé 7a9d0ccea8 Add some naive code to remove needles and caps 2019-07-09 15:26:01 +02:00
Mael Rouxel-Labbé 401aea2500 Add new method to compute vertex normals 2019-07-08 15:40:08 +02:00
Mael Rouxel-Labbé 0c8739a16e Re-order convenience overloads to avoid forward declarations in upcoming code 2019-07-08 15:39:33 +02:00
Sébastien Loriot 1c89ca6344 doc update 2019-07-08 14:19:20 +02:00
Mael Rouxel-Labbé 1e9e37bd3c Remove unused template typedef 2019-07-08 09:02:39 +02:00
Mael Rouxel-Labbé efceadd441 Temporarily override the value of MAX_LOG_LEVEL to silence Ceres on Windows
When using minilog, Ceres' Cmake code sets up MAX_LOG_LEVEL, to an annoyingly
high verbosity. We mute it temporarily and restore the value afterwards
in case it's being used by some external code.
2019-07-05 15:19:24 +02:00
Maxime Gimeno 347b180610 Update split_connected_components plugin. 2019-07-04 12:05:41 +02:00
Maxime Gimeno 0989cdd390 Merge remote-tracking branch 'cgal/master' into PMP-Add_split_to_clip-GF 2019-07-04 11:23:20 +02:00
Mael Rouxel-Labbé e61d980173 Silence Ceres when logging is based on minilog and not glog 2019-07-04 10:30:18 +02:00
Sébastien Loriot 8fde95a34c update doc 2019-07-03 17:24:05 +02:00
Sébastien Loriot 363268c33f handle intersecting curves reaching the boundary 2019-07-03 17:16:21 +02:00
Sébastien Loriot 9f14c410b9 fix split (only for the case of closed curves) 2019-07-03 15:50:35 +02:00
Mael Rouxel-Labbé 627f05c9b2 Add missing header 2019-07-03 12:08:30 +02:00
Mael Rouxel-Labbé 4d7192bbd0 Fix MSVC warning 2019-07-03 11:58:27 +02:00
Mael b1eb4c8cdd
Minor documentation rewording 2019-07-02 21:15:52 +02:00
Sébastien Loriot c89b0d4430 improve doc and add missing overload 2019-07-02 17:22:49 +02:00
Maxime Gimeno 9f28c92535 WIP 2019-07-02 13:19:20 +02:00
Maxime Gimeno be3cf6145d use const_types 2019-07-02 11:52:49 +02:00
Maxime Gimeno ee715bca1a Make the PolygonMesh const in split_cc() 2019-07-02 11:32:34 +02:00
Maxime Gimeno 3c14046997 Replace outputiterator 2019-07-02 11:25:01 +02:00
Maxime Gimeno 0684986bd6 Put the splitting part in an internal function 2019-07-02 10:57:28 +02:00
Maxime Gimeno 9f8feddf79 WIP fixed split_connected_components map management. Still failing after a split(). 2019-07-02 10:18:51 +02:00
Maxime Gimeno 031bd91b8d Remove isolated vertices 2019-07-01 16:15:44 +02:00
Maxime Gimeno 0212343669 add doc for split_ccs 2019-07-01 14:48:55 +02:00
Mael Rouxel-Labbé ba8a7175cc Move helper functions for duplicate_nm_vertices to internal namespace 2019-07-01 11:46:05 +02:00
Mael Rouxel-Labbé 2ad648d276 Factorize duplicate_non_manifold_vertices() and non_manifold_vertices() 2019-07-01 11:42:26 +02:00
Mael Rouxel-Labbé be89b9f575 Add a warning about the heavy complexity of 'is_vertex_non_manifold()' 2019-07-01 11:41:59 +02:00
Mael Rouxel-Labbé f68141a6d3 Merge branch 'PMP-Locate-GF-old' into PMP-Locate-GF 2019-07-01 11:28:25 +02:00
Mael f40f8e4190
Merge branch 'master' into PMP-smoothing-kkatrio 2019-07-01 11:24:11 +02:00
Laurent Rineau b18a17eba7 Merge branch 'releases/CGAL-4.14-branch'
# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h
2019-07-01 11:13:42 +02:00
Laurent Rineau 64bc06e2d9 Merge pull request #4032 from sloriot/PMP-coref_invalid_map
Fix copy/paste error
2019-07-01 11:07:29 +02:00
Laurent Rineau 3782c024df Merge branch 'releases/CGAL-4.13-branch' into releases/CGAL-4.14-branch 2019-07-01 11:06:57 +02:00
Mael Rouxel-Labbé c862d2347d Merge branch 'PMP-Add_non_manifold_vertices_collector-GF-old' into PMP-Add_non_manifold_vertices_collector-GF 2019-07-01 11:00:33 +02:00
Maxime Gimeno 99a7a5878e Add ecm management 2019-07-01 10:50:56 +02:00
Mael Rouxel-Labbé b66024f3e8 Try to silence CERES on windows 2019-07-01 09:19:23 +02:00
Mael Rouxel-Labbé b1b55a8995 Fix unused variable warnings 2019-07-01 08:45:35 +02:00
Maxime Gimeno e999183e94 - WIP split_cc() : Ecm management
- WIP split() : TODO: copy_face_graph leads to infinite loop.
2019-06-27 16:07:02 +02:00
Sébastien Loriot df9a63b2b4 update marks on removed edges 2019-06-27 08:44:46 +02:00
Mael Rouxel-Labbé 4d9aa39a90 Remove "warning" in std::cerr to avoid false positive in the testsuite 2019-06-27 08:11:13 +02:00
Mael Rouxel-Labbé ed77935d4f Fix unused warning 2019-06-27 08:09:18 +02:00
Maxime Gimeno ea47ab2259 WIP split_connected_components 2019-06-26 14:22:31 +02:00
Sébastien Loriot c839ed5c5f use variable instead of explicitly constructed value 2019-06-26 13:39:38 +02:00
Sébastien Loriot 7fc66aeec4 readd call removed by error 2019-06-26 13:31:49 +02:00
Maxime Gimeno eb97c83261 Finished basic splitting. WIP clip_volume 2019-06-26 13:05:31 +02:00
Sébastien Loriot 0818afb480 fix the lookup for edge in non-manifold case 2019-06-26 12:05:20 +02:00
Sébastien Loriot e6b2dd8311 check no duplicated nodes are created 2019-06-26 12:05:20 +02:00
Sébastien Loriot 69dc2b4f84 WIP make key canonical despite non-manifold vertices 2019-06-26 12:05:20 +02:00
Sébastien Loriot 0f9d571168 WIP code for coplanar and non-manifold edges 2019-06-26 12:05:20 +02:00
Sébastien Loriot 5d8768c8ac WIP handle intersection on non-manifold vertex 2019-06-26 12:05:20 +02:00
Sébastien Loriot 0c49b60541 WIP handle intersection on non-manifold edge 2019-06-26 12:05:19 +02:00
Sébastien Loriot a903d3585a WIP handle non-manifold edges with edge endpoint on a face 2019-06-26 12:05:19 +02:00
Sébastien Loriot 0e31256379 rename confusing variable 2019-06-26 12:05:19 +02:00
Sébastien Loriot 42bef4e926 WIP backup commit - add non manifold vertices 2019-06-26 12:05:19 +02:00
Sébastien Loriot 2696ee1fac WIP backup commit to be rebased 2019-06-26 12:05:19 +02:00
Sébastien Loriot b536b8a232 use non-manifold edges map to filter intersection of edges and faces 2019-06-26 12:04:03 +02:00
Sébastien Loriot 4e1e7d8c16 fix wrong index 2019-06-26 10:52:48 +02:00
Maxime Gimeno 184922b578 WIP set connectivity 2019-06-25 17:26:21 +02:00
Martin Skrodzki 3c73230272 Finish first working prototype giving correct answer on the toy example. 2019-06-24 23:41:12 +02:00
Mael Rouxel-Labbé b365835970 Remove requirement on EdgeListGraph 2019-06-24 09:04:28 +02:00
Mael Rouxel-Labbé 6f42e4be15 Fix warning 2019-06-24 08:16:01 +02:00
Martin Skrodzki 17b00036a9 Fix typo in vertex lookup. 2019-06-24 04:48:43 +02:00
Martin Skrodzki 68e9776af6 Implement subdivision of a triangle from the candidate set. 2019-06-24 04:43:29 +02:00
Martin Skrodzki 2a523825a7 Implement a non-trivial toy example to test subdivision with. Intended solution is: Hausdorff distance will be attained at Point (0,0,1) and should be sqrt(3). 2019-06-24 03:42:48 +02:00
Martin Skrodzki 7ec6c4ca32 Correct implementation of Culling on second mesh. 2019-06-22 09:02:27 +02:00
Martin Skrodzki 48e159ba3f Store candidate triangles in a set to be processed later. 2019-06-21 22:55:56 +02:00
Mael Rouxel-Labbé 262ef93c8d Remove obsolete header 2019-06-21 13:09:09 +02:00
Martin Skrodzki 6221ebe148 Finish implementation of Culling on B (i.e. TM2) traversal. 2019-06-21 07:22:04 +02:00
Mael Rouxel-Labbé 0d1759e996 Merge branch 'PMP-smoothing-kkatrio-old' into PMP-smoothing-kkatrio 2019-06-20 15:02:32 +02:00
Mael Rouxel-Labbé 7a5486962d Merge branch 'PMP-Locate-GF-old' into PMP-Locate-GF 2019-06-20 14:49:25 +02:00
Laurent Rineau 17add8332e Merge pull request #3903 from MaelRL/PMP-Generalize_keep_largest_CC-GF
PMP: Generalize `keep_large(st)_CCs`
2019-06-20 14:21:14 +02:00
Laurent Rineau 8535a3c03c Merge branch 'releases/CGAL-4.14-branch'
# Conflicts:
#	Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Apollonius_graph_2_impl.h
#	Convex_hull_3/include/CGAL/convex_hull_3.h
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/face_graph_utils.h
#	Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin_cgal_code.cpp
#	Stream_support/include/CGAL/IO/Color.h
2019-06-20 14:20:37 +02:00
Laurent Rineau b0f1f90a4d Merge branch 'releases/CGAL-4.13-branch' into releases/CGAL-4.14-branch 2019-06-20 14:08:25 +02:00
Laurent Rineau 208f788494 Merge pull request #3893 from sloriot/PMP-coref_fix_next_prev
Fix the prev/next pointers after polyline removal
2019-06-20 14:01:25 +02:00
Mael Rouxel-Labbé 7b72fcbf6c Enable passing nb_iter/time step in command line arg
Also nb_iterations is an unsigned int, not a std::size_t
2019-06-20 13:38:21 +02:00
Mael Rouxel-Labbé dcef0011e4 Confirm usage of numeric differenciation in Ceres problem formulation 2019-06-20 13:31:33 +02:00
Mael Rouxel-Labbé cad9a0aaa8 Make things work when Ceres is not available 2019-06-20 13:04:15 +02:00
Mael Rouxel-Labbé 1b53056cbd Precise some preconditions 2019-06-20 10:38:37 +02:00
Martin Skrodzki 453ec1571c Implement vertex (TM1) to triangle (TM2) distance in traversal processing. 2019-06-19 18:47:41 +02:00
Maxime Gimeno 189ece70fd WIP don't use ffg 2019-06-19 16:10:53 +02:00
Mael Rouxel-Labbé e3e50d90de Constrain edges now properly constrain the position of their extremities 2019-06-19 14:39:40 +02:00
Maxime Gimeno 1958e14728 Add a first draw of splitting in clip.h 2019-06-19 12:37:52 +02:00
Mael Rouxel-Labbé 77711e4e71 Merge branch 'PMP-smoothing-kkatrio-old' into PMP-smoothing-kkatrio 2019-06-19 11:34:48 +02:00
Mael Rouxel-Labbé aa6a1907ba Add some verbose if the solver fails 2019-06-19 11:29:01 +02:00
Mael Rouxel-Labbé 3a8a7c1f26 Improve the documentation 2019-06-19 11:07:32 +02:00
Mael Rouxel-Labbé 3b53ce20e3 Rename smooth/smooth_along_curvature_flow to smooth_mesh/shape
Also fix edge protection in the demo
2019-06-19 10:17:26 +02:00
Mael Rouxel-Labbé 22bd8a943b Merge smooth_areas and smooth_angles, rework AABB tree, document everything 2019-06-18 16:02:42 +02:00
Maxime Gimeno 064ef07a77 WIP split() 2019-06-18 16:02:14 +02:00
Mael Rouxel-Labbé 7f6cb0411c Merge branch 'PMP-Locate-GF-old' into PMP-Locate-GF 2019-06-18 08:20:16 +02:00
Martin Skrodzki c76db1e3ab Finish traversal traits of tm1, i.e. finish implementation of CullingOnA. 2019-06-18 07:27:33 +02:00
Martin Skrodzki a4112c4c8b Implement calling of TM2_tree traversal. 2019-06-18 07:01:06 +02:00
Martin Skrodzki d93aa73e7e Pass tm2_tree instance to the traversal of tm1 2019-06-18 06:12:33 +02:00
Mael Rouxel-Labbé 19de8eda04 Merge branch 'PMP-Generalize_keep_largest_CC-GF-old' into PMP-Generalize_keep_largest_CC-GF 2019-06-17 15:18:33 +02:00
Laurent Rineau be0d07d150 Merge pull request #3979 from afabri/CGAL-null_ptr-GF
Replace NULL and Nullptr_t with nullptr and nullptr_t
2019-06-17 14:10:35 +02:00
Laurent Rineau e4353afb13 Merge pull request #3861 from MaelRL/PMP-Add_stitch_boundary_cycle_singular-GF
PMP: Introduce `stitch_boundary_cycle`
2019-06-17 13:54:39 +02:00
Laurent Rineau 21f150dac8 Merge pull request #3932 from janetournois/PMP-add_fallback_for_hole_filling-jtournois
PMP : add fallback to non-Delaunay triangulations for hole filling functions
2019-06-17 13:54:34 +02:00
Laurent Rineau 96912aaa20 Merge branch 'releases/CGAL-4.14-branch' 2019-06-17 13:53:42 +02:00
Laurent Rineau bcef288a63 Merge pull request #3925 from MaelRL/PMP-Fix_repair_PS_swapping-GF
PMP: Fix repair polygon soup bad swaps
2019-06-17 13:51:52 +02:00
Laurent Rineau 19e1dd8c3f Merge pull request #3937 from sloriot/Slicer-fix_default_vpm
Fix default vertex point map
2019-06-17 13:51:38 +02:00
Laurent Rineau 1af9a8030e Merge pull request #3964 from sloriot/PMP-coref_invalid_index
Fix invalid index
2019-06-17 13:51:36 +02:00
Laurent Rineau fd33d13958 Merge pull request #3937 from sloriot/Slicer-fix_default_vpm
Fix default vertex point map
2019-06-17 13:48:12 +02:00
Mael Rouxel-Labbé c11de87552 Manually swap boolean values instead of std::swap() or vector.swap()
MSVC is not happy with std::swap(), Apple is not happy with vector.swap()
2019-06-14 15:43:35 +02:00
Laurent Rineau 67e73c2324 Fix compilation errors 2019-06-13 15:52:43 +02:00
Mael Rouxel-Labbé a6ea4bcf9f Try to make MSVC preview happy about swapping within boolean vectors 2019-06-12 08:39:32 +02:00
Mael Rouxel-Labbé 8a272dd0b9 Fix warning 2019-06-12 08:17:51 +02:00
Mael Rouxel-Labbé 55cede0960 Remove duplicated typedefs
That compiled on my machine, but not on the Fedora testsuites...?
2019-06-10 10:39:34 +02:00
Mael Rouxel-Labbé 6e937b62e4 Fix isolated point removal edge case 2019-06-10 09:59:44 +02:00
Martin Skrodzki 14006623d9 Fixed initialization of local Hausdorff bounds. 2019-06-09 18:26:45 +02:00
Martin Skrodzki 04c84efb3a Add second traversal trait for Hausdorff-based AABB traversal on the second triangle mesh. 2019-06-09 18:08:07 +02:00
Martin Skrodzki a67fa389f5 Add traversal trait for Hausdorff-based AABB traversal on the first triangle mesh. 2019-06-09 17:17:54 +02:00
Mael Rouxel-Labbé 9942669dd1 Make Delaunay flips optional 2019-06-07 16:13:49 +02:00
Mael Rouxel-Labbé d41e400875 If we the mesh is open, we can't scale based on the volume
at least for now, could probably imagine some trick to still do it
2019-06-07 16:12:47 +02:00
Mael Rouxel-Labbé 1aaba3a275 Misc minor changes 2019-06-07 13:54:24 +02:00
Mael Rouxel-Labbé 2ad0e94b55 Confirmed use of _Meyer weights and Gram Schmidt move reprojection
through empirical testing
2019-06-07 12:37:14 +02:00
Mael 7fb3542b2d
Add missing param documentation 2019-06-07 10:35:25 +02:00
Mael Rouxel-Labbé 6c4d873338 Get rid of the explicit curvature flow smoothing scheme
It's just worse all the time anyway
2019-06-07 10:27:21 +02:00
Mael Rouxel-Labbé fa7b662ed3 Clean superfluous std::cout / comments 2019-06-07 10:27:21 +02:00
Mael Rouxel-Labbé 6865dae33d Make some of the weights in PMP/Weights.h actually use the vpmap 2019-06-07 10:27:15 +02:00
Martin Skrodzki c28f0076fa Add detailed comments on the code written so far and merge face processing loop into previous loop. 2019-06-06 09:51:16 +02:00
Mael Rouxel-Labbé aa6ef78eb3 Various fixes/improvements:
- Fix using Delaunay flips after angle smoothing (must be after area smoothing)
- Fix parameter passing to explicit curvature flow formulation
- Use early exits
- Clarify function names
2019-06-05 15:58:24 +02:00
Mael Rouxel-Labbé bd7fd4a91e Clean useless code 2019-06-05 10:39:08 +02:00
Mael Rouxel-Labbé 9bc8c6dfcf Fix smoothing with constraints 2019-06-05 09:39:05 +02:00
Andreas Fabri e2d19b0c8d Replace NULL and Nullptr_t with nullptr and nullptr_t 2019-06-04 23:45:44 +02:00
Mael Rouxel-Labbé 465aacc2f1 Work towards fixing implicit formulation of curvature flow-based shape smoothing
Constrained and border vertices likely still broken
2019-06-04 17:06:08 +02:00
Mael Rouxel-Labbé 7d5f9447a5 Fix explicit formulation of curvature flow-based smoothing 2019-06-04 17:02:32 +02:00
Mael Rouxel-Labbé 737e94676c Code cleaning 2019-06-03 12:22:07 +02:00
Mael Rouxel-Labbé 6e3f2c3510 Factorize smoothers and clean obsolete code 2019-05-29 15:59:50 +02:00
Sébastien Loriot d6ea5870e5 fix copy/paste issue 2019-05-29 11:03:55 +09:00
Mael Rouxel-Labbé a15625ceb0 Use ceres in smooth_areas() and factorize a lot of code with smooth_angles() 2019-05-28 13:06:39 +02:00
Mael Rouxel-Labbé 51fab60def Misc minor changes 2019-05-27 14:51:18 +02:00
Mael Rouxel-Labbé 00cddd0f57 Fix AABB tree type
Can't use face_graph AABB tree because the mesh is modified
2019-05-27 14:49:09 +02:00
Mael Rouxel-Labbé e264ead877 Do not assert if meeting a degenerate face 2019-05-24 13:34:58 +02:00
Mael Rouxel-Labbé cb1d28bf85 Misc cleaning 2019-05-24 13:34:50 +02:00
Mael Rouxel-Labbé 39790a9b1c Use a NP to decide whether to reject moves/projections based on post-move sanity 2019-05-24 13:33:53 +02:00
Mael Rouxel-Labbé 712aa7a99e Use existing kernel/PMP implementations to evaluate angles/aspect ratios 2019-05-24 12:27:17 +02:00
Mael Rouxel-Labbé cfbe885115 Add aspect_ratio() to measure.h
Needs proper testing, proper documentation(, proper name?)
2019-05-24 12:25:55 +02:00
Mael Rouxel-Labbé dbe69b2706 Clean measure.h (cosmetic changes only) 2019-05-24 10:45:33 +02:00
Mael Rouxel-Labbé a7b1da8b05 More fixes to 'smooth_angles()' (fixes to rejection conditions) 2019-05-24 10:32:47 +02:00
Laurent Rineau 5c2df203b4 Merge pull request #3943 from mglisse/Number_types-expression_templates-glisse
Misc fixes for expression templates
2019-05-23 08:50:17 +02:00
Laurent Rineau 419032d859 Merge pull request #3947 from MaelRL/CGAL-Fix_typos-GF
Fix some typos in code/comments/documentation
2019-05-23 08:50:14 +02:00
Laurent Rineau 5dc823d509 Merge branch 'releases/CGAL-4.14-branch' 2019-05-23 08:49:56 +02:00
Martin Skrodzki 9df0d3fc80 Fix initialization of global upper bound, include TODOs for further steps. 2019-05-21 18:30:15 +02:00
Martin Skrodzki 951e4a7f44 Implement first rough approximation. 2019-05-21 17:11:18 +02:00
Mael Rouxel-Labbé 336c1144a2 Fix smooth_angles()
About a complete rewrite due to many bugs (wrong move vector, wrong
gram schmidt algorithm, etc.)

Should also result in a pretty nifty speed up since we avoid recomputing
the same things (angles, incident edgesn etc.)  thrice
2019-05-21 15:26:09 +02:00
Martin Skrodzki 04a05c0db1 Implemented distance computation from mesh_1 vertices to mesh_2 triangles. 2019-05-21 14:00:43 +02:00
Mael Rouxel-Labbé a0ee943881 Misc minor changes 2019-05-21 13:19:14 +02:00
Martin Skrodzki 82e8e4bb46 Initial version of bounded_error_hausdorff method. 2019-05-21 11:56:22 +02:00
Mael Rouxel-Labbé b927780d4d Remove unused function 2019-05-21 11:54:09 +02:00
Mael Rouxel-Labbé 567a9fc611 Move call to 'reserve()' out of a filling loop 2019-05-20 15:47:59 +02:00
Mael Rouxel-Labbé c7278e4ad7 Use std::begin/end 2019-05-20 15:44:42 +02:00
Mael Rouxel-Labbé 414b234cf6 Document "no degen faces" preconditions and check it in the code 2019-05-20 15:44:09 +02:00
Mael Rouxel-Labbé 8a0656435f Rename tparam 'PolygonMesh' to 'TriangleMesh' 2019-05-20 15:43:28 +02:00
Mael Rouxel-Labbé 4ade582173 Fix calling 'reserve' within a loop filling the vector 2019-05-20 15:42:38 +02:00
Mael Rouxel-Labbé e5465dc587 Fix some warnings + code improvements
for(:) loop, pre-increment, don't take const& on light types, etc.
2019-05-20 15:41:43 +02:00
Mael Rouxel-Labbé 2d88e227c9 Fix using invalid facerange ('remove_degen_faces(fr)' and then using 'fr')
Actually, just get rid of the whole remove_degen_faces(). That's the user's
responsability to use a proper, clean input mesh.
2019-05-20 15:37:10 +02:00
Mael Rouxel-Labbé af8e6813ae Fix not using the VPM when building the AABB traits 2019-05-20 15:36:03 +02:00
Sébastien Loriot 7f5fb3d262 remove call to boost function (remove the need of default constructible fid map) 2019-05-20 14:12:23 +02:00
Mael Rouxel-Labbé 69b7ba013a Pass the geomtraits to the smoother 2019-05-20 12:52:06 +02:00
Mael Rouxel-Labbé 69d1b31f26 BOOST_FOREACH(,) > for(:) 2019-05-20 12:51:33 +02:00
Mael Rouxel-Labbé bcec5d8fe4 Cosmetic changes 2019-05-20 12:50:40 +02:00
Laurent Rineau eeb32f50c3
Merge branch 'master' into PMP-Add_stitch_boundary_cycle_singular-GF 2019-05-20 11:55:38 +02:00
Mael Rouxel-Labbé 85ba338518 Add missing 'using' for boost's choose_param() / get_param() 2019-05-20 11:04:15 +02:00
Mael Rouxel-Labbé 2848158354 Fix typos 2019-05-20 08:54:04 +02:00
Marc Glisse a676b75ca0 Misc fixes for expression templates 2019-05-17 19:48:41 +02:00
Sébastien Loriot dd84321f56 be more backward compatible + add typedef for AABB-tree definition 2019-05-17 15:01:46 +02:00
Jane Tournois 53029474e4 document fallback to non-Delaunay search space 2019-05-17 11:24:40 +02:00
Laurent Rineau 703124ca6d remove the unwanted `typename` 2019-05-17 09:58:11 +01:00
Jane Tournois 76e10bfa17 mention fallback in the warning message
consistently with previous commit
2019-05-17 09:58:10 +01:00
Jane Tournois 25898c8a48 in case Delaunay can't find a solution, fallback to general triangulations 2019-05-17 09:58:10 +01:00
Mael Rouxel-Labbé a120290675 Merge branch 'PMP-smoothing-kkatrio-old' into PMP-smoothing-kkatrio 2019-05-15 14:31:00 +02:00
Sébastien Loriot f65cc41e82 add missing default template parameter 2019-05-15 13:00:45 +02:00
Mael c53e7e2c68
Merge branch 'master' into PMP-Locate-GF 2019-05-15 07:59:52 +02:00
Laurent Rineau 90782d4b7f Revert the merge of two pull-requests that target CGAL-4.14-branch
- Revert "Merge pull request #3857 from MaelRL/CGAL-Fix_duplicate_non_manifold_vertices-GF"
- Revert "Merge pull request #3898 from lrineau/Mesh_3-stop_during_protection-lrineau"
2019-05-14 17:50:45 +02:00
Laurent Rineau 423c4fbd11 Merge pull request #3266 from MaelRL/PMP-Snap_boundary-GF
PMP: boundary snapping
2019-05-14 16:48:00 +02:00
Laurent Rineau 47aa42490b Merge pull request #3911 from MaelRL/CGAL-Fix_duplicate_non_manifold_vertices-5.0-GF
PMP: Fix duplicate_non_manifold_vertices() with pinched vertices (5.0)
2019-05-14 16:30:25 +02:00
Laurent Rineau 8dabd25b75 Merge pull request #3857 from MaelRL/CGAL-Fix_duplicate_non_manifold_vertices-GF
PMP: Fix duplicate_non_manifold_vertices() with pinched vertices
2019-05-14 16:26:22 +02:00
Laurent Rineau b839d1defa Merge pull request #3910 from maxGimeno/Polgon_mesh_slicer-Fix_orientation-GF
PMP::Orient polylines of Polgon Mesh Slicer ccw.

# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_slicer.h
2019-05-14 16:25:59 +02:00
Laurent Rineau 5457a6a30b Merge pull request #3857 from MaelRL/CGAL-Fix_duplicate_non_manifold_vertices-GF
PMP: Fix duplicate_non_manifold_vertices() with pinched vertices
2019-05-14 16:18:40 +02:00
Laurent Rineau 8e872081fc Merge pull request #3898 from lrineau/Mesh_3-stop_during_protection-lrineau
Mesh_3 `Protect_edges_sizing_field`: handle the `stop` Boolean

# Conflicts:
#	.travis/build_package.sh
#	Installation/cmake/modules/CGALConfig_binary.cmake.in
#	Installation/cmake/modules/CGALConfig_install.cmake.in
#	Installation/cmake/modules/CGAL_SetupCGAL_CoreDependencies.cmake
#	Installation/lib/cmake/CGAL/CGALConfig.cmake
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_slicer.h
#	Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt
#	Polyhedron/demo/Polyhedron/Plugins/Mesh_3/CMakeLists.txt
2019-05-14 16:18:24 +02:00
Mael Rouxel-Labbé 3e386c9de6 Fix naming consistency 2019-05-14 08:25:13 +02:00
Mael Rouxel-Labbé ba46772096 Minor comment change 2019-05-14 08:17:45 +02:00
Mael Rouxel-Labbé ab137195c6 Fix overly naive swap algorithm in duplicate polygon removal 2019-05-14 08:16:29 +02:00
Laurent Rineau d82109cdac Merge pull request #3910 from maxGimeno/Polgon_mesh_slicer-Fix_orientation-GF
PMP::Orient polylines of Polgon Mesh Slicer ccw.
2019-05-13 17:43:57 +02:00
Mael Rouxel-Labbé 09b1ea231f Fix polygons-to-be-erased ID swapping
Bugged approach would swap away from the polygons-to-be-erased area at the end
of the container
2019-05-13 13:11:47 +02:00
Mael Rouxel-Labbé eae6a294c7 Fix unused point IDs swapping
Bugged approach would swap away from the to-be-erased zones at the back
of the vector
2019-05-13 13:10:27 +02:00
Mael Rouxel-Labbé 55c90f101f Uniformize usages of 'must be' 2019-05-10 12:44:46 +02:00
Mael Rouxel-Labbé 1e9ca61fba Doc fixes 2019-05-10 11:45:49 +02:00
Mael Rouxel-Labbé 33c4c87a90 Actually use the snapping tolerance... 2019-05-08 18:28:27 +02:00
Mael Rouxel-Labbé b1c9c993e2 Be more restrictive on the AABB tree type 2019-05-08 18:21:01 +02:00
Mael Rouxel-Labbé 9664d8f774 Whether coordinate snapping is used or not is now a named parameter 2019-05-08 18:20:32 +02:00
Mael Rouxel-Labbé 4310b898a3 Locate_types > Location_traits (+ uniformize to 'TriangleMesh') 2019-05-08 16:34:50 +02:00
Mael Rouxel-Labbé 15357b83bd Update locate/BGL tests 2019-05-08 16:30:09 +02:00
Mael Rouxel-Labbé e382ed1f1b Improve phrasing 2019-05-08 16:05:57 +02:00
Mael Rouxel-Labbé f14f9ce447 Move some functions from PMP to BGL 2019-05-08 16:05:26 +02:00
Mael Rouxel-Labbé c1fb953480 Rename 'Location_to_point()' to 'construct_point()' 2019-05-08 13:38:55 +02:00
Mael Rouxel-Labbé 2a6409b3af Lock some vertices that shouldn't move in non-conformal snapping
Vertex-vertex snapping can make such that a sequence of points p0 --> p1 --> p2
become p0==p2 --> p1 --> p2 == p0. In this case, we don't want to authorize p1
to move anymore.
2019-05-08 13:34:16 +02:00
Sébastien Loriot c49f173d83 polyline orientation depend on supporting mesh 2019-05-08 10:13:40 +02:00
Maxime Gimeno cfea874cc1 take the right vectors 2019-05-07 11:24:30 +02:00
Maxime Gimeno 962bac73b2 don't test if not closed 2019-05-07 11:12:59 +02:00
Maxime Gimeno a059b7aa38 don't touch polylines <=2 points 2019-05-07 10:52:18 +02:00
Mael Rouxel-Labbé 713f5a2d45 Resolve conflicts between master and 4.14-based branch that fixes manifoldness
Conflicts resulting from the switch to C++11 (BOOST_FOREACH disappearing etc.)
2019-05-07 10:34:16 +02:00
Maxime Gimeno 29ba7a8992 check that there are at least 2 points in the polyline before testing 2019-05-07 10:19:44 +02:00
Maxime Gimeno fe675e87b1 Fix test and update doc. 2019-05-07 09:58:27 +02:00
Maxime Gimeno 0105eefe45 Add a test to detect if the result of the slicer is cw oriented when seen from the positive side of the slice-plane. If it is, reverse the orientation. Add assertions in the test. 2019-05-07 09:40:47 +02:00
Mael 0efaed2095
Merge branch 'master' into PMP-Locate-GF 2019-05-06 15:57:09 +02:00
Mael 21ebdb737c
Merge branch 'master' into PMP-Snap_boundary-GF 2019-05-06 15:53:56 +02:00
Mael Rouxel-Labbé e0842e7a0f Use namespace 'CGAL::experimental::' for functions that will end in CGAL::
Instead of putting everything in internal::
2019-05-06 15:50:22 +02:00
Laurent Rineau b3ace6b60a Merge pull request #3868 from MaelRL/PMP-Local_remove_degeneracies-GF
PMP: Make remove_degenerate_edges/faces work with ranges
2019-05-06 15:44:58 +02:00
Laurent Rineau 6b83d42c69 Merge pull request #3882 from sloriot/PMP-repair_soup_missing_include
Add missing include directive
2019-05-06 15:30:36 +02:00
Mael Rouxel-Labbé a02dba94f8 Fix typos 2019-05-06 11:54:47 +02:00
Mael Rouxel-Labbé 2bc7742980 Continue the Great Fight against entropy (cosmetic changes) 2019-05-06 09:07:56 +02:00
Mael Rouxel-Labbé 4af0254a9a Update reference manual with keep_large(st)_CCs changes 2019-05-06 09:06:27 +02:00
Mael Rouxel-Labbé 46be9eeb5d Generalize keep_large(st)_CCs by adding an option to pass custom face pmaps 2019-05-06 09:05:24 +02:00
Sébastien Loriot 6e31445f62 fix the prev/next pointers after polyline removal 2019-04-30 15:09:36 +02:00
Mael Rouxel-Labbé 5ab413429a Complete PMP::locate's documentation 2019-04-30 14:13:42 +02:00
Mael Rouxel-Labbé c21a47d329 Change some unordered sets to dynamic pmaps in non-manifold related functions 2019-04-30 08:54:13 +02:00
Mael Rouxel-Labbé e183b52f6d Convert to double using CGAL::to_double
Since not every exact number type can just be casted to double like that
2019-04-29 16:08:37 +02:00
Mael Rouxel-Labbé f921dd8a06 Clarify some documentation in PMP::locate::random_location_on_XXX() 2019-04-29 16:02:28 +02:00
Mael Rouxel-Labbé 7bfb434d6f Misc minor fixes for PMP::locate 2019-04-29 13:23:17 +02:00
Mael Rouxel-Labbé 44afd34dee Fixed copyright 2019-04-29 08:29:40 +02:00
Mael Rouxel-Labbé a796a36338 Clean locate.h 2019-04-29 08:29:40 +02:00
Mael Rouxel-Labbé 5cdfd8217c Fixes to PMP::locate() 2019-04-29 08:29:40 +02:00
Sébastien Loriot c14ef91134 add missing include directive 2019-04-26 11:28:05 +02:00
Sébastien Loriot 2b226592b1 add comments 2019-04-26 11:16:44 +02:00
Sébastien Loriot 35a932be2c add an option to preserve the genius while removing null-edges 2019-04-26 11:08:33 +02:00
Sébastien Loriot b00342765b do not expand as soon as we reach a border edge
this would imply a merge of boundary cycles
2019-04-26 10:33:36 +02:00
Mael Rouxel-Labbé dd35fd115f Only sanitize the face range if we are considering the full mesh 2019-04-26 08:58:56 +02:00
Mael Rouxel-Labbé f13e055be9 Reorganize parameter order + Use correct edge range 2019-04-26 08:58:38 +02:00
Sébastien Loriot 564a6c72f4 Merge remote-tracking branch 'cgal/releases/CGAL-4.14-branch' 2019-04-23 10:46:32 +02:00
Mael da02ac7879
Fixed some comments 2019-04-23 10:16:10 +02:00
Sébastien Loriot ca755e35a8 Merge pull request #3599 from maxGimeno/Nef_3-Document_Nef_3_to_Polygon_soup-GF
Nef_3 : Document convert_nef_polyhedron_to_polygon_soup-GF
2019-04-23 09:52:26 +02:00
Sebastien Loriot 0a19fa0690
Merge pull request #3827 from sloriot/BGL_PMP-reserve_call_before_copy
Add calls to reserve before creating meshes
2019-04-23 09:44:31 +02:00
Sebastien Loriot fdc8d79a69
Merge pull request #3843 from sloriot/PMP-speed_orient_soup
Speed-up polygon soup orientation
2019-04-23 09:43:55 +02:00
Mael Rouxel-Labbé 199d76ed22 Gave some breathing room to remove_degenerate_* functions (cosmetic only) 2019-04-19 13:20:01 +02:00
Mael Rouxel-Labbé 6a6a2e8fa0 Added face range overload to remove_degenerate_edges/faces 2019-04-19 13:04:35 +02:00
Mael Rouxel-Labbé 52915956e3 Add PMP/locate.h 2019-04-19 08:39:02 +02:00
Mael Rouxel-Labbé 744ea88319 Some more updates to C++11 (and dynamic pmaps) 2019-04-18 15:18:50 +02:00
Mael Rouxel-Labbé 0a8b6af313 Various minor improvements to PMP::snap()
- c++11
- use simpler new point position
- improved local tolerance computations
- debug info
2019-04-18 14:58:51 +02:00
Sebastien Loriot 3ce10ff394
Doc rephrasing
Co-Authored-By: MaelRL <mael.rouxel.labbe@geometryfactory.com>
2019-04-18 13:44:25 +02:00
Mael Rouxel-Labbé 28a2b3413d Moved stitch_boundary_cycle(s) out of internal and documented it 2019-04-18 13:08:35 +02:00
Mael Rouxel-Labbé 86f9a7a68b Changed the return type of stitch_boundary_cycle(s) to something more sensible 2019-04-18 12:00:46 +02:00
Mael Rouxel-Labbé bca9560b24 Moved 'using boost::...' to the proper function 2019-04-18 11:35:32 +02:00
Mael Rouxel-Labbé 19829e528f cpp11 > std 2019-04-18 09:40:19 +02:00
Mael Rouxel-Labbé 86d9594c07 Extracted a function `stitch_boundary_cycle` from `stitch_boundary_cycles` 2019-04-18 09:34:02 +02:00
Mael Rouxel-Labbé 099d78a99b Added function 'non_manifold_vertices' 2019-04-18 09:22:01 +02:00
Mael Rouxel-Labbé 10080d8142 Fixed duplicate non manifold vertices for pinched vertices 2019-04-17 16:04:21 +02:00
Sébastien Loriot 1a97dcfb8e Merge pull request #3441 from afabri/PMP-centroid-GF
[Small Feature] Add centroid(TriangleMesh) to Polygon Mesh Processing
2019-04-12 15:45:48 +02:00
Sébastien Loriot db65bd8ecc Merge remote-tracking branch 'cgal/releases/CGAL-4.14-branch' 2019-04-11 21:38:48 +02:00
albert-github 1dd7473818 Correction of links
Correction of redirected links and links that moved to another place.
2019-04-11 21:37:05 +02:00
Sébastien Loriot bd955e57d3 fix conversion warnings 2019-04-10 14:28:35 +02:00
Sébastien Loriot 028fcd7b34 add missing include directive 2019-04-10 11:06:26 +02:00
Andreas Fabri 06e6e299ae Remove unused typedef 2019-04-10 09:49:41 +02:00
Sébastien Loriot 07d1601ec9 remove useless (and harmful for the new method) call to clear 2019-04-05 12:17:17 +02:00
Sébastien Loriot f972d0a228 init edge map for is_polygon_mesh_a_polygon_soup 2019-04-05 11:40:47 +02:00
Sébastien Loriot 49f1d2ba1b replace the edge map by a vector of flat_map
it is very efficient since there should not be isolated vertices.
On large data, the runtime of the function is divided by 3 to 4
2019-04-05 11:12:01 +02:00
Sébastien Loriot 9c39f2260f add calls to reserve before creating meshes 2019-04-02 21:54:30 +02:00
Sébastien Loriot 1c119aec44 replace cpp11::unordered_FOO by std::unordered_FOO 2019-03-29 13:28:33 +01:00
Sébastien Loriot 124012d9f9 replace cpp11::array by std::array 2019-03-29 13:28:33 +01:00
Sébastien Loriot f62624c4f9 replace cpp11::tuple by std::tuple 2019-03-29 13:28:33 +01:00
Sébastien Loriot ce126b87c6 remove cpp11::copy_n, cpp11::prev, and cpp11::next and use std instead 2019-03-29 13:28:32 +01:00
Sébastien Loriot d60f5645aa replace BOOST_FOREACH by c++ ranged-based for loop
some of the command used for the replacement:
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\(([a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((const [a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((const typename [a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((typename [<>a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack "boost/foreach.hpp" -l --cpp | xargs sed -i '/boost\/foreach.hpp>/d'
2019-03-29 13:22:15 +01:00
Laurent Rineau 14e93b7fe2 Merge pull request #3794 from maxGimeno/Demo-Fix_off_reading-GF
PMP: Fix in normalize()
2019-03-26 17:01:53 +01:00
Laurent Rineau 4ec173c0e7 Merge pull request #3793 from maxGimeno/Fixes_for_warnings-GF
Fixes for warnings
2019-03-26 16:43:56 +01:00
Maxime Gimeno a508397a58 Don't use ternary operator 2019-03-25 16:06:20 +01:00
Maxime Gimeno 24d5971372 Test that norm != 0 in normalize() 2019-03-25 15:44:20 +01:00
Andreas Fabri a98eb443ea Changes after Sebastien's review 2019-03-25 14:32:34 +01:00
Sebastien Loriot 225fdeac04
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:09:42 +01:00
Sebastien Loriot 15e87ed141
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:09:31 +01:00
Sebastien Loriot 1fb5670bbd
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:09:15 +01:00
Sebastien Loriot 544a23aeb3
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:08:59 +01:00
Sebastien Loriot 31a1e80c07
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:08:48 +01:00
Sebastien Loriot 69061e3c72
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:08:15 +01:00
Sebastien Loriot 43c29bdb17
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:08:05 +01:00
Laurent Rineau 1014687627
Merge pull request #3775 from MaelRL/Doc_fixes-GF
Doc fixes
2019-03-25 12:24:49 +01:00
Maxime Gimeno 801eb23ca3 Fix uninit warning in PMP 2019-03-25 12:09:04 +01:00
Andreas Fabri 92abe26251 cleanup 2019-03-22 11:51:59 +01:00
Andreas Fabri 67774ef07b clean up 2019-03-21 17:20:46 +01:00
Andreas Fabri 33a92901c9 Fix @returns and PackageDescription 2019-03-21 14:05:54 +01:00
Andreas Fabri e758a7ddb0 Correct implementation of centroid of surface mesh 2019-03-21 13:36:30 +01:00
Andreas Fabri 67a4448549 Add result_type 2019-03-21 13:36:30 +01:00
Andreas Fabri 742badf289 Add centroid of a closed triangle mesh 2019-03-21 13:24:20 +01:00
Laurent Rineau 2863e74fb5 Merge pull request #3735 from janetournois/PMP-fix_isotropic_remeshing_with_tiny_constraints-jtournois
PMP : fix isotropic remeshing surviving tiny constraints
2019-03-19 18:30:57 +01:00
Mael Rouxel-Labbé a990164993 Fixed missing backtick 2019-03-15 20:50:24 +01:00
Mael Rouxel-Labbé 6f13a63978 Rephrase intersection doc for clarity 2019-03-15 20:24:50 +01:00
Jane Tournois d137b20acd add checking if (s, p, q) is degenerate 2019-03-12 14:04:36 +01:00
Jane Tournois 0de369dd02 add debug code 2019-03-12 12:17:11 +01:00
Jane Tournois c64bfb8e86 do not construct normals to make the test 2019-03-11 15:18:01 +01:00
Jane Tournois 9cbb6f3785 test inversion only on faces that really need to be tested
and rename function collapse_does_not_invert_face(he) to
collapse_would_invert_face(he) for clarity
2019-03-08 16:22:17 +00:00
Jane Tournois 6f12a4ab6f fix the test ``collapse_does_not_invert_face()`
Testing orientation of normals per patch (identified by their Id) is not a
good solution, because it can happen that we are trying to collapse an edge
that is sharp but which has both of its incident faces on the same surface
patch (wrt ids).

The new test is a lot simpler : for each non-degenerate face of the link of
the edge to be collapsed, simply check if its own normal has changed
orientation or not. The adjacent faces do not need to be taken into account
2019-03-08 16:19:31 +00:00
Jane Tournois 664de7e32e use the new API of `PMP::remove_degenerate_faces()`
If there is no degenerate faces to deal with, i.e. if the function
has nothing to do, it now returns `true`, and not `0` anymore.
This change was introduced by commit e4ad5d96a7
2019-03-07 11:22:41 +01:00
Sébastien Loriot 9040b59cb8 workaround a case when the intersection polyline is not split
the polyline goes from border to interior but the node is
of degree 2 and the polyline is not split

  ***************
  *            *
  *           *
  *          *
 -*---------*-*---
| *           *   |
| *           *   |
| *************   |
|                 |
|                 |
|                 |
|_________________|
2019-03-01 18:06:54 +01:00
Sébastien Loriot a83dac3826 handle non-manifold vertices is patches to be removed
because they are duplicated in interior_vertices
2019-03-01 18:06:08 +01:00
Sébastien Loriot 0f078003c2 also handle non-manifold vertices at isolated nodes 2019-03-01 15:55:16 +01:00
Sébastien Loriot ff01ed7a5f better handling of border non-manifold vertices for the clipping 2019-03-01 14:20:29 +01:00
Laurent Rineau 9f9ae00369 Merge remote-tracking branch 'cgal/releases/CGAL-4.13-branch' 2019-02-22 16:39:48 +01:00
Mael Rouxel-Labbé c3ace2b72c Fixed VPM / Geom traits not propertly passed / used in triangulate_faces 2019-02-21 14:44:16 +01:00
Laurent Rineau fdd8357915
Merge pull request #3580 from afabri/Stream_support-Color-GF
Fix warnings (Add/remove copy constructors, and other warnings)

Co-authored-by: Laurent Rineau <laurent.rineau@cgal.org>
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
Co-authored-by: Maxime GIMENO <maxime.gimeno@gmail.com>
2019-02-13 15:25:07 +00:00
Mael Rouxel-Labbé f1837f2967 Updated documentation with new behavior 2019-02-08 13:37:14 +01:00
Mael Rouxel-Labbé e7ed57d2b5 Added tests for non conformal snapping 2019-02-08 13:02:05 +01:00
Mael Rouxel-Labbé a843d5e249 Fixed output to work with surface meshes other than CGAL::Surface_mesh 2019-02-08 11:12:45 +01:00
Sébastien Loriot 7db3d2604b use only initialized values 2019-02-08 11:05:12 +01:00
Mael Rouxel-Labbé 05c03b5f40 Renamed debug macro 2019-02-08 10:10:01 +01:00
Laurent Rineau 8d12ec9b9c Merge pull request #3637 from sloriot/PMP-doc_bug_fix
fix wrong ref
2019-02-07 13:31:07 +01:00
Sébastien Loriot 6c6244d9b8 Merge pull request #3516 from maxGimeno/Demo-fixes-GF
Polyhedron Demo: Fixes.
2019-01-31 11:41:58 +01:00
Sébastien Loriot 02de899d26 fix wrong ref 2019-01-28 15:17:58 +01:00
Laurent Rineau afc3de2894
Merge branch 'master' into Stream_support-Color-GF 2019-01-23 09:37:08 +01:00
Laurent Rineau 1ca9dbc514
Merge pull request #3596 from maxGimeno/PMP-Make_do_intersect_faster-GF
PMP:: speed up PMP::do_intersect()

Co-authored-by: Sebastien Loriot <sebastien.loriot@cgal.org>
2019-01-22 10:49:59 +01:00
Laurent Rineau 28e520b121 Merge pull request #3594 from sloriot/PMP-remove_null_edges_on_border
Null edges removal fix on the border
2019-01-22 09:15:08 +01:00
Laurent Rineau 6ffd76a87e Merge pull request #2792 from afabri/Intersections_3-Add_missing_do_intersect-GF
Intersections_3:  Add missing do_intersect() overloads
2019-01-18 16:37:54 +01:00
Andreas Fabri 6596ba981c Polygon, Surface_mesher, Nef,.. 2019-01-17 19:35:02 +01:00
Sébastien Loriot 4e308223ad handle non-manifold vertices in a selection + duplicate them prior if allowed 2019-01-17 18:06:25 +01:00
Sébastien Loriot 651c31a179 in case there is a non-manifold vertex, we cannot update the selection 2019-01-17 13:48:30 +01:00
Sébastien Loriot 99bd8c7172 handle non monotonic border while removing a zone of degenerate faces 2019-01-16 18:15:51 +01:00
Sébastien Loriot ef5fe7ffac handle polygon attached by non-manifold vertices 2019-01-16 15:26:06 +01:00
Maxime Gimeno 7a7098d009 Fix doc 2019-01-16 11:23:30 +01:00
Sébastien Loriot e0184766d2 ignore topological issues instead of crashing 2019-01-16 10:13:16 +01:00
Sébastien Loriot 785d0deb46 add missing return 2019-01-16 10:11:43 +01:00
Maxime Gimeno b939551b38 Don't hardcode vector but use a random access container in polygon_soup_to_polygon_mesh. 2019-01-15 12:17:49 +01:00
Sébastien Loriot 656a5a316a fix compilation error + indent + simplify 2019-01-14 17:45:09 +01:00
Sébastien Loriot 3edad4c820 do not use what you deleted 2019-01-14 17:34:43 +01:00
Maxime Gimeno 8ab7e69a5c Test global bbox intersection before creating all bboxes. 2019-01-14 16:03:23 +01:00
Maxime Gimeno 79199281e6 Merge remote-tracking branch 'cgal/master' into Demo-fixes-GF 2019-01-14 09:52:13 +01:00
Sébastien Loriot 68f6a77d63 use dedicated code for removing null border edges + fix that code 2019-01-14 09:12:54 +01:00
Sébastien Loriot 551be55235 Merge remote-tracking branch 'cgal/releases/CGAL-4.13-branch' 2018-12-31 10:29:57 +01:00
Sébastien Loriot 1be277202b Merge remote-tracking branch 'cgal/releases/CGAL-4.12-branch' into HEAD 2018-12-31 10:29:19 +01:00
Sebastien Loriot e828d7a29d
Merge pull request #3558 from sloriot/PMP-bbox_empty_meshZ
Handle empty meshes
2018-12-31 10:22:42 +01:00
Sébastien Loriot fe5c3a77f9 swap the edge too 2018-12-21 09:51:58 +01:00
Laurent Rineau 698c13d973 Merge pull request #3500 from sloriot/PMP-stitching_nm_bug-4.13
Fix for stitching (4.13 and master)
2018-12-19 16:12:01 +01:00
Laurent Rineau 2583258973 Merge pull request #3530 from sloriot/PMP-coref_empty_meshes-4.13
Handle case of empty meshes (4.13+)
2018-12-19 16:06:58 +01:00
Sébastien Loriot 0f0f03e08b handle empty meshes 2018-12-19 16:05:08 +01:00
Laurent Rineau a82bb996ae Merge pull request #3500 from sloriot/PMP-stitching_nm_bug-4.13
Fix for stitching (4.13 and master)
2018-12-19 16:00:24 +01:00
Laurent Rineau b53a562e89 Merge pull request #3499 from sloriot/PMP-stitching_nm_bug
Fix for stitching (4.12)
2018-12-19 15:44:45 +01:00
Mael Rouxel-Labbé db819df72c Improved robustness of non-conformal snapping 2018-12-18 12:25:27 +01:00
Maxime Gimeno ca4a568fa7 Fix Remove Degenerated Faces 2018-12-11 16:16:50 +01:00
Sébastien Loriot fa52560c62 handle case of empty meshes 2018-12-11 07:02:06 +01:00
Sébastien Loriot 8da9e7ceec handle case of empty meshes 2018-12-11 06:44:27 +01:00
Laurent Rineau 8070b01a22 Merge pull request #3472 from sloriot/PMP-fix_clip_on_border
Fix clipping on border edges
2018-12-10 14:38:26 +01:00
Sébastien Loriot 3069612c37 two halfedges with the same target and source points are non-manifold
similar as 44addb1 from 4.12-branch
2018-11-30 10:01:01 +01:00
Sébastien Loriot 44addb1f83 two halfedges with the same target and source points are non-manifold 2018-11-30 09:56:33 +01:00
Sébastien Loriot ae9659539e simplify type 2018-11-22 16:58:13 +01:00
Sébastien Loriot 78e375f15c add a special handling for degenerate faces on the border 2018-11-22 16:14:18 +01:00
Sébastien Loriot 293f54dc25 no need to consider polylines to skip
they are not really used in remove_used_polylines
and a polyline might be written as to skip while
only a portion is (if the dangling part is the
one edge per polyline)
2018-11-22 14:08:20 +01:00
Sébastien Loriot f070af9a70 workaround when interseciont polyline goes to the border 2018-11-22 13:38:31 +01:00
Sébastien Loriot 0ecbdbea4b handle case when clipping plane hit an extended bbox corner 2018-11-20 13:10:14 +01:00
Sébastien Loriot 7d19fe6940 be more robust in case of tangency 2018-11-20 10:50:32 +01:00
Sébastien Loriot 0c33bf461f register vertex -> node_id upon creation
The former method relied on intersection edges
which did not have isolated vertices
2018-11-20 10:41:37 +01:00
Sébastien Loriot 6f5ba0ddfa handle clipping with clipper on border edge 2018-11-19 14:26:05 +01:00
Mael 49033c14ad
Merge branch 'master' into PMP-Snap_boundary-GF 2018-11-13 22:38:58 +01:00
Sébastien Loriot 54381db68a fix -Wmaybe-uninitialized warnings 2018-11-12 19:27:53 +01:00
Sébastien Loriot 018652517b Merge remote-tracking branch 'cgal/releases/CGAL-4.13-branch' 2018-11-12 10:08:29 +01:00
Sébastien Loriot 089377d238 Merge remote-tracking branch 'cgal/releases/CGAL-4.12-branch' into HEAD 2018-11-12 10:07:27 +01:00
Sébastien Loriot 65f386b7a3 use the vertex point map provided and not the default one 2018-11-08 14:23:28 +01:00
Sébastien Loriot 3e46680513 use the true name parameter type 2018-11-08 14:22:59 +01:00
Sébastien Loriot a51a153c31 fix when bbox has a 0-width + update testsuite 2018-11-06 10:56:04 +01:00
Sébastien Loriot 8a27676102 handle case of a non closed intersection polyline 2018-11-06 10:27:30 +01:00
Sébastien Loriot 6b8a36ba0c update clipping code for surface case and use Face_graph_output_builder
This fixes a bug when a patch with no input vertex must be
classified wrt the clipper
2018-11-05 16:26:33 +01:00
Sébastien Loriot 0685423ae8 update from cgal/master 2018-11-02 11:32:31 +01:00
Sébastien Loriot d940632471 Merge pull request #3258 from MaelRL/PMP-Filter_degenerate_polygon_soup_input-GF
PMP: repair polygon soup
2018-11-02 10:37:58 +01:00
Sébastien Loriot a7f08e5172 Merge remote-tracking branch 'cgal/releases/CGAL-4.13-branch' 2018-10-30 16:06:22 +01:00
Sébastien Loriot 9eb521d4d7 Merge pull request #3429 from sloriot/PMP-remove_deg_edges_iterative
Make the degenerate edge removal an iterative process
2018-10-30 15:59:47 +01:00
Sébastien Loriot cdbe19b480 Merge pull request #3369 from maxGimeno/AABB_tree-AABB_transformed_traits-GF
[Small Feature] Add collision detection in PMP
2018-10-30 15:49:38 +01:00
Sébastien Loriot 3be4dd02f5 make the edge removal an iterative process
an edge impossible to remove might be removable
following some degenerate edges removal
2018-10-29 17:39:48 +01:00
Sébastien Loriot 5dad6f0c71 take into account clipper orientation to clip open meshes 2018-10-29 15:04:06 +01:00
Laurent Rineau d9851eaebe Merge pull request #3407 from MaelRL/PMP-Fix_do_intersect_look_up_error
PMP: Fix look-up error
2018-10-29 10:42:35 +01:00
Laurent Rineau 821f9c015e Merge pull request #3311 from sloriot/Doc-Pkg_link_name
Update the name of package names reference links
2018-10-29 10:27:53 +01:00
Laurent Rineau e54ae0ac83 Merge pull request #3262 from MaelRL/PMP-stitch_closed_cycles-GF
PMP: stitch boundary cycles
2018-10-29 10:27:43 +01:00
Laurent Rineau c7592752bf Merge pull request #3407 from MaelRL/PMP-Fix_do_intersect_look_up_error
PMP: Fix look-up error
2018-10-29 10:27:39 +01:00
Laurent Rineau e54b036516 Merge pull request #3379 from lrineau/Mesh_3-fix_Index-GF
Mesh_3: Allow `Subdomain_index` to be `short`
2018-10-29 10:27:33 +01:00
Sébastien Loriot 10fd5a6e0c clear points per cc after removal + avoid useless resize 2018-10-26 09:46:01 +02:00
Sébastien Loriot 80643061af add missing call to build+fix to use the right traits 2018-10-25 13:45:57 +02:00
Sébastien Loriot b6beabc470 doc clean up 2018-10-24 09:54:56 +02:00
Sébastien Loriot 138cd72d6a add a more complete test 2018-10-24 09:22:43 +02:00
Mael Rouxel-Labbé 9db614a968 First draft of non-conforming stitching 2018-10-23 10:28:39 +02:00
Sébastien Loriot e777cd7c40 Add documentation and missing error code 2018-10-22 18:23:41 +02:00
Sébastien Loriot 53a5bbbedc add named parameters to export error codes and nesting info 2018-10-19 23:05:13 +02:00
Mael Rouxel-Labbé 5ab34f4c8c Specified namespace to avoid look-up errors 2018-10-16 08:43:10 +02:00
Sébastien Loriot 4294b71dfb add missing convenience function 2018-10-15 17:21:47 +02:00
Sébastien Loriot e9ad187120 update TODOs 2018-10-12 19:34:48 +02:00
Sébastien Loriot 2fc04a7d27 add a vector with error codes 2018-10-12 19:33:29 +02:00
Sébastien Loriot 8c10366486 add named parameters for orientation and SI tests 2018-10-12 19:17:54 +02:00
Sébastien Loriot 3ed49ec40a handle outward orientation at level 0 and inconsitent orientation 2018-10-12 19:00:53 +02:00
Sébastien Loriot 74b5352cd8 Handle intersections between CCs 2018-10-12 18:32:57 +02:00
Sébastien Loriot 8a1922e2b4 compute the direct parent of each surface cc in the nesting hierarchy 2018-10-12 08:27:08 +02:00
Sébastien Loriot 11e21bd6f9 handle inconsistant orientation of cc 2018-10-12 08:17:59 +02:00
Sébastien Loriot b3a9d5fb96 use connected volume for the segmentation 2018-10-11 18:10:28 +02:00
Sébastien Loriot a1bcbd4beb add missing include directive 2018-10-11 15:15:12 +02:00
Mael Rouxel-Labbé 4ed5958538 Merge branch 'PMP-stitch_closed_cycles-GF-old' into PMP-stitch_closed_cycles-GF 2018-10-11 09:38:41 +02:00
Sébastien Loriot 71175e13bd naming convention 2018-10-09 10:29:20 +02:00
Sébastien Loriot 2c8b44e144 update doc after review 2018-10-09 10:29:20 +02:00
Sébastien Loriot 5154022dc0 simply API and update doc 2018-10-09 10:29:20 +02:00
Sébastien Loriot fcc99af1eb fix typo and clean-up 2018-10-09 10:28:45 +02:00
Sébastien Loriot e868d87507 remove_mesh no longer invalidate mesh ids 2018-10-09 10:28:45 +02:00
Sébastien Loriot 241d088b5a update after review of @maxGimeno 2018-10-09 10:28:45 +02:00
Sébastien Loriot c3943386bc rename main class 2018-10-09 10:28:45 +02:00
Sébastien Loriot 51cb7410e2 add document and clean-up API 2018-10-09 10:28:45 +02:00
Sébastien Loriot d41a931e11 readd destructor removed by error 2018-10-09 10:28:45 +02:00
Sébastien Loriot f6d14a78b3 get rid of thread safety issue by copying the traversal traits 2018-10-09 10:28:45 +02:00
Sébastien Loriot 649c75c272 factorise intersection code + fix constness 2018-10-09 10:28:45 +02:00
Sébastien Loriot 74c8eaec29 use named parameters
I removed the constructor from a range of meshes as it is complicated to
specify a range of vertex point map.
2018-10-09 10:28:44 +02:00
Sébastien Loriot a2491fe07c really use one point per CC 2018-10-09 10:28:44 +02:00
Sébastien Loriot 2b350e71e1 use vpm 2018-10-09 10:28:44 +02:00
Sébastien Loriot f8722ef3be update implementation of get_all_intersections to use the traversal traits 2018-10-09 10:28:44 +02:00
Sébastien Loriot d206112f01 add vertex point map as parameter 2018-10-09 10:28:44 +02:00
Sébastien Loriot a1ea22b27e rename macro 2018-10-09 10:28:44 +02:00
Sébastien Loriot ab4759a5f2 add AABB-tree as a template parameter 2018-10-09 10:28:44 +02:00
Sébastien Loriot 5af3523420 add the possibility to use an existing AABB-tree 2018-10-09 10:28:44 +02:00
Sébastien Loriot 84e2d4a97b rename header 2018-10-09 10:28:44 +02:00
Sébastien Loriot df15af614d use a traversal traits instead of a pseudo model of AABBTraits 2018-10-09 10:28:44 +02:00
Sébastien Loriot d7e7c74782 fix inclusion test 2018-10-09 10:28:44 +02:00
Sébastien Loriot 773413985a handle meshes with several CC for inclusion 2018-10-09 10:28:44 +02:00
Sébastien Loriot 7f65916f54 add the possibility to specify with which models to do the intersection test 2018-10-09 10:28:44 +02:00
Sébastien Loriot af39d7f2d2 delete the tree when removing a mesh 2018-10-09 10:28:44 +02:00
Sébastien Loriot 5f50f5d7e9 add protector and API without deformation
I added a bitset to avoid changing the rounding-mode too often
2018-10-09 10:28:44 +02:00
Sébastien Loriot beaded520d add missing protectors and clean-up 2018-10-09 10:28:43 +02:00
Maxime Gimeno 939e14561f clean-up 2018-10-09 10:28:43 +02:00
Maxime Gimeno 7a3c441489 Fix plugin and WIP make precompute boxes 2018-10-09 10:28:43 +02:00
Maxime Gimeno 2013885eb4 WIP fix plugin 2018-10-09 10:28:43 +02:00
Maxime Gimeno 19f11b861a WIP use box_intersection_d 2018-10-09 10:28:43 +02:00
Sébastien Loriot aff9f5be40 simplify 2018-10-09 10:28:43 +02:00
Sébastien Loriot 7220e43e07 fix condition + clean up 2018-10-09 10:28:43 +02:00
Maxime Gimeno dd78147d3a Add if test for optimisation if SUPPORTS_ROTATION is Tag_true; 2018-10-09 10:28:43 +02:00
Maxime Gimeno 89e3c69db0 Add a Tag to specify a no_rotation case, which calls a faster transform_bbox() function 2018-10-09 10:28:43 +02:00
Sébastien Loriot f77725882b use Interval_nt_advanced with protectors 2018-10-09 10:28:43 +02:00
Maxime Gimeno 3e2d61e29d Move traits in PMP/internal 2018-10-09 10:28:43 +02:00
Maxime Gimeno 9522c02639 Add remove_mesh() 2018-10-09 10:28:43 +02:00
Maxime Gimeno 7da9adfa90 Addadd_mesh() to the class. 2018-10-09 10:28:43 +02:00
Maxime Gimeno d2e58526a7 Use Rigid_mesh_intersection and make it work for n items. 2018-10-09 10:28:43 +02:00
Sébastien Loriot e179770aab add skeleton for collision detection in PMP 2018-10-09 10:28:43 +02:00
Sébastien Loriot bdb4ddeada hide direct usage of bounding boxes behind free functions 2018-10-09 10:28:42 +02:00
Mael Rouxel-Labbé d18e21cfe7 Merge branch 'PMP-Filter_degenerate_polygon_soup_input-GF-old' into PMP-Filter_degenerate_polygon_soup_input-GF 2018-10-08 16:19:26 +02:00
Sébastien Loriot 3dd0aa112d rename macro not following the convention 2018-10-08 10:28:55 +02:00
Sébastien Loriot ea240cfac5 use \PkgXXX instead of \PkgXXXSummary 2018-10-08 10:28:44 +02:00
Sébastien Loriot a2e8a1c68f add the suffix Ref to doxygen link to reference 2018-10-08 10:26:56 +02:00
Laurent Rineau d82cdbcff1 Mesh_3: Allow `Subdomain_index` to be `short`
... That forced me to modify the `Index` of domains with features.
2018-10-05 17:02:38 +02:00
Sébastien Loriot 5db832d002 first version of the code to split into volume 2018-10-05 15:20:33 +02:00
Sébastien Loriot 74fdcb92f1 move does_bound_a_volume() to orientation 2018-10-05 09:07:40 +02:00
Mael Rouxel-Labbé 1676cd7405 Merge branch 'repair_functions-old' into repair_functions 2018-09-17 15:10:39 +02:00
Mael Rouxel-Labbé f5d7fe6f9a Simplified traits requirements 2018-09-11 17:12:10 +02:00
Mael Rouxel-Labbé 208eebe9f9 Fixed doc 2018-09-11 17:11:34 +02:00
Mael Rouxel-Labbé 1719b94f76 minor (re-)indentation fix 2018-09-11 15:59:18 +02:00
Mael Rouxel-Labbé 33050eff79 Generalized snap() to vertex ranges 2018-09-11 15:40:15 +02:00
Sébastien Loriot 7017a26d35 update conditions 2018-09-06 16:50:43 +02:00
Sébastien Loriot e4ad5d96a7 start adding support for open meshes 2018-09-06 16:50:43 +02:00
Sébastien Loriot 6a885796bc do not test the whole mesh, only the current face 2018-09-06 16:50:43 +02:00
Mael Rouxel-Labbé a35506cfe0 Removed useless struct member 2018-09-04 15:33:29 +02:00
Mael Rouxel-Labbé 6d01f4f951 Snap what is snappable rather than rejecting everything 2018-09-04 15:30:52 +02:00
Mael Rouxel-Labbé a618c94dbd Removed tolerance map from named parameters 2018-09-03 18:37:06 +02:00
Mael Rouxel-Labbé 8cb8102cfc Fixed not incrementing index 2018-09-03 16:35:02 +02:00
Mael Rouxel-Labbé 72422ca498 Replaced ::max() (to avoid issues with NTs that do not have a max value) 2018-08-28 12:05:30 +02:00
Sébastien Loriot 458d2cc6cf be more permissive for collapsing constrained edges
the only non-collapsable constrained edges are those with
both endpoints being explicitly constrained vertices or
corners
2018-08-20 17:24:28 +02:00
Sébastien Loriot 19c99923b2 fix typo that was preventing from building the doc 2018-08-17 17:09:20 +02:00
Mael Rouxel-Labbé 979456be47 Fixed typo 2018-08-17 16:33:11 +02:00
Mael Rouxel-Labbé 781708e942 Replaced call to stitch_boundary_cycle_2 by the stronger version 2018-08-17 16:30:03 +02:00
Mael Rouxel-Labbé ab9b0479b3 Removed unnecessary 'do_' in named parameters 2018-08-17 15:32:26 +02:00
Mael Rouxel-Labbé 7b740e9561 Fixed 'is_non_manifold_vertex'
A pinched vertex is not manifold
2018-08-17 10:44:35 +02:00
Sébastien Loriot 89df0d977f typo and indicate that the cycle is a boundary cycle 2018-08-16 16:55:49 +02:00
Mael Rouxel-Labbé f93c18afa0 Fixed using max() with GMP 2018-08-14 14:30:59 +02:00
Mael Rouxel-Labbé f30c89c40f Added some missing includes 2018-08-07 09:12:49 +02:00
Mael Rouxel-Labbé 20984e1042 Modified comment to avoid using '\' 2018-08-07 08:56:23 +02:00
Mael Rouxel-Labbé 56642a96ff Replaced dynamic property map with an unordered set 2018-08-03 15:10:01 +02:00
Mael Rouxel-Labbé 46bd7dc832 Merge branch 'PMP-Filter_degenerate_polygon_soup_input-GF-old' into PMP-Filter_degenerate_polygon_soup_input-GF 2018-08-03 09:34:15 +02:00
Mael Rouxel-Labbé 94108a44fe Fixed lonely function call 2018-08-01 15:13:25 +02:00
Mael Rouxel-Labbé 2ecb8c50d2 Improved repair polygon soup verbosity granularity 2018-08-01 15:10:39 +02:00
Mael Rouxel-Labbé 21873890a2 Fixed concept name 2018-08-01 08:45:18 +02:00
Mael Rouxel-Labbé 0aabaf3025 Added some functions to snap mesh borders onto another mesh 2018-08-01 08:44:30 +02:00
Mael Rouxel-Labbé 7e17f5f8d6 Cleaned extra verbose 2018-07-31 08:28:38 +02:00
Mael Rouxel-Labbé 768c5212c2 Try to stitch halfedges within each border before more complex approaches 2018-07-30 18:08:22 +02:00
Mael Rouxel-Labbé d1334ade3c Added a function to try and stitch stitchable halfedges within the same border 2018-07-30 18:07:54 +02:00
Mael Rouxel-Labbé 5a8d6c67e8 Merge branch 'repair_functions-old' into repair_functions 2018-07-30 15:53:37 +02:00
Mael Rouxel-Labbé f58247d8df Added missing quotes 2018-07-30 15:48:20 +02:00
Mael Rouxel-Labbé b9325608b3 Misc minor doc fixes 2018-07-30 13:08:50 +02:00
Mael Rouxel-Labbé 4e31832136 Added a function to detect and merge duplicate faces 2018-07-30 13:08:16 +02:00
Mael Rouxel-Labbé 007a466b8e Added a function to merge duplicate vertices 2018-07-26 18:32:22 +02:00
Mael Rouxel-Labbé e6a04b1fa2 Misc minor changes 2018-07-26 18:26:11 +02:00
Mael Rouxel-Labbé 4ce664a5af Minor doc change 2018-07-26 16:54:50 +02:00
Mael Rouxel-Labbé 6d88f053b5 Added 'additional' 2018-07-26 16:31:11 +02:00
Mael Rouxel-Labbé ed6ebae2de Added repair_polygon_soup.h 2018-07-26 16:30:28 +02:00
Mael Rouxel-Labbé 1765ae106b Added new headers to pmp.h 2018-07-26 15:49:48 +02:00
Sébastien Loriot 168d684ef1 Merge pull request #3255 from sloriot/PMP-rm_unused_file
Remove unused file
2018-07-25 18:57:15 +02:00
Sébastien Loriot d05df530b3 Merge pull request #2658 from MaelRL/Periodic_3_mesh_3-Feature-MBogdanov
Periodic_3_mesh_3, new package
2018-07-25 18:55:12 +02:00
Sébastien Loriot 3f9e22994c Merge pull request #3252 from sloriot/PMP-autorefine_bugfixes
Autorefine bug-fix
2018-07-25 18:53:57 +02:00
Sébastien Loriot 302cebf325 check iterator is valid before dereferencing it 2018-07-25 17:04:40 +02:00
Mael Rouxel-Labbé 789d416f21 Moved 'merge_vertices_in_range' to internal namespace and undocumented it 2018-07-25 11:33:44 +02:00
Mael Rouxel-Labbé a4d825f144 Misc minor changes 2018-07-25 11:29:25 +02:00
Mael Rouxel-Labbé 0417bb88d7 Hide "remove_degenerate_faces" 2018-07-25 10:53:30 +02:00
Mael Rouxel-Labbé e6d1977f73 Updated documentation 2018-07-24 18:08:05 +02:00
Sébastien Loriot d8518d5c80 remove unused file 2018-07-24 13:18:06 +02:00
Mael Rouxel-Labbé 16e64caf65 Handle degenerate edges in 'is_cap_triangle_face' 2018-07-24 11:20:04 +02:00
Mael Rouxel-Labbé d56c12c738 Handle degenerate edges in 'is_needle_triangle_face' 2018-07-24 11:14:47 +02:00
Mael Rouxel-Labbé 072b2376b8 Merge branch 'repair_functions-old' into repair_functions 2018-07-23 17:59:43 +02:00
Mael Rouxel-Labbé 5db403ae34 Fixed indentation 2018-07-23 17:44:04 +02:00
Mael Rouxel-Labbé 9bf6c331b9 Moved extract_boundary_cycles to border.h 2018-07-23 17:42:11 +02:00
Mael Rouxel-Labbé 3d0c0d48d4 Minor doc changes 2018-07-23 17:28:36 +02:00
Sébastien Loriot da76851f75 handle special case when intersection segments shares a common endpoint 2018-07-23 17:13:58 +02:00
Mael Rouxel-Labbé 018195d15d Documented 'degenerate_faces' and add 'degenerate_edges' 2018-07-23 17:10:14 +02:00
Mael Rouxel-Labbé 31609f2002 Renamed function and removed obsolete code 2018-07-23 16:31:51 +02:00
Mael Rouxel-Labbé e3da86cff3 Renamed removed_(null-->degenerate)_edges() for consistency 2018-07-23 16:07:33 +02:00
Mael Rouxel-Labbé a9897111c4 Reorganized the new functions 2018-07-23 12:14:33 +02:00
Mael Rouxel-Labbé 614f80694c Removed obsolete code about merging duplicated boundary vertices 2018-07-23 11:36:15 +02:00
Mael Rouxel-Labbé 49a971e9c2 Various improvements/fixes to degenerate/needle/cap functions 2018-07-23 11:30:12 +02:00
Mael Rouxel-Labbé 3b9464f549 Replaced No_constraint_pmap with Constant_property_map 2018-07-19 17:05:07 +02:00
Mael Rouxel-Labbé 758104c189 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-07-18 17:42:23 +02:00
Sébastien Loriot 3a3bfcfd09 do not build the kd-tree twice
build() will trigger the computation of the kd-tree if it was already built
2018-07-17 14:31:53 +02:00
Laurent Rineau 3ab9482910 Merge branch 'releases/CGAL-4.12-branch' 2018-07-12 11:37:49 +02:00
Laurent Rineau c63a7c77e5 Merge pull request #3214 from sloriot/PMP-autorefine_identical_points
Make sure identical vertices have identical coordinates in autorefinement
2018-07-12 11:32:49 +02:00
Laurent Rineau 72f0c4af95
Fix the obvious bug 2018-07-10 13:47:40 +00:00
Sébastien Loriot 1d923e2253 register all vertices for autorefinement
this is useful to guarantee that the final floating point coordinates
are identical
2018-07-09 16:41:46 +02:00
Sébastien Loriot ba8356c0a5 do not delete twice a vertex in case it was already updated 2018-07-09 11:22:19 +02:00
Mael 74e569db86 Merge branch 'master' into Periodic_3_mesh_3-Feature-MBogdanov 2018-07-04 16:55:30 +02:00
Laurent Rineau 20959db103 Merge pull request #3062 from maxGimeno/BGL-Copy_face_graph_use_np-GF
BGL: copy_face_graph() with NamedParameters
2018-07-04 16:49:54 +02:00
Laurent Rineau a2c30daa17 Merge pull request #3106 from maxGimeno/PMP-Extrude-GF
PMP: extrude_mesh()
2018-07-04 16:49:48 +02:00
Sébastien Loriot aed0cb1834 remove extra comma 2018-07-03 15:47:35 +02:00
Konstantinos Katrioplas b51fa000a4 documentation on merge border vertices functions 2018-07-03 15:39:26 +02:00
Sébastien Loriot ee3636d57e directly sort halfedges and use the ordering to detect illegal merges
a merge is considered as illegal if it makes to vertices
to be merged unreachable. For now if a cycle contain an illegal
merge, all merges of the cycle are ignored.
2018-07-03 15:38:58 +02:00
Sébastien Loriot 99db9a0aaf WIP correctly linking halfedges around merged vertices ...
also disable the merge between cycles as it is not straight forward
it will be always possible
2018-07-03 15:38:58 +02:00
Konstantinos Katrioplas 032ee2828a named parameters for duplicate non-manifold vertices 2018-07-03 15:38:57 +02:00
Konstantinos Katrioplas c6afed86a3 use cosine for threshold on needles and caps 2018-07-03 15:37:20 +02:00
Konstantinos Katrioplas 71041e0376 replace is_degenerate_triangle_face predicate with new version from PMP helpers 2018-07-03 15:37:20 +02:00
Konstantinos Katrioplas 63f49b7fcc move predicates to helper.h and seperate test file 2018-07-03 15:37:20 +02:00
Konstantinos Katrioplas 903df8106a corrections after the review 2018-07-03 15:37:20 +02:00
Sébastien Loriot e6ffc5f505 remove incorrect optimisation 2018-07-03 15:37:16 +02:00
Sébastien Loriot fe407a701f add a function to merge vertices globally 2018-07-03 15:37:16 +02:00
Sébastien Loriot 0830c7a112 add missing overload 2018-07-03 15:37:16 +02:00
Sébastien Loriot e1f0740b53 rename header and test file 2018-07-03 15:37:16 +02:00
Sébastien Loriot af65760475 rewrite boundary cycle merging 2018-07-03 15:37:16 +02:00
Konstantinos Katrioplas c79add2c6a merge vertices, tests & data 2018-07-03 15:37:16 +02:00
Konstantinos Katrioplas 1f0628fad2 is needle andcap functions 2018-07-03 15:36:50 +02:00
Konstantinos Katrioplas c3e7f6d94b is_non_manifold_vertex function 2018-07-03 15:36:50 +02:00
Konstantinos Katrioplas 9f315abad6 duplicate_vertices function doc 2018-07-03 15:36:50 +02:00
Konstantinos Katrioplas 8e285cb1a7 is_degenerate_triangle_face function 2018-07-03 15:36:50 +02:00
Konstantinos Katrioplas 0db8941e0a is_degenerate_edge function 2018-07-03 15:36:50 +02:00
konstantinos katrioplas 9901ed78ef Merge branch 'master' into PMP-smoothing 2018-07-01 20:07:19 +03:00
konstantinos katrioplas 0b1f581df5 avoid re-projection when there are self-intersections 2018-07-01 19:26:08 +03:00
Maxime Gimeno a584af827b Fix Conflicts 2018-06-29 18:21:24 +02:00
Mael Rouxel-Labbé fd076c3c6d Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-06-28 16:25:54 +02:00
Laurent Rineau 2d9000efde Merge pull request #3111 from sloriot/PMP-coref_preserve_face_attributes
Add a visitor to track the creation of faces in corefinement functions
2018-06-28 16:09:37 +02:00
Sébastien Loriot 1d59e0a350 add missing include directives 2018-06-27 17:07:13 +02:00
Sébastien Loriot af8395585e use const functors 2018-06-27 17:02:42 +02:00
Laurent Rineau 10a84aa34e Merge branch 'master' into Periodic_3_mesh_3-Feature-MBogdanov 2018-06-27 10:33:24 +02:00