Commit Graph

2016 Commits

Author SHA1 Message Date
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
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
Mael Rouxel-Labbé 9db614a968 First draft of non-conforming stitching 2018-10-23 10:28:39 +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 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