Commit Graph

4560 Commits

Author SHA1 Message Date
Dmitry Anisimov 04f556fe84 Merge remote-tracking branch 'sloriot/gsoc2019-PMPHDist-martinskrodzki' into gsoc2019-PMPHDist-martinskrodzki 2021-05-09 15:37:01 +02:00
Jane Tournois 74e2ee9734 do not collapse isolated constraints 2021-05-06 19:40:52 +02:00
Jane Tournois 14385aaf15 add a test with isolated constraints, on and away from mesh borders 2021-05-06 17:48:39 +02:00
Jane Tournois 3a6e31de65 do not split isolated constraints 2021-05-06 15:56:23 +01:00
Jane Tournois 64e568f748 an isolated constraint can be on the mesh border
the halfedge status for a pair of opposite halfedges can be
MESH_BORDER and ISOLATED_CONSTRAINT, but MESH_BORDER has
priority
2021-05-06 16:56:05 +02:00
Jane Tournois 49fc218c45 avoid iterating over all halfedges, but only the ones of the patch to be remeshed 2021-05-06 15:55:19 +01:00
Jane Tournois 9d3d29fd6d encapsulate debug code in debug macro 2021-05-06 16:55:02 +02:00
Sébastien Loriot 00f4a52b0a missing header 2021-05-06 15:50:19 +02:00
Sébastien Loriot 79057f3cdd allow to remesh a patch with boundary cycles of edges if genus is not to be preserved 2021-05-06 14:32:32 +02:00
Dmitry Anisimov c4e23b5ced tested with different concurrency tags, cleanup, added empty test for the new function 2021-05-05 15:29:48 +02:00
Dmitry Anisimov 13ef4342d1 fixing build errors when tbb and/or metis is unavailable 2021-05-05 13:43:31 +02:00
Dmitry Anisimov 3c0fc281e8 more optimizations, using boost any and factoring out kd tree, adding metis check 2021-05-05 13:17:23 +02:00
Sébastien Loriot 4e519a3c7a move documented IO functions in IO namespace 2021-05-05 13:15:37 +02:00
Dmitry Anisimov fb8538393d corrected includes 2021-05-05 10:04:48 +02:00
Dmitry Anisimov 7d0ae6b13d testing bunny dense 2021-05-04 17:19:12 +02:00
Dmitry Anisimov e3c693caac optimized one-sided parallel version 2021-05-04 15:58:17 +02:00
Sébastien Loriot fb6f703b55 IO namespace for files in IO directories 2021-05-04 14:36:06 +02:00
Dmitry Anisimov 9117c7ea2f fixed bug with parallel computation, now works 2021-05-04 13:58:50 +02:00
Dmitry Anisimov 27cc88524d fixed parallel preprocessing, computation is still buggy 2021-05-04 13:23:13 +02:00
Dmitry Anisimov 74f5d8af05 added one-sided parallel hausdorff distance, still with the seg fault 2021-05-03 18:17:41 +02:00
Dmitry Anisimov b31201294b cleanup 2021-05-03 15:46:12 +02:00
Dmitry Anisimov bafc127499 cout a few more timings for parallel version 2021-05-03 14:53:04 +02:00
Dmitry Anisimov 887a715a26 added naive parallel version 2021-05-03 14:22:14 +02:00
Dmitry Anisimov 482bc457e4 added test for parallel version + METIS partition of tm1 and partially filtered face graph 2021-04-30 17:16:15 +02:00
Dmitry Anisimov f158e3e5eb added symmetric distance, it is approx 2 times faster than naive version 2021-04-30 16:14:19 +02:00
Dmitry Anisimov 9afa43dad0 propagate lower bound for culling on TM1 to accelerate symmetric distance 2021-04-30 15:02:27 +02:00
Dmitry Anisimov c78c4d2963 all preprocessing steps are moved to their own function 2021-04-30 14:51:14 +02:00
Sébastien Loriot 6ad09d441a add convenience function to snap all vertices of a mesh 2021-04-30 13:53:13 +02:00
Dmitry Anisimov 5d77b22f7a changed sqrt to approximate sqrt 2021-04-30 10:25:22 +02:00
Dmitry Anisimov 5fe5bb049c Update Polygon_mesh_processing/examples/Polygon_mesh_processing/hausdorff_bounded_error_distance_example.cpp
Co-authored-by: Sebastien Loriot <sebastien.loriot@cgal.org>
2021-04-30 09:27:21 +02:00
Sébastien Loriot fbffcfff5d Merge 'PMP-compare_faces_from_meshes-maxGimeno' into gsoc2019-PMPHDist-martinskrodzki 2021-04-29 17:46:54 +02:00
Sébastien Loriot d0608093ec remove unused typedef 2021-04-29 17:46:14 +02:00
Dmitry Anisimov 7fd291c588 added input-dependent infinity value + assertions 2021-04-29 17:43:00 +02:00
Sébastien Loriot e24c6bd3d8 rename variables to make it clear from which mesh the faces are from 2021-04-29 15:51:02 +02:00
Sébastien Loriot d4e7879464 make the code work with different input mesh types 2021-04-29 15:45:06 +02:00
Sébastien Loriot 93855b1af1 Merge PMP-compare_faces_from_meshes-maxGimeno into gsoc2019-PMPHDist-martinskrodzki 2021-04-29 10:36:22 +02:00
Sébastien Loriot b4787adc19 allow difference mesh types 2021-04-29 10:35:26 +02:00
Dmitry Anisimov 1f114461c4 removed return with realizing triangles + added naive version of symmetric distance 2021-04-28 17:14:22 +02:00
Dmitry Anisimov 4db22ca4ae removed internal test code that did not prove to be useful 2021-04-28 16:55:15 +02:00
Dmitry Anisimov 5c3ae06de7 group traversal should be called only on TM2 2021-04-28 15:44:34 +02:00
Laurent Rineau c091c7f86e Merge pull request #5532 from lrineau/Kernel_23-Do_interesect__without_division-GF
Remove operator/ from CGAL::Mpzf and implement Do_intersect_3 with RT only (without division)
2021-04-28 15:24:15 +02:00
Laurent Rineau ab887fd909 Merge pull request #5634 from sloriot/PMP-improve_conditionnal_code
Simplify conditional code
2021-04-28 15:24:05 +02:00
Laurent Rineau b775b04eb8 Merge pull request #5637 from sloriot/PMP-hole_filling_empty_range_warning
Fix use of empty range
2021-04-28 15:24:01 +02:00
Dmitry Anisimov b45de72547 tested bbox comparisons but I do not think we can use them so they are off 2021-04-28 15:23:35 +02:00
Laurent Rineau 795c931b55 Merge pull request #5637 from sloriot/PMP-hole_filling_empty_range_warning
Fix use of empty range
2021-04-28 15:22:41 +02:00
Dmitry Anisimov 4ce1370043 tested group traversal, its sequential version is slower due to more candidate triangles 2021-04-28 11:37:49 +02:00
Sébastien Loriot 1faa0e2992 replace internal use of boost::shared_ptr by std::shared_ptr 2021-04-28 10:55:26 +02:00
Sébastien Loriot c3e5294df3 add extra function for group traversal
not activate for now
2021-04-27 19:24:56 +02:00
Dmitry Anisimov a2f460c9d6 Merge branch 'master' into gsoc2019-PMPHDist-martinskrodzki 2021-04-27 18:37:32 +02:00
Dmitry Anisimov 85f88c218a added inexact check with distances + more precise realizing triangles 2021-04-27 18:25:58 +02:00
Dmitry Anisimov 860cad669a added tighter bounds, changed std min/max to CGAL one, added missing realizing triangles 2021-04-27 16:46:02 +02:00
Dmitry Anisimov 930d364c3f face to triangle map made global 2021-04-27 12:43:47 +02:00
Dmitry Anisimov 95ab1a57a0 tests moved to the test folder 2021-04-27 11:22:55 +02:00
Dmitry Anisimov 5e99e80134 refined and debugged aabb tree with priority traversal 2021-04-26 17:07:19 +02:00
Dmitry Anisimov d5e1c1fdd9 shorter bunny test 2021-04-26 15:38:06 +02:00
Dmitry Anisimov 7b8deffb9e Merge remote-tracking branch 'maxGimeno/PMP-compare_faces_from_meshes-maxGimeno' into gsoc2019-PMPHDist-martinskrodzki 2021-04-26 15:23:04 +02:00
Dmitry Anisimov 4cf4e2c50a return a pair of realizing triangles, still to be discussed 2021-04-26 15:21:58 +02:00
Dmitry Anisimov 69c48308cc added test for realizing triangles, updated how the bounds are stored, removed useless types 2021-04-26 13:04:59 +02:00
Maxime Gimeno ce9bf321df use num_vertices() instead of vertices().size() (garbage probleme in SMesh) 2021-04-23 16:16:53 +02:00
Dmitry Anisimov f92e24f9c2 now we can return realizing triangles 2021-04-23 16:01:32 +02:00
Dmitry Anisimov 1b892e0558 subdivision tested - it works 2021-04-23 15:41:57 +02:00
Dmitry Anisimov 6bf1966012 partially fixed issue for match faces + added minimum example for that issue 2021-04-23 14:37:58 +02:00
Sébastien Loriot 0eea836f1e handle empty point range 2021-04-23 08:46:28 +02:00
Dmitry Anisimov 9a9c3ed887 a few comments in addition to the discussion with Sebastien and Martin 2021-04-22 12:19:58 +02:00
Sébastien Loriot b0a05ab501 fix default 2021-04-21 17:50:47 +02:00
Sébastien Loriot 8a3d9ad124 restrict the usage of the macro
everything is local now
2021-04-21 17:48:08 +02:00
Sébastien Loriot f513a791e2 Merge remote-tracking branch 'cgal/5.2.x-branch' 2021-04-21 15:48:36 +02:00
Sébastien Loriot eef92fbef7 Merge remote-tracking branch 'cgal/5.1.x-branch' 2021-04-21 15:47:06 +02:00
Sebastien Loriot fa4a31a87b
Merge pull request #5583 from sloriot/PMP-face_epsilon_map
Polyhedral_envelope: face epsilon map
2021-04-21 15:26:48 +02:00
Dmitry Anisimov 2f5ff51c60 missing include 2021-04-21 12:21:15 +02:00
Dmitry Anisimov 33d2f1073a optimized AABB tree calls 2021-04-21 11:48:56 +02:00
Mael Rouxel-Labbé c489b7ffa5 Add missing Coercion_traits specialization for custom FT in PMP test 2021-04-20 15:59:29 +02:00
Dmitry Anisimov a0812c1ad7 added comments with refs to the original paper, checked all the formulas 2021-04-19 17:44:25 +02:00
Dmitry Anisimov 4ebbaba856 added bunny benchmarks versus original paper 2021-04-19 14:00:03 +02:00
Sébastien Loriot 0efe2459dc remove whitespace introduced during merge 2021-04-17 14:13:28 +02:00
Sébastien Loriot 39367c2313 Merge remote-tracking branch 'cgal/5.2.x-branch' 2021-04-17 11:14:29 +02:00
Sebastien Loriot e9c97d2b59
Merge pull request #5539 from sloriot/PMP-coref_check_si
Collect faces incident to edges too
2021-04-17 11:04:38 +02:00
Sebastien Loriot b7323389c7
Merge pull request #5622 from maxGimeno/CMake-Update_versions_in_scripts-maxGimeno
Update maximum cmake versions
2021-04-17 10:58:14 +02:00
Sebastien Loriot 66441af8c6
Merge pull request #5566 from afabri/PMP-accelerate_Envelope-GF
PMP - Polyhedral Envelope :  Make it faster by making combinatorial tests
2021-04-17 10:53:22 +02:00
Sébastien Loriot 4436fd62a5 Merge pull request #5266 from janetournois/PMP-isotropic_remeshing_collapse_step-jtournois
PMP isotropic_remeshing() - improve edge flip step
2021-04-17 10:51:15 +02:00
Dmitry Anisimov 81513fc860 face descriptor is now stored in the candidate triangle to remember the realizing triangle 2021-04-16 18:15:07 +02:00
Dmitry Anisimov 56b77cfd9f fixed match faces + removed small optimization (not sure about it) 2021-04-16 17:43:26 +02:00
Maxime Gimeno c49152359c update max version of cmake and announce the new minimal in CHANGE.md 2021-04-15 15:08:54 +02:00
Sébastien Loriot 33a9553a13 rename variables 2021-04-14 11:09:14 +02:00
Sébastien Loriot 05e4b56c88 group intersecting segment of planar faces into a unique Node_set_id
This makes the unordered_map change working for autoref
2021-04-14 10:19:38 +02:00
Jane Tournois d61cf58f2f add ISOLATED_CONSTRAINT halfedge status
this type is needed for edges that are part of the input constrained
edges property map, and are incident to a face to be remeshed only by a
vertex.
These edges contribute to creating corner vertices (incident to >= 3
constrained edges), but should still not be considered as patch borders

without dealing with these "isolated constraints", the corner vertices that
are incident to 2 patch borders and 1 of these edges was not considered
as a corner but as a simple patch border vertex, hence it could be
moved/deleted by a collapse or relaxation steps
2021-04-13 15:20:21 +02:00
Sébastien Loriot 0e6754b15e typos 2021-04-10 09:19:46 +02:00
Dmitry Anisimov ddb8c6a9ff fewer candidate triangles for distance > 0 2021-04-09 18:48:15 +02:00
Dmitry Anisimov 50fc1cabd9 faster queries for close meshes, now traversal traits initial bounds depend on error_bound 2021-04-09 18:19:54 +02:00
Dmitry Anisimov 95f124fd30 added missing ref 2021-04-09 16:50:34 +02:00
Dmitry Anisimov 4d107b3b8d using std priority queue instead of boost heap 2021-04-09 16:34:03 +02:00
Dmitry Anisimov 63db510aef epeck support, fixed bug with infinity value 2021-04-09 16:03:55 +02:00
Dmitry Anisimov dc9e958503 removed some asserts and types, added const, make it compile with epeck, but epeck gives wrong results 2021-04-09 12:35:18 +02:00
Dmitry Anisimov 410b03bc1f added z-shaped test 2021-04-09 10:46:01 +02:00
Dmitry Anisimov a255f692dc matching faces finished, still needs several more tests 2021-04-08 17:07:13 +02:00
Dmitry Anisimov ffc8953a42 caching data 2021-04-08 16:25:38 +02:00
Dmitry Anisimov 0333778b96 added face matching, not finished 2021-04-08 16:22:32 +02:00
Dmitry Anisimov 3b7931dcd9 added timings test 2021-04-08 15:50:49 +02:00
Andreas Fabri e0985c4daf PMP Corefinement: Replace containters to make it faster 2021-04-08 11:40:19 +01:00
Jane Tournois 371706e92a Merge remote-tracking branch 'cgal/master' into PMP-isotropic_remeshing_collapse_step-jtournois
# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h
2021-04-08 11:11:51 +02:00
Sebastien Loriot dfe70d17e7
Fix typo 2021-04-08 08:56:54 +02:00
Sébastien Loriot 667817ece0 test new API 2021-04-07 15:27:56 +02:00
Sébastien Loriot d8cdbbdc28 avoid an extra is-degenerate test 2021-04-07 15:10:32 +02:00
Sébastien Loriot 5b554abce8 add named parameter for triangle soup 2021-04-07 14:52:51 +02:00
Dmitry Anisimov dfd2e15066 Merge remote-tracking branch 'maxGimeno/PMP-compare_faces_from_meshes-maxGimeno' into gsoc2019-PMPHDist-martinskrodzki 2021-04-07 13:54:02 +02:00
Dmitry Anisimov 841ad3b8b1 fixed bug introduced in 2d4c254 2021-04-07 13:53:10 +02:00
Dmitry Anisimov 4033bc14f3 added new tests with test data 2021-04-07 12:52:08 +02:00
Dmitry Anisimov f8f37393f3 fixed warnings 2021-04-07 12:44:17 +02:00
Maxime Gimeno 17602e589e Merge remote-tracking branch 'cgal/master' into CGAL-clang_tidy__nullptr_on_Mesh_2-GF 2021-04-07 09:17:51 +02:00
Laurent Rineau 1b54449dc5 Merge pull request #4878 from danston/Kernels-decltypes-danston
Improve decltype/result_of/invoke_result
2021-04-06 15:13:21 +02:00
Laurent Rineau 58ddf16295 Merge pull request #5507 from afabri/PMP-vtune_isotropic_remeshing-GF
PMP:  Accelerate isotropic remeshing
2021-04-06 15:13:11 +02:00
Laurent Rineau d46dcec5e5 Merge pull request #5510 from pentacular/wasm
Round-to-nearest support for intervals
2021-04-06 15:13:09 +02:00
Laurent Rineau 8247232cf1 Merge pull request #5535 from sloriot/CGAL-more_cmake_support_files
Add more cmake support files
2021-04-06 15:13:04 +02:00
Laurent Rineau 791d4abfec Merge pull request #5555 from sloriot/PMP-exception_inheritance
Inherit from a std exception
2021-04-06 15:12:55 +02:00
Laurent Rineau 9b442d1595 Merge pull request #5570 from MaelRL/PMP-Repair_PS_invalid_polygons_speed_up-GF
Speed up invalid polygon removal in repair_PS
2021-04-06 15:12:47 +02:00
Laurent Rineau a11a7578f6 Merge pull request #5570 from MaelRL/PMP-Repair_PS_invalid_polygons_speed_up-GF
Speed up invalid polygon removal in repair_PS
2021-04-06 15:11:41 +02:00
Sébastien Loriot b7bafa1a34 do not build vector if not needed 2021-04-03 11:22:14 +02:00
Sébastien Loriot dd19b506ed first version to add epsilon per face 2021-04-03 11:14:15 +02:00
Andreas Fabri ab75cbea46 Add data set that shows the performance gain when running self_intersections_example.cpp (4.6 sec master, 0.6 sec this PR when run sequentially 2021-04-01 18:42:05 +01:00
Andreas Fabri c97d3ffb65 Take into account that obtuse vertices are not clipped. 2021-04-01 16:47:07 +01:00
Andreas Fabri 6c4835f8db Introduce a struct for Prism so that we can also store which corner is obtuse 2021-04-01 15:35:16 +01:00
Maxime Gimeno 34e2180b22 rename match_faces 2021-04-01 13:50:41 +02:00
Sébastien Loriot f4a79aebd8 catch const ref 2021-03-31 14:12:43 +02:00
Mael Rouxel-Labbé dc854d8088 Use std::remove_if to speed-up invalid polygon removal 2021-03-31 11:54:38 +02:00
Andreas Fabri ebbe978291 Do not test combinations of planes where we know that there is no intersection point 2021-03-30 13:56:28 +01:00
Sébastien Loriot e3b0302b2b inherit from a std exception 2021-03-26 09:53:29 +01:00
Maxime Gimeno ca5867f172 Changes after review 2021-03-25 13:27:16 +01:00
Laurent Rineau 79ba1af61f Merge pull request #5492 from sloriot/PMP-coref_full_edge_visitor
Add missing visitor calls for the output_builder part
2021-03-24 15:05:24 +01:00
Maxime Gimeno 9e6eaa504a Orientation requirements always on, as it won't work without it on non triangle meshes 2021-03-23 13:43:49 +01:00
Maxime Gimeno 5f4437bef1 Fix missing inline and doc 2021-03-23 12:43:53 +01:00
Maxime Gimeno c3036b1e3e clean-up 2021-03-23 12:12:45 +01:00
Maxime Gimeno cc4d274399 Clarify np 2021-03-23 12:10:34 +01:00
Maxime Gimeno f4da3182d7 add new tests 2021-03-23 12:04:25 +01:00
Maxime Gimeno 277117613b Add a NP for orientation requirement 2021-03-23 11:49:47 +01:00
Maxime Gimeno aa2b527156 Fix holes situation 2021-03-23 11:13:47 +01:00
Maxime Gimeno 8f92a01b12 clean-up 2021-03-23 10:38:19 +01:00
Maxime Gimeno dd90a3ce84 OutputIterators 2021-03-23 10:17:39 +01:00
Maxime Gimeno 8c5fcd9209 Replace by bitset 2021-03-23 09:45:48 +01:00
Maxime Gimeno 27701711e7 Only 2 loops for faces 2021-03-23 09:25:06 +01:00
Jane Tournois f9eb2439bd Merge branch 'PMP-isotropic_remeshing_collapse_step-jtournois' of github.com:janetournois/cgal into PMP-isotropic_remeshing_collapse_step-jtournois 2021-03-22 16:50:00 +01:00
Jane Tournois a79fe08fcf Merge remote-tracking branch 'cgal/master' into PMP-isotropic_remeshing_collapse_step-jtournois 2021-03-22 16:46:08 +01:00
Maxime Gimeno 22e13faee9 1st pass after review 2021-03-22 16:28:10 +01:00
Maxime Gimeno c1895e74b6 mutbale ranges in doc 2021-03-22 14:59:40 +01:00
Maxime Gimeno 7d4a661671 Overloads, plugin and data sets 2021-03-22 14:59:01 +01:00
Maxime Gimeno 67aaf04a0a doc + example + tests 2021-03-22 14:02:18 +01:00
Brian Spilsbury b05f6061ab Merge branch 'master' into wasm 2021-03-20 17:57:57 +09:00
Andreas Fabri 29a40dc40b Remove the timer and the output of the result 2021-03-19 15:47:12 +01:00
Sébastien Loriot f5a6ff424e collect face incident to edges too 2021-03-19 14:47:54 +01:00
Jane Tournois 109a893657 remove #ifdef that should be defined 2021-03-19 11:30:05 +01:00
Sébastien Loriot ac15312260 add Ceres support cmake file 2021-03-18 14:47:56 +01:00