Commit Graph

3031 Commits

Author SHA1 Message Date
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
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
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
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
Mael Rouxel-Labbé a0ee943881 Misc minor changes 2019-05-21 13:19:14 +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
Sébastien Loriot 6d89662e2a use need API + add missing overload 2018-06-26 00:17:30 +02:00
Jane Tournois e1ea454328 fix conversion warnings and extra typename
windows errors
2018-06-22 12:16:33 +02:00
Maxime Gimeno 803e5e6717 add missing boost:: 2018-06-22 10:32:23 +02:00
Sébastien Loriot 627c660f0a initialize map 2018-06-21 15:25:37 +02:00
Sébastien Loriot a609ae3223 fix warnings 2018-06-21 14:41:00 +02:00
Laurent Rineau b44ad18983
Merge branch 'master' into PMP-stitch_after_orient-GF 2018-06-21 12:31:26 +02:00
Sébastien Loriot 0abfba8ac0 Update branch 'PMP-coref_preserve_face_attributes' from master@5ceb529d0f 2018-06-21 10:53:59 +02:00
Mael Rouxel-Labbé 7490f34560 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-06-21 10:15:25 +02:00
Laurent Rineau b08fb6c4ed Merge pull request #3069 from sloriot/PMP-isotropic_remeshing_user_projection
Fix constrained edge map update and add user projection functor as input
2018-06-20 17:21:10 +02:00
Maxime Gimeno f7807b3d5c fix warning 2018-06-20 10:23:44 +02:00
Maxime GIMENO e54d577b59
Merge branch 'master' into PMP-Extrude-GF 2018-06-20 08:50:03 +02:00
Maxime Gimeno c7a681f968 Fix doc 2018-06-20 08:45:51 +02:00
Sébastien Loriot f7241be70a fix test on the shortness of protect edges
since ecm was updated to only contain real constrained edges (and no additional
patch border edges), we use connected component patch map to identify them
2018-06-18 10:08:52 +02:00
Laurent Rineau 20ba8216b8 Merge pull request #3163 from sloriot/PMP-missing_transform_overload
Add missing overload for PMP::transform
2018-06-14 17:36:40 +02:00
Maxime Gimeno 1d4b1f9183 Merge master to solve conflicts 2018-06-13 09:48:07 +02:00
Mael Rouxel-Labbé 340e5d3b5a Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-06-12 23:29:43 +02:00
Laurent Rineau 16c581fb4b Merge pull request #3145 from afabri/PMP-should-GF
Polygon_mesh_processing: Change should  to must/shall
2018-06-12 16:38:24 +02:00
Sébastien Loriot 8ccc2af157 add missing overload 2018-06-11 22:04:24 +02:00
Konstantinos Katrioplas f53d60417d improve testing, fix mesh smoothing on selection of faces, clean up 2018-06-11 13:22:12 +02:00
Konstantinos Katrioplas 763132d79b rm unnecessary degenerate cases check 2018-06-08 15:40:41 +02:00
Konstantinos Katrioplas 6cb1dbe4d4 small corrections on docs and test files 2018-06-08 12:36:13 +02:00
Sébastien Loriot 895dbaad73 fix merge of status after the usage of ecm in collapse_edge
ep and epo are no longer guarantee to be the halfedges to be removed
2018-06-07 17:35:29 +02:00
Sébastien Loriot 117b1d810a work around issue with boost::size in boost 1.55
improve at the same time the runtime in cases
we could also have a lazy version for non-random access iterators
2018-06-07 15:14:20 +02:00
Mael Rouxel-Labbé ddeb4c0cd7 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-06-07 15:14:19 +02:00
Konstantinos Katrioplas 974469a506 use std::vector instead of a std:set when setting vertex range 2018-06-07 14:03:26 +02:00
Konstantinos Katrioplas 35197fcac7 small fixes so as to work correctly with the boolean and the constant property maps 2018-06-07 12:15:09 +02:00
Sébastien Loriot e1e1512869 Merge 'PMP-isotropic_remeshing_user_projection' into PMP-isotropic_remeshing_user_projection 2018-06-06 18:00:32 +02:00
Konstantinos Katrioplas a634d6a0bc rename headers, rm unnecessary files, clean, edit changes.md 2018-06-06 17:16:12 +02:00
Konstantinos Katrioplas 60cbb2fc6a Merge remote-tracking branch 'cgal/master' into PMP-smoothing-kkatrio 2018-06-06 15:50:14 +02:00
Konstantinos Katrioplas ff54d95a08 fixes on code and doc according to review, incl. using dynamic properties, using constant property map, passing solver as template parameter & using Point_3 references when possible 2018-06-06 15:49:03 +02:00
Sébastien Loriot 6e1d9b2a3e clip_volumes -> clip_volume 2018-06-06 13:30:36 +02:00
Sébastien Loriot 23a9ae9297 doc typos 2018-06-06 13:24:24 +02:00
Sébastien Loriot 02bcd2a618 merge vertex and face visitor and disable vertex for now 2018-06-06 12:04:30 +02:00
Sébastien Loriot 87b45e8afe rename algorithm visitor 2018-06-06 10:27:52 +02:00
Sébastien Loriot e26bee1a61 rename new_face_visitor -> visitor 2018-06-06 09:50:05 +02:00
Mael Rouxel-Labbé 7ea3a8044e Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-06-05 14:39:18 +02:00
Sébastien Loriot aed6f5805c remove unused variable 2018-06-05 14:15:22 +02:00
Sébastien Loriot c177cf884b fix clip convenience overload 2018-06-05 14:09:32 +02:00
Sébastien Loriot 38c44cf11b make sure face index maps are identical when clipping with a plane 2018-06-05 13:45:23 +02:00
Sébastien Loriot 2601581096 catches exceptions thrown by (co)refinement related plugins 2018-06-05 12:54:46 +02:00
Sébastien Loriot 8d6a992035 remove the use of the convex hull 2018-06-05 12:33:41 +02:00
Sébastien Loriot 3a625d1a28 more robust construction 2018-06-04 17:21:28 +02:00
Sébastien Loriot 6a6172eb0a add a section in the user manual for clipping 2018-06-04 16:28:56 +02:00
Sébastien Loriot aecefd2e6d include_clipper_boundary -> use_compact_clipper 2018-06-04 15:20:31 +02:00
Sébastien Loriot 987d59ed67 fix doc typos 2018-06-04 14:28:43 +02:00
Sébastien Loriot 40269797ab should -> must 2018-06-04 13:56:35 +02:00
Maxime GIMENO 0517c35f59
Merge branch 'master' into BGL-Copy_face_graph_use_np-GF 2018-06-04 11:58:43 +02:00
Andreas Fabri c94b219491 typo 2018-06-04 09:40:35 +01:00
Sébastien Loriot b2fcdf2c9d remove polyhedron dependency 2018-06-04 10:29:20 +02:00
Andreas Fabri 2cd40ad42b Change should to must/shall 2018-06-04 08:32:18 +01:00
Sébastien Loriot 2569c271e5 improve doc and plugin 2018-06-01 16:50:39 +02:00
Sébastien Loriot b8f058e0d1 implement @MaelRL review 2018-06-01 16:09:22 +02:00
Sébastien Loriot 94a73232d5 document clip functions 2018-06-01 11:06:29 +02:00
Sébastien Loriot 1a5b2c78a5 update doc of face index map and qualify boost np functions 2018-06-01 11:00:13 +02:00
Konstantinos Katrioplas 3e78e3ad4b typos and various small fixes, incl. smoothing helpers 2018-05-31 17:56:47 +02:00
Sébastien Loriot 932a6c38b9 doc typos 2018-05-31 10:40:29 +02:00
Sébastien Loriot 899838478c improve doc 2018-05-31 09:57:27 +02:00
Maxime Gimeno 1e20055dba Move the strip creation into an internal function 2018-05-30 14:15:08 +02:00
Sébastien Loriot cd1e5126e6 add missing convenience overloads 2018-05-30 10:50:52 +02:00
Maxime Gimeno ee2f7b427a Fix doc 2018-05-30 09:23:17 +02:00
Sébastien Loriot ac566df9ba use Boolean_property_map 2018-05-30 08:34:08 +02:00
Maxime Gimeno 881d518a24 Add an overload with only one NP 2018-05-29 17:34:07 +02:00
Maxime Gimeno 6dfefeb189 Rename generic_extrude_mesh into extrude_mesh and removes the distance of the original overload as it is useless 2018-05-29 16:42:16 +02:00
Sébastien Loriot 460f49d64f move code to swap edges in a function 2018-05-29 15:59:55 +02:00
Maxime Gimeno 0b2436d062 Clean-up after review 2018-05-29 15:59:54 +02:00
Sébastien Loriot b81453868b fix the handling of constrained vertices 2018-05-29 15:59:54 +02:00
Sébastien Loriot 5738a11841 swap halfedges to guarantee that constrained halfedges are kept
this is only requires in case prev(opposite(he)) is constrained
since if there is a constrained vertex it is vb.
2018-05-29 15:59:54 +02:00
Sébastien Loriot abe346f8d2 consider any vertex incident to a constrained as constrained 2018-05-29 15:59:54 +02:00
Sébastien Loriot de3d654a72 simplify the code collapsing edges
handles corner and constrained vertices
2018-05-29 15:59:10 +02:00
Sébastien Loriot 53164edc5a a vertex of degree less than 3 is on the boundary
collapsing an edge incident to it should be controlled only
by the constrained status of the vertices
2018-05-29 15:59:10 +02:00
Sébastien Loriot d3caff29dc fix indentation 2018-05-29 15:59:10 +02:00
Sébastien Loriot 34a66797b5 the corner status of a vertex is already taken into account in the code
it is meaningful for collapse and smooth that are using is_corner function
2018-05-29 15:59:10 +02:00
Maxime Gimeno a779db591c Make Isotropic_remeshing keep the constrained vertices when collapsing an edge. 2018-05-29 15:58:19 +02:00
Maxime Gimeno 7d3d4b27a6 Fix doc 2018-05-29 10:34:26 +02:00
Sébastien Loriot 37bd8c1d84 fix typos 2018-05-28 17:37:47 +02:00
Sébastien Loriot f29d8339fa document corefine_and_compute_boolean_operations() 2018-05-28 17:37:46 +02:00
Sébastien Loriot 67ec602795 remove a restriction on the output vpm
they no longer requires to be of the same type.
This is particularly important especially since we might
ignore some of them.
2018-05-28 17:37:17 +02:00
Sébastien Loriot d3a9f655af replace bool parameter throw_on_self_intersection with a named parameter
used it at the same time in Boolean operation functions
2018-05-28 17:37:17 +02:00
Sébastien Loriot eea53718bb renaming 2018-05-28 17:37:17 +02:00
Sébastien Loriot 3c382accca document the default new face visitor
I have to move everything in the CGAL::PMP::Corefinement because
CGAL::Corefinement was strange for a publicly documented type
2018-05-28 17:37:16 +02:00
Sébastien Loriot c554738ea1 update after Mael's review 2018-05-28 17:37:15 +02:00
Sébastien Loriot 699a43e47f document the new named parameter 2018-05-28 17:36:07 +02:00
Sébastien Loriot a207317cf5 add a parameter in corefinement functions to track the creation of new faces 2018-05-28 17:36:07 +02:00
Maxime Gimeno d126ea44d6 Fixes in doc 2018-05-28 16:49:54 +02:00
Maxime Gimeno 3a2a0d9cc5 Fix doc 2018-05-28 16:49:54 +02:00
Maxime Gimeno eda740136a Add one quad face and use split face 2018-05-28 16:49:54 +02:00
Maxime Gimeno f3aabc10eb Fix doc for np1 and np2 2018-05-28 16:49:53 +02:00
Andreas Fabri dc89cd6057 Change #include 2018-05-28 16:49:53 +02:00
Maxime Gimeno 71abeb06c7 Use vectors instead of unordered maps and use functors that takes input and output vertices instead of only output vertices. 2018-05-28 16:49:53 +02:00
Andreas Fabri a80100ba41 Deal with constness so that it works with Polyhedron_3 as well 2018-05-28 16:49:53 +02:00
Maxime Gimeno 4efef4e15b Add a function generic_extrude_mesh() that takes up to 2 functors instead of a direction and a distance. 2018-05-28 16:49:52 +02:00
Maxime Gimeno 41d3c05f7f Add a functor to create the offset 2018-05-28 16:49:52 +02:00
Maxime Gimeno 828a7d2b73 clean-up 2018-05-28 16:49:52 +02:00
Maxime Gimeno 291039ba80 update doc 2018-05-28 16:49:52 +02:00
Maxime Gimeno 1851f35382 Add a function to PMP that extrudes a mesh along a direction at a given distance. 2018-05-28 16:49:51 +02:00
Laurent Rineau e86c3c4bba Merge pull request #3102 from afabri/Property_map-empty_vector-GF
Property_map: Fix make_property_map(std::vector&) for an empty vector
2018-05-28 13:58:47 +02:00
Laurent Rineau a7738b27c9 Merge pull request #3052 from maxGimeno/PMP-transform-GF
PMP: transform()
2018-05-28 13:58:16 +02:00
Laurent Rineau 851dfabd29 Merge pull request #2757 from maxGimeno/BGL-Add_facegraph_validity_check_function-GF
BGL:  Add a  FaceGraph validity check function
2018-05-28 13:58:07 +02:00
Maxime Gimeno 2adbfe0888 replace bool by cgal_no_property_::type in wrapper 2018-05-24 14:08:57 +02:00
Maxime Gimeno 57296468b1 Update doc for fimap 2018-05-24 12:46:16 +02:00
Maxime Gimeno 719033ad68 Create id-map on the fly if needed 2018-05-24 12:41:37 +02:00
Sébastien Loriot f03f2176dd do no collapse constrained edges
At the same time I removed halfedge_and_opp_removed since we don't
know prior to the collapse which edges are removed.
The only thing done by the function is to reset the status. This
is not an issue to remove it because halfedge_added is called
each time a new edge is created, thus a previous status cannot
be recovered by error.
2018-05-23 09:07:13 +02:00
Andreas Fabri 466a88077d An empty soup is a mesh 2018-05-22 17:48:36 +02:00
Andreas Fabri 9abafecf9a make the property map from the vector 2018-05-22 17:48:36 +02:00
Sébastien Loriot be42fa9147 update ecmap_ during the remeshing 2018-05-18 17:07:14 +02:00
Sébastien Loriot 90faf5d060 simplify initialization of CC 2018-05-18 14:10:31 +02:00
Sébastien Loriot 42de73320a only constrain edges split that were constrained before 2018-05-18 11:07:18 +02:00
Sébastien Loriot 43c6fd3635 make the projection optional 2018-05-18 10:59:26 +02:00
Maxime Gimeno 5fc0022d92 make copy_face_graph use NamedParameters 2018-05-17 10:49:58 +02:00
Laurent Rineau 5a5195a4f4
Merge branch 'master' into PMP-stitch_after_orient-GF 2018-05-15 16:11:14 +02:00
Jane Tournois 76fd482cce make collapse_constraints a parameter of collapse_short_edges
instead of a remesher global parameter
2018-05-15 12:52:32 +02:00
Sébastien Loriot e08c1cdc4d add an option to prevent the collapse of constrained edges 2018-05-15 12:21:05 +02:00
Jane Tournois 35125cd9a5 remove todo done by this PR 2018-05-15 11:23:46 +02:00
Jane Tournois fbd982f7d8 document undocumented named parameters
and add extra info about split edges
2018-05-15 11:22:08 +02:00
Sébastien Loriot 73db555c5e unconstrained an edge to be collapsed 2018-05-15 10:30:40 +02:00
Sébastien Loriot ac8fbfd6aa add a condition to make sure the flip does not create a non-manifold edge 2018-05-15 09:48:12 +02:00
Sébastien Loriot 6b601ccf80 update after Jane's review 2018-05-14 09:51:26 +02:00
Maxime Gimeno 9e78cb49c1 Rename Mesh in PolygonMesh for consistency with the rest of the package 2018-05-07 12:51:36 +02:00
Maxime Gimeno cb3b060d53 fix the doc 2018-05-07 12:51:36 +02:00
Maxime Gimeno ca267506f8 Fix doc 2018-05-07 12:51:36 +02:00
Sébastien Loriot b2fa6680d7 typo 2018-05-07 12:51:35 +02:00
Maxime Gimeno 3ca3d11512 Replace the tparam Transformation by any Functor with an operator()(Point_3) and use that operator instead of .transform() in the impl. 2018-05-07 12:51:35 +02:00
Maxime Gimeno 2f7d66e530 Clean-up 2018-05-07 12:50:41 +02:00
Maxime Gimeno 72c31ebfac Add a function in PMP to apply a CGAL::Aff_transformation_3 to a mesh. 2018-05-07 12:50:41 +02:00
Sebastien Loriot 80acabc4b4
Merge pull request #3065 from maxGimeno/PMP-Do_intersect_with_different_vpm-GF
PMP: do_intersect() work with 2 types of VPM
2018-05-07 11:47:29 +02:00
Sebastien Loriot 1d6918ff4f
Merge pull request #2895 from kkatrio/triangulate_faces_fix
Triangulate faces : CDT2 / hole filling
2018-05-07 11:41:58 +02:00
Maxime Gimeno 9327e470c1 Fix doc 2018-05-04 16:11:25 +02:00
Andreas Fabri 2d5c726ac7 Fix PMP 2018-05-04 09:00:08 +02:00
Maxime Gimeno 47635f11fe Take fimap into account and add a test. 2018-05-03 14:55:49 +02:00
Maxime Gimeno 29e909b87b Treat nm edges 2018-05-03 12:49:34 +02:00
Maxime Gimeno 861a6a16c5 Fixes 2018-05-03 12:49:34 +02:00
Maxime Gimeno 4a8375ce85 Optimize 2018-05-03 12:49:34 +02:00
Maxime Gimeno 68de1819cf Move the code to the PMP functio nand document. 2018-05-03 12:49:34 +02:00
Maxime Gimeno 132cf694a0 remove is_valid() from the graph_traits 2018-05-03 12:03:14 +02:00
Maxime Gimeno 6dfa8d0ba3 replace CGAL_is_valid(Mesh) by CGAL::is_valid_polygon_mesh(Mesh) 2018-05-03 12:03:14 +02:00
Sébastien Loriot c3255eee91 document projection functor named parameter 2018-05-01 14:15:27 +02:00
Sébastien Loriot ec4675b451 do not build the aabb_tree and the cc map if not needed 2018-05-01 13:50:49 +02:00
Sébastien Loriot 54b6eb0fbc handle case when there are no constrained edges 2018-05-01 13:50:43 +02:00
Maxime Gimeno 7e2255f797 do_intersect for 2 meshes work with 2 different types of VPM as long as their value_type is the same 2018-04-30 10:39:47 +02:00
Sébastien Loriot ab9d668f52 first solution to correctly re-constrain edges refined 2018-04-29 13:13:58 +02:00
Sébastien Loriot 95d76709e8 isotropic remeshing can now use a user defined projection functor
you can pass it using a named parameter
2018-04-27 16:20:54 +02:00
Mael Rouxel-Labbé a0427ec756 Fixed abusing Triangulation_cell_base_3 for Delaunay triangulations
TriangulationCellBase_3 does not request a circumcenter;
DelaunayTriangulationCellBase_3 does.

Delaunay_triangulation_3 only compiled because
Triangulation_cell_base_3 (and Triangulation_ds_cell_base_3 !)
provided circumcenter() operators and DT3 inherited T3's TDS.

- The circumcenter() functions are removed where they shouldn't exist
- DT3 uses DT_cell_base_3 as cell base instead of T_cell_base_3
- Concepts/Classes that supposedly only required TriangulationCellBase_3
  and then built Delaunay triangulations with that (Alpha Shapes, etc.)
  are upgraded to request DelaunayTriangulationCellBase_3 (anyway, it
  wouldn't compile if you actually provided a model of
  TriangulationCellBase_3)
- Fixed various wrong templates in classes/concepts such as
  MeshVertexBase_3 not refining RegularTriangulationVertexBase_3
  and (only in the doc) defaulting to Triangulation_vertex_base_3
- Removed the deprecated class (for 4+ years) T_cell_base_with_circumcenter
2018-04-26 13:21:53 +02:00
Mael Rouxel-Labbé 17d46e9211 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-04-26 11:55:17 +02:00
Laurent Rineau 92a7449cac Merge pull request #3006 from sloriot/PMP_PSP-fixes_for_release
Pmp psp fixes for release
2018-04-24 17:34:21 +02:00
Konstantinos Katrioplas c64e4a9d51 correct macros 2018-04-17 10:29:29 +02:00
Andreas Fabri 37e677e989 Fix compilation error with VC2017 and -permissive- It looks like a compiler bug though 2018-04-13 12:01:23 +01:00
Sébastien Loriot 348c0f92fa do not overwrite output iterator, return it directly 2018-04-10 17:32:22 +02:00
konstantinos katrioplas 8c279d0b3f test Polyhedron_3 : part 2 & doc improvements 2018-03-30 14:03:20 +02:00
Konstantinos Katrioplas 652f4d870f additions and corrections requested 2018-03-28 18:06:41 +02:00
Laurent Rineau d057f6d9f1 Merge pull request #2958 from sloriot/PMP-coref_more_coplanar_fixes
Update incorrectly handled coplanar intersection computation
2018-03-28 17:46:24 +02:00
Konstantinos Katrioplas 70cea9a057
Merge branch 'master' into PMP-smoothing-kkatrio 2018-03-28 15:45:18 +02:00
Laurent Rineau 237735ab73 Merge pull request #2946 from afabri/CGAL-dependencies-GF
Move properties from Mesh_3 to BGL, Polyhedron_3 and Surface_mesh
2018-03-27 10:35:23 +02:00
Konstantinos Katrioplas b90e044302 include license header 2018-03-26 15:24:06 +02:00
Konstantinos Katrioplas ea0d032878 licence identifier 2018-03-26 15:24:05 +02:00
Konstantinos Katrioplas 7444e749e6 clean empty lines 2018-03-26 15:24:05 +02:00
Konstantinos Katrioplas 3bd7cb7616 comply to std=c++98 && cleaning 2018-03-26 15:24:05 +02:00
Konstantinos Katrioplas 460d5e5bf5 handling iterations from the demo better 2018-03-26 15:24:05 +02:00
Konstantinos Katrioplas 9b03bb0bab corrections in doc - np 2018-03-26 15:24:04 +02:00
Konstantinos Katrioplas f06250813e documentation corrections 2018-03-26 15:24:04 +02:00
Konstantinos Katrioplas 32b576ae1a typos and small corrections 2018-03-26 14:44:13 +02:00
Sébastien Loriot 5792528fa7 Refreshing PMP-smoothing-kkatrio with master 2018-03-26 14:40:11 +02:00
Konstantinos Katrioplas 8c07709a0b cleaning & better testing 2018-03-26 14:33:53 +02:00
Konstantinos Katrioplas 4282c3b600 correctly set the constraints on the rhs 2018-03-26 14:33:53 +02:00
Konstantinos Katrioplas bd71359b7b apply constraints correctly, clean, more tests 2018-03-26 14:33:53 +02:00
Konstantinos Katrioplas e96d7207d4 testing all cases 2018-03-26 14:33:53 +02:00
Konstantinos Katrioplas 4cdd51c7f7 update demo plugin API with new implementation 2018-03-26 14:33:53 +02:00
Konstantinos Katrioplas 055a2466e7 avoid computing factorization of linear matrix again, clean, use more efficient code by avoiding duplicates when calculating stiffness matrix 2018-03-26 14:33:53 +02:00
Konstantinos Katrioplas 9010a2d1a2 testing both implementations 2018-03-26 14:33:53 +02:00
Konstantinos Katrioplas 4a0e64e62c wip: using symmetry of L matrix 2018-03-26 14:33:52 +02:00
Konstantinos Katrioplas 802102fa2e wip: testing perfomance 2018-03-26 14:33:52 +02:00
Konstantinos Katrioplas 1eb7b22387 wip: use CGAL solver traits instead of Eigen's 2018-03-26 14:33:52 +02:00
konstantinos katrioplas f04bd6576e eigen library macro 2018-03-26 14:33:51 +02:00
Sébastien Loriot bb54e45fd8 fix typos 2018-03-26 14:32:55 +02:00
konstantinos katrioplas dedc4170e4 examples 2018-03-26 14:32:54 +02:00
konstantinos katrioplas 46eb3b26f3 API polishing 2018-03-26 14:31:49 +02:00
konstantinos katrioplas e40706ff32 fixed demo plugin small issues 2018-03-26 14:31:49 +02:00
Konstantinos Katrioplas 4ae449effb explicit scheme new header 2018-03-26 14:31:49 +02:00
Konstantinos Katrioplas c450e9bc73 demo and headers fixes 2018-03-26 14:31:48 +02:00
Konstantinos Katrioplas 750badefa4 clean modified curv class 2018-03-26 14:31:48 +02:00
Konstantinos Katrioplas c472ac692b fine tune parameters and fix headers defs 2018-03-26 14:31:48 +02:00
Konstantinos Katrioplas c0e1533cc4 remove area normalization step from implicit shape smoothing 2018-03-26 14:31:48 +02:00
Konstantinos Katrioplas 0693bb81cb make always use of angle weights 2018-03-26 14:31:48 +02:00
Konstantinos Katrioplas 40cea7e986 make projection optional 2018-03-26 14:31:48 +02:00
Konstantinos Katrioplas 958ff819a2 use explicit scheme for shape smoothing as a named parameter 2018-03-26 14:31:48 +02:00
Konstantinos Katrioplas 89cabad131 iterations np on implicit shape smoothing 2018-03-26 14:31:48 +02:00
Konstantinos Katrioplas 8d73cdd969 remove edge constraints map and use vertex based 2018-03-26 14:31:48 +02:00
Konstantinos Katrioplas 619b16cb06 constrained edges tests 2018-03-26 14:31:47 +02:00
Konstantinos Katrioplas 0147598121 corrections on the api 2018-03-26 14:31:47 +02:00
Konstantinos Katrioplas 75bea1b696 fixed missed typos after renaming api 2018-03-26 14:30:43 +02:00
konstantinos katrioplas e6a716d0b7 API minor corrections 2018-03-26 14:30:43 +02:00
konstantinos katrioplas 5fae4da012 cleaning API, overloads, correcting parameters 2018-03-26 14:30:43 +02:00
konstantinos katrioplas 72f71f121a consistent header filenames 2018-03-26 14:30:43 +02:00
konstantinos katrioplas dc57315716 typos and corrections in the user & reference manual 2018-03-26 14:30:43 +02:00
konstantinos katrioplas d49f1dfc1d fixed bug in indexing in the demo plugin. Using time step instead of iterations & more simple dock widget 2018-03-26 14:30:43 +02:00
konstantinos katrioplas 172b58149b fix perfomance issue on eigen matrices using triplets 2018-03-26 14:30:42 +02:00
konstantinos katrioplas e0b711f184 fix temporarily problem with demo stiffness matrix setup 2018-03-26 14:30:42 +02:00
konstantinos katrioplas dc7fb46ff2 typos in doc 2018-03-26 14:30:42 +02:00
konstantinos katrioplas 13c4b894d1 images and demo plugin 2018-03-26 14:30:41 +02:00
konstantinos katrioplas 54881e81e8 examples and docs 2018-03-26 14:29:30 +02:00
konstantinos katrioplas 4b3364a701 doc better image size - dino 2018-03-26 14:29:30 +02:00
konstantinos katrioplas 2b5d0a5fdd optimazation of smooth_modified_mcf 2018-03-26 14:29:30 +02:00
konstantinos katrioplas 890f85e316 docs 2018-03-26 14:29:13 +02:00
konstantinos katrioplas 0550bf4c84 setup example and a few comments 2018-03-26 14:28:09 +02:00
konstantinos katrioplas 6b4526102b gradient descent parameter fix 2018-03-26 14:28:09 +02:00
Pierre Alliez 079f1baf86 Shape smoothing: some comments added to accelerate matrix construction.
Konstantinos: this is what is so slow, not the solver!
2018-03-26 14:21:06 +02:00
Pierre Alliez 0b0a9ae38d attempts to improve speed of shape smoothing 2018-03-26 14:20:41 +02:00
Pierre Alliez 6ddfbe06aa shape smoothing: use dense vector instead of sparse 2018-03-26 14:20:30 +02:00
Sébastien Loriot 0653e9583a pass on the doc 2018-03-26 14:20:30 +02:00
konstantinos katrioplas 2c5b80146b incl. a time parameter 2018-03-26 14:20:30 +02:00
konstantinos katrioplas 5b90d9a805 latest fixes 2018-03-26 14:19:32 +02:00
Pierre Alliez 3b56478bb1 added time parameter to shape smoothing 2018-03-26 14:17:48 +02:00
konstantinos katrioplas 2ca3d01e35 area smoothing tolerance fix 2018-03-26 14:12:42 +02:00
konstantinos katrioplas 23670bb712 add implicit scheme for shape smoothing 2018-03-26 14:12:18 +02:00
konstantinos katrioplas 52126819e0 fix typo 2018-03-26 14:12:08 +02:00
konstantinos katrioplas 6f46f5d55d rebased summer work 2018-03-26 14:10:49 +02:00
Sébastien Loriot 4824f3bcc9 Merge branch 'master' into gsoc17-summerwork
Reworking of 4e4d495ac2
2018-03-26 14:04:36 +02:00
Sébastien Loriot 5af495ea45 remove kernel typedef 2018-03-26 13:59:25 +02:00
konstantinos katrioplas a1d6164466 License on evaluation class 2018-03-26 13:59:25 +02:00
konstantinos katrioplas b39fe7803d mesh quality evaluation class 2018-03-26 13:59:24 +02:00
konstantinos katrioplas c840481b8c License 2018-03-26 13:59:24 +02:00
konstantinos katrioplas 897692bc16 document overloads 2018-03-26 13:59:24 +02:00
konstantinos katrioplas a9cc924001 renaming functions in API 2018-03-26 13:59:24 +02:00
konstantinos katrioplas 2a7e9e81fd clean curvature flow impl 2018-03-26 13:59:23 +02:00
konstantinos katrioplas 300897c358 corrections in verbose output 2018-03-26 13:59:23 +02:00
konstantinos katrioplas 9706baa796 compatible remeshing function 2018-03-26 13:59:22 +02:00
konstantinos katrioplas a0e7cf4a7f cleaning code & use weight calculator which covers better at 0 and Pi making possible many curvature iterations 2018-03-26 13:58:37 +02:00
konstantinos katrioplas d3f9ac7636 testing different weight calculation methods for curvature flow 2018-03-26 13:58:36 +02:00
konstantinos katrioplas b4c6f78f97 init after removing degenerate faces 2018-03-26 13:58:36 +02:00
konstantinos katrioplas d3081ce2ff counting not moved points for debug 2018-03-26 13:58:36 +02:00
konstantinos katrioplas b4d3259f3f angle remeshing only if it impoves min angle 2018-03-26 13:58:36 +02:00
konstantinos katrioplas f899dbdec3 calculate movement in separate function 2018-03-26 13:58:36 +02:00
konstantinos katrioplas 43a20f8a21 selected vertices 2018-03-26 13:58:36 +02:00
konstantinos katrioplas f1c793eab4 reference manual documentation 2018-03-26 13:57:24 +02:00
konstantinos katrioplas 42e7d12df6 debugging curvature flow 2018-03-26 13:56:09 +02:00
konstantinos katrioplas e6d3c9224c change directory 2018-03-26 13:56:09 +02:00
konstantinos katrioplas 1d8f62963a use constrained vertices on all types of smoothing 2018-03-26 13:56:09 +02:00
konstantinos katrioplas 94f434231f clean redundant code & minor syntax corrections 2018-03-26 13:56:09 +02:00
konstantinos katrioplas 3e34fdd500 another attempt to curvature flow 2018-03-26 13:56:09 +02:00
konstantinos katrioplas dfb3a5c977 plugin nb iterations parameter 2018-03-26 13:56:08 +02:00
konstantinos katrioplas 1b223ab1aa improve demo plugin by separating functionalities 2018-03-26 13:56:08 +02:00
konstantinos katrioplas f8ffda08c2 use opposite direction for move vector & remove monge jet fitting code 2018-03-26 13:56:08 +02:00
konstantinos katrioplas 27ebd0d8ea secure cot calculation & avoid division with zero weight 2018-03-26 13:56:08 +02:00
konstantinos katrioplas b6833a00ce fixes on weights & degnerate cases 2018-03-26 13:56:08 +02:00
Jane Tournois fca69df4cc fix compilation 2018-03-26 13:56:08 +02:00
Jane Tournois 86f948ca22 fix compilation of smoothing_plugin 2018-03-26 13:56:08 +02:00
konstantinos katrioplas 843ab3623e fix bug with curvature flow - sphere test is much better 2018-03-26 13:56:08 +02:00
konstantinos katrioplas 0cfa9906bc all degenerate faces are taken out with remove_degenerate_faces - for now at least 2018-03-26 13:56:07 +02:00
konstantinos katrioplas d5c6283b54 testing curvature flow, exploring robust degenerate handling, overloads and minor fixes 2018-03-26 13:56:07 +02:00
konstantinos katrioplas 6a41e8b48a paste degenerate removal code in compatible remeshing class 2018-03-26 13:56:07 +02:00
konstantinos katrioplas 54a8b80eac more robust edge collapsing and use of repair.h for deg faces 2018-03-26 13:56:07 +02:00
konstantinos katrioplas bc72d6715c recent pull in repair.h - minor changes 2018-03-26 13:56:07 +02:00
konstantinos katrioplas 493992978c remove degenerate edges and faces 2018-03-26 13:56:07 +02:00
konstantinos katrioplas 29dc7c968a find new location using cot weigths 2018-03-26 13:56:06 +02:00
konstantinos katrioplas 02a295c93a normalize kn 2018-03-26 13:56:06 +02:00
konstantinos katrioplas ed5908233d setup plugin for curvature flow 2018-03-26 13:56:06 +02:00
konstantinos katrioplas 7fbe5e156d verbose info in smoothing.h and an overload 2018-03-26 13:56:06 +02:00
konstantinos katrioplas f46a9b06cc add projection to initial surface on curvature smoothing 2018-03-26 13:56:06 +02:00
konstantinos katrioplas 1b28c2d032 mean curvature smoothing - testing with and without cot angles in simple cases 2018-03-26 13:56:06 +02:00
konstantinos katrioplas f1d2339d1a calculate mean curvature flow with Monge jet fitting 2018-03-26 13:56:06 +02:00
konstantinos katrioplas 9d1f09921c cotangent weights calculation 2018-03-26 13:56:06 +02:00
konstantinos katrioplas 9293646193 add tests for invalid meshes and adjust tolerance a bit to comply with some extreme cases 2018-03-26 13:56:06 +02:00
Sébastien Loriot 8553713885 update incorrectly handled coplanar intersection computation
follow up of 6bb6f470c4
2018-03-26 11:20:16 +02:00
Laurent Rineau cd6fe20bd4 Merge branch 'releases/CGAL-4.11-branch' 2018-03-26 11:03:37 +02:00
Laurent Rineau f1b94f0a2b Merge pull request #2919 from sloriot/PMP-orient_handle_isolated_vertices
Handle isolated vertices
2018-03-26 10:56:05 +02:00
Laurent Rineau 1ef766c19b Merge pull request #2932 from kkatrio/null-edge-hole-filling
PMP hole filling: null edge
2018-03-26 10:55:58 +02:00
Laurent Rineau 4b2e2db728 Merge pull request #2945 from sloriot/PMP-remove_si_improvements
Improvement of self-intersection removal using local remeshing
2018-03-26 10:55:51 +02:00
Andreas Fabri 8c41669fb7 move properties from Mesh_3 to BGL, Polyhedron_3 and Surface_mesh 2018-03-22 16:37:37 +01:00
Sébastien Loriot 640e78f92b add an option to allow to change the genus
this is useful if the surface has some small artefact
that is not a topological disk
2018-03-22 11:15:47 +01:00
Sébastien Loriot 885f485ce1 use named parameter instead of default int and bool 2018-03-22 10:50:48 +01:00
Sébastien Loriot 56dca973be add a debug function to dump faces of a cc into an OFF 2018-03-22 10:24:24 +01:00
Sébastien Loriot 6bb6f470c4 update incorrectly handled coplanar intersection computation 2018-03-21 16:51:24 +01:00
Sébastien Loriot dabd127d12 fix typo in the name of an internal function 2018-03-19 15:24:04 +01:00
Sébastien Loriot d2e02c1eee compactify the domain to be remeshed
we additional select faces that are incident to the selection
that are strictly  inside the bounding box of the initial selection
2018-03-19 15:18:27 +01:00
Konstantinos Katrioplas 61735be71c deny triangulation for input of 3 points or less when using all search space 2018-03-16 14:08:43 +01:00
Laurent Rineau 9708c41ad1 Off-topic, Mesh_3: fix a bug in detect_features
The commit cba3b1c20c from the PR #2336
was incomplete: there are two overloads of `sharp_call(..)` and it
fixed only one occurrence.
2018-03-15 15:27:07 +01:00
Mael Rouxel-Labbé 8646350d47 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-03-15 14:42:21 +01:00
Sébastien Loriot 613eca7448 do not use Euler::add_face + reuse edges and faces scheduled for removal 2018-03-14 14:07:40 +01:00
Sébastien Loriot 0d8e21f25c avoid recomputing self-intersections if not needed 2018-03-14 10:44:44 +01:00
Sébastien Loriot 5af7b56589 expand the selection only by CC (instead of globally) 2018-03-14 10:22:24 +01:00
Sébastien Loriot c2e849935e handle isolated vertices 2018-03-12 15:25:46 +01:00
Sébastien Loriot e86ca2eec2 add the usage of the CDT as an undocumented option 2018-03-12 10:43:57 +01:00
Sébastien Loriot 8be7c2b2d1 add convenience header 2018-03-12 10:27:38 +01:00
Sébastien Loriot ee07db2b1e protect code using DT3 with the macro disabling its use 2018-03-12 10:24:35 +01:00
Konstantinos Katrioplas 6ef74c39b5 conditional inclusion of cdt2 headers 2018-03-08 17:08:05 +01:00
Konstantinos Katrioplas 8cfa4e7577 correct return types 2018-03-07 10:42:46 +01:00
Sébastien Loriot 07a70919c2 do not expand/reduce all the time + handle nm vertices per cc 2018-03-06 18:37:09 +01:00
Laurent Rineau caca4d67de Merge pull request #2891 from sloriot/PMP-handle_deg_tri_self_inter
Handle degenerate faces in self-intersection tests
2018-03-06 16:23:32 +01:00
Laurent Rineau 81a7e2d737 Merge pull request #2888 from sloriot/PMP-autorefine_bugfixes
Autorefine bugfixes
2018-03-06 16:23:08 +01:00
Sébastien Loriot 7ab6120a0c workaround warning 2018-03-05 17:09:23 +01:00
Andreas Fabri 5d1cd90517 Add two typename 2018-03-05 14:17:26 +00:00
Konstantinos Katrioplas 8ccec9fe98 macro rename 2018-03-05 13:20:50 +01:00
Konstantinos Katrioplas 9224e83c0a clean up 2018-03-05 13:05:37 +01:00
Sébastien Loriot 8cc234fe26 handle degenerate faces 2018-03-02 15:45:34 +01:00
Sébastien Loriot 8817f067d1 mark vertices as terminal if incident to edge where the surface is pinched 2018-03-02 11:38:42 +01:00
Sébastien Loriot 26dec7527a prevent duplicated nodes at existing vertex between faces intersecting 2018-03-01 16:19:23 +01:00
Sébastien Loriot 29eeac3e3d make autorefinement working with exact constructions 2018-03-01 16:10:14 +01:00
Sébastien Loriot c668b90379 add assertion and fix comment 2018-03-01 16:09:55 +01:00
Sébastien Loriot e478e12471 do not use Euler::add_face 2018-03-01 15:38:26 +01:00
Sébastien Loriot da812c6b77 only remove the face if hole filling was successful 2018-03-01 14:14:36 +01:00
konstantinos katrioplas 833c54faef using triangulate_hole_polyline 2018-03-01 12:59:52 +01:00
Konstantinos Katrioplas a765b152e3 wip - testing dual 2018-02-28 13:47:10 +01:00
Konstantinos Katrioplas 39ab6e00f4 test triangle face 2018-02-28 11:54:11 +01:00
Konstantinos Katrioplas 1869830e72 hole filling impl 2018-02-28 10:53:51 +01:00
konstantinos katrioplas 36dd6e7bf9 setup mech and function with hole filling 2018-02-27 21:24:26 +01:00
konstantinos katrioplas eab0c12190 compiling 2018-02-27 20:28:27 +01:00
Konstantinos Katrioplas 2c86fd6c54 setup new function with cdt 2018-02-27 16:07:17 +01:00
Mael Rouxel-Labbé d9168d011c Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-02-23 18:24:39 +01:00
Laurent Rineau 9e8a40fc70 Merge pull request #2845 from sloriot/PMP-improve_autorefine_v2
Improve internal autorefinement function
2018-02-23 17:35:09 +01:00
Mael Rouxel-Labbé c28e05be0c Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-02-23 12:50:06 +01:00
Sébastien Loriot 51f4858f26 detect non-manifold edges that the hole filling would produce 2018-02-20 15:36:36 +01:00
Sébastien Loriot 6920f4be98 better handling of coplanar faces + throw when more than 2 faces sharing an edge 2018-02-20 11:15:21 +01:00
Sébastien Loriot ac5c061b4b fix warning 2018-02-19 18:04:55 +01:00
Sébastien Loriot 48e1d686a1 fix warning 2018-02-19 18:04:55 +01:00
Sébastien Loriot 32e74839df handle topology issue due to boundary cycle of edges 2018-02-19 18:04:55 +01:00
Sébastien Loriot c7b836570f clean up and simplify code 2018-02-19 18:04:55 +01:00
Maxime Gimeno e650284d3d Don't crash if cc_bordes_he is empty. 2018-02-19 18:04:55 +01:00
Maxime Gimeno d4f50b5b47 Don't use filtered_graph 2018-02-19 18:04:55 +01:00
Sébastien Loriot b1ee7fb7db remove trailing whitespaces 2018-02-19 18:04:55 +01:00
Sébastien Loriot 84a2e04afc simplying the sorting of points
lexicographic order is fine since extreme points are
already using this order
2018-02-19 18:04:55 +01:00
Sébastien Loriot 6e1b680058 handle case when face orientation around the cc of deg faces is incorrect 2018-02-19 18:04:54 +01:00
Maxime Gimeno cde00f7757 Clean-up and overload. 2018-02-19 18:04:54 +01:00
Maxime Gimeno 3fdc7b67b2 remove non_filled_holes 2018-02-19 18:04:54 +01:00
Sébastien Loriot 935bba4ad3 use dynamic property maps + clean up 2018-02-19 18:04:54 +01:00
Maxime Gimeno 2758143116 fixing the topology test. 2018-02-19 18:04:03 +01:00
Sébastien Loriot 209f1a246c iteratively remove degree 3 vertices incident to a degenerate face 2018-02-19 18:04:03 +01:00
Sébastien Loriot f3a3b5eb5e fix the collapsibility check of connected components of degenerate faces 2018-02-19 18:04:03 +01:00
Maxime Gimeno 59b72cb364 Add some enhancements to remove_self_intersections() 2018-02-19 18:04:02 +01:00
Sébastien Loriot 12c57b588a fix condition to drop patch with dangling edges 2018-02-19 09:34:46 +01:00
Sébastien Loriot c0fc3e92bf avoid identical faces in case of coplanar 2018-02-19 09:11:36 +01:00
Sébastien Loriot d785378bdd workaround issue with msvc 2018-02-15 17:06:31 +01:00
Sébastien Loriot 50dfffcedf Sort halfedge of coplanar faces intersecting in autorefinement case
Since the faces are coming from the same mesh...
2018-02-15 10:31:31 +01:00
Sébastien Loriot c20177c55d add TODO 2018-02-15 10:31:31 +01:00
Sébastien Loriot 3eb109a944 better handling of dangling edges 2018-02-15 10:31:31 +01:00
Sébastien Loriot e9596acaec fix issue with intersection edges not found
this happen when such an edge if not on the same
sheet (and would be found next thanks to the
multimap).
2018-02-15 10:31:31 +01:00
Sébastien Loriot e11a1d8617 fix patches to keep in coplanar cases 2018-02-15 10:31:31 +01:00
Sébastien Loriot 129b4c48fb use union find to track incident between patches and discard nested intersections 2018-02-15 10:31:31 +01:00
Sébastien Loriot 80d820a10e first version of autorefinement able to handle self-intersection of 3 faces
the code is not working with coplanar faces for now and does not handle
more that 3 faces meeting at a point not more that 2 triangles intersecting
along an edge
2018-02-15 10:29:27 +01:00
Sébastien Loriot 483f69728e Refresh branch 2018-02-12 22:21:38 +01:00
Laurent Rineau f310fc588d
Merge pull request #2690 from sgiraudot/Classification-ETHZ_random_forest-GF
Classification: ETHZ Random Forest
2018-02-01 17:35:30 +01:00
Simon Giraudot 6269309d86 Use CGAL include for boost counting/transform iterators everywhere 2018-01-23 11:09:52 +01:00
Laurent Rineau e72444ab60
Merge pull request #2709 from lrineau/CGAL-fix_merge_of_PR_2478-GF
Fix the merge of PR #2478 into releases/CGAL-4.11-branch
2018-01-22 10:06:21 +01:00
Laurent Rineau dd3357c508 Merge pull request #2738 from sloriot/PMP-distance_update_max
Make the update of the max value correct
2018-01-19 15:22:22 +01:00
Laurent Rineau 5b5002f694 Merge pull request #2738 from sloriot/PMP-distance_update_max
Make the update of the max value correct
2018-01-19 15:21:22 +01:00
Andreas Fabri 38b2e57b11 PMP 2018-01-17 17:59:35 +00:00
Laurent Rineau f7cbe80c7d Merge pull request #2711 from sloriot/PMP-Janes_commits
More verbose debug output
2018-01-17 10:43:06 +01:00
Sébastien Loriot 499f3c4604 make the update of the max value correct 2018-01-15 18:22:11 +01:00
Simon Giraudot ae41b4af74 Fix namespace in PMP 2018-01-10 16:38:35 +01:00
Mael Rouxel-Labbé b8df8ba29b Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-01-08 10:44:01 +01:00
Jane Tournois 2650a46d5f fix implicit conversion warning (size_type to bool) 2018-01-05 09:25:11 +01:00
Jane Tournois 4a8b735792 remove nested if, already tested 2018-01-05 09:25:11 +01:00
Jane Tournois b7e641ef6a add verbosity for debugging 2018-01-05 09:25:11 +01:00
Laurent Rineau 42b11ddf29 Revert the merge of PR #2478
This reverts the merge commit 46cc91e787 onto
488c3e2879.
2018-01-04 17:54:08 +01:00
Sébastien Loriot 9fe73a801e Merge pull request #2552 from maxGimeno/PMP_does_intersect-GF
PMP: do_intersect
2018-01-04 15:34:18 +01:00
Sebastien Loriot e3f78ff10e
Merge pull request #2545 from maxGimeno/PMP_orient_connected_components-GF
PMP :  Orient_connected_components function
2018-01-04 15:31:21 +01:00
Sebastien Loriot 625df00b19
Merge pull request #2219 from afabri/BGL-generic_property_map-GF
BGL: Add an API for adding and removing a property map
2018-01-04 15:28:54 +01:00
Sébastien Loriot 29ef1e566b make it clear than any intersection will make the predicate to return true 2018-01-03 15:09:35 +01:00
Sébastien Loriot ba1664e6d1 specify that the point is a 3D point 2018-01-03 13:48:27 +01:00
Sébastien Loriot be51b908a1 add missing link and missing dots 2018-01-03 13:35:17 +01:00
Sébastien Loriot d90c76368d initialize the hedge status map + always do the update for new halfedge 2018-01-02 11:33:41 +01:00
Sébastien Loriot 230ba205e3 update link to np page 2017-12-22 23:01:09 +01:00
Sébastien Loriot 4590be2920 update link to np page 2017-12-22 22:58:42 +01:00
Sebastien Loriot b6cdb1ae5b
Merge pull request #2686 from sloriot/Demo-duplicate_nm_vertices
Add plugin to duplicate non-manifold vertices
2017-12-22 22:10:50 +01:00
Sébastien Loriot fe65254d13 use unordered map instead of map 2017-12-21 09:20:04 +01:00
Sébastien Loriot 942db1bba8 avoid conversion warnings 2017-12-21 09:19:51 +01:00
Sébastien Loriot d1597f2fb5 Merge branch 'maxGimeno/PMP_orient_connected_components-GF' into cgal/master 2017-12-19 17:34:51 +01:00
Sébastien Loriot 430ad5bc72 Merge branch 'maxGimeno/PMP_does_intersect-GF' into cgal/master 2017-12-19 17:31:29 +01:00
Mael Rouxel-Labbé 0bca01d872 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2017-12-19 17:22:03 +01:00
Laurent Rineau 61e662c4e4 Merge pull request #2649 from sgiraudot/BGL-Regroup_named_parameters-GF
Regroup PMP named parameters with BGL named parameters

# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/parameters_interface.h
2017-12-19 16:33:44 +01:00
Laurent Rineau 1c2e9df8cf Merge branch 'releases/CGAL-4.11-branch' 2017-12-19 16:29:10 +01:00
Laurent Rineau 5181cd7474 Merge branch 'releases/CGAL-4.10-branch' into releases/CGAL-4.11-branch
# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
2017-12-19 16:19:22 +01:00
Sébastien Loriot a9a85b37e6 fix compilation issues and warnings 2017-12-19 14:43:30 +01:00
Sébastien Loriot 569649e810 add function to duplicate non-manifold vertices + add plugin 2017-12-15 09:16:45 +01:00
Sébastien Loriot 2db6203c44 fix range type 2017-12-14 17:17:59 +01:00
Sébastien Loriot e97ef309f3 add named parameter for overlapping test 2017-12-14 17:12:37 +01:00
Sébastien Loriot 6011be6fa9 allow to change the named parameters from which the vpm is taken 2017-12-14 17:12:20 +01:00
Andreas Fabri 50e041134e Changes after @sloriot's review 2017-12-14 13:00:34 +00:00
Andreas Fabri ee8c0fad5d Changes after @sloriot's review 2017-12-14 10:49:02 +00:00
Sébastien Loriot 4b1430ca07 use a named parameter for choosing inward or outward orientation 2017-12-14 11:23:43 +01:00
Sébastien Loriot a49f50c8aa add missing using directives 2017-12-14 10:41:47 +01:00
Sébastien Loriot 0d8f33f67d remove duplicated typedef 2017-12-14 10:38:11 +01:00
Laurent Rineau 7df26c594b
Merge branch 'master' into BGL-generic_property_map-GF 2017-12-14 09:46:01 +01:00
Laurent Rineau fe81d31ec2
Merge branch 'master' into PMP_does_intersect-GF 2017-12-13 16:25:32 +01:00
Sébastien Loriot e482e3c30c do not use volume to avoid confusion with bounded volume 2017-12-13 16:17:19 +01:00
Sébastien Loriot abadd74b12 use tm for the variable name of a triangle mesh 2017-12-13 15:58:40 +01:00
Sébastien Loriot fe6b6b13e8 move internal functions in the PMP namespace 2017-12-13 15:45:42 +01:00
Sébastien Loriot 9820a9bacd do_intersect for 2 meshes now also can test for overlaps 2017-12-13 15:37:22 +01:00
Sébastien Loriot 6b98f2db97 move functions 2017-12-13 15:36:22 +01:00
Sébastien Loriot e91761bdbb extract the geom traits from the named parameter 2017-12-13 15:35:02 +01:00
Sébastien Loriot 1ab1635fb4 move implementation is free functions 2017-12-13 14:01:17 +01:00
Sébastien Loriot f88092bfad remove useless ref 2017-12-13 13:44:16 +01:00
Sébastien Loriot c35f45b9d3 volume intersection test is actually an overlap test 2017-12-13 13:37:04 +01:00
Sébastien Loriot 9123802d83 fix function name as it is actually the converse that is tested 2017-12-13 13:32:24 +01:00
Sébastien Loriot 5a04bc7053 clean up 2017-12-13 13:31:09 +01:00
Mael Rouxel-Labbé fe9d21a6cd Fix links to all_default() 2017-12-13 10:54:21 +01:00
Sébastien Loriot 4c2964ba69 fix namespace change 2017-12-13 10:17:45 +01:00
Sébastien Loriot f9b61facd7 update doc of does_bound_a_volume() + add default for bool parameter 2017-12-13 10:17:45 +01:00
Sébastien Loriot d3e0fc820f update doc of orient() + turn checks into assertions 2017-12-13 10:17:45 +01:00
Sébastien Loriot 3f45d98501 remove useless tests since the mesh must be closed 2017-12-13 10:17:45 +01:00
Maxime Gimeno 93c7018ab0 Update doc 2017-12-13 10:17:45 +01:00
Maxime Gimeno 687e5b6c60 Add requirement close for orient function 2017-12-13 10:17:42 +01:00
Maxime Gimeno 6c42ce6958 Doc review 2017-12-13 10:17:08 +01:00
Maxime Gimeno 67d06cadb6 Add a function that orient a closed triangle mesh to make it bound a volume. 2017-12-13 10:17:04 +01:00
Maxime Gimeno 0f4f30b37b Add a boolean to specify output orientation 2017-12-13 10:16:58 +01:00
Maxime Gimeno 497f46f4d3 Robustify 2017-12-13 10:16:58 +01:00
Maxime Gimeno 4a381cdb42 Avoid isolated vertices 2017-12-13 10:16:58 +01:00
Maxime Gimeno dbb63e155d Fices in the doc and the test 2017-12-13 10:16:40 +01:00
Maxime Gimeno 9fd5dda4fe Add an action to inside out plugin for orienting connected components 2017-12-13 10:16:40 +01:00
Maxime Gimeno e7f61869cb Fix case triangles orthogonal to XY plane. 2017-12-13 10:16:40 +01:00
Maxime Gimeno 9f986ea9ef Add a function and associated test that orient all the connected components of a triangulated face graph positively. 2017-12-13 10:16:23 +01:00
Mael Rouxel-Labbé ad947da752 Give each package a NamedParameters.txt 2017-12-12 00:07:57 +01:00
Simon Giraudot a52b14a776 Update tag namedparameters -> namedparameterspmp 2017-12-11 12:08:59 +01:00
Laurent Rineau 68cf051563 Fix <CGAL/Polygon_mesh_processing/measure.h>
It requires `CGAL::exact(FT)` from `<CGAL/Lazy.h>`.

Fixes #2654.
2017-12-07 10:07:16 +01:00
Sébastien Loriot f191e6114a fix named parameter functions 2017-12-06 17:46:24 +01:00
Mael Rouxel-Labbé 34d53aa2d9 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2017-12-05 20:32:30 +01:00
Laurent Rineau a48ca62967 Merge pull request #2642 from sloriot/PMP-add_missing_include_4.12
Add missing directive

# Conflicts:
#	Polygon_mesh_processing/include/CGAL/polygon_mesh_processing.h
2017-12-05 18:26:38 +01:00
Laurent Rineau bc3a0c7271 Merge pull request #2638 from sloriot/PMP-experimental_autorefinement
Add experimental autorefinement code
2017-12-05 18:26:23 +01:00
Laurent Rineau f37630bc0f Merge branch 'releases/CGAL-4.11-branch'
# Conflicts:
#	Kernel_23/test/Kernel_23/include/CGAL/_Result_of_kernel.h
#	Kernel_23/test/Kernel_23/test_result_of.cpp
2017-12-05 18:14:23 +01:00
Laurent Rineau 77664fb683 Merge pull request #2641 from sloriot/PMP-missing_includes
Add missing include directives
2017-12-05 17:58:17 +01:00
Laurent Rineau 438200154b Merge pull request #2602 from sloriot/PMP-fix_verbosity_remesh
Turn some #ifndef that should be #ifdef
2017-12-05 17:58:07 +01:00
Mael Rouxel-Labbé d89bedd546 Occurence -> Occurrence 2017-12-05 16:23:46 +01:00
Simon Giraudot 426a72af74 Merge parameters_interface.h to BGL 2017-12-01 15:32:29 +01:00
Simon Giraudot 3dc39c7641 Regroup PMP named parameters with BGL named parameters 2017-11-30 16:05:11 +01:00
Sébastien Loriot 63de8495d0 add missing directive 2017-11-29 14:48:22 +01:00
Sébastien Loriot 94efd620d9 add missing include directives 2017-11-29 14:46:04 +01:00