Commit Graph

1692 Commits

Author SHA1 Message Date
Andreas Fabri 1ec6d7b058 Make repair_plugin work for Surface_mesh 2017-07-10 16:03:04 +02:00
Laurent Rineau 80829925b7 Merge pull request #2174 from gdamiand/BGL-LCC-gdamiand
BGL version for Linear_cell_complex_for_combinatorial_map
2017-07-10 15:38:21 +02:00
Laurent Rineau ef116f9fcb Merge pull request #2188 from sloriot/CGAL-prefix_sign
Quality calls to sign
2017-07-10 15:33:55 +02:00
Guillaume Damiand 4c9bbc06af Merge branch 'master' into BGL-LCC-gdamiand 2017-06-30 17:18:53 +02:00
Laurent Rineau 94788f8e0f Merge pull request #2173 from afabri/PMP-benchmark_fill_hole-GF
Polygon_mesh_processing:  Add performance comparison for hole filling in User Manual
2017-06-30 16:52:11 +02:00
Guillaume Damiand 685fe45c8e Bug fix in surface_intersection_sm_poly about filenames used by default. 2017-06-29 10:35:37 -04:00
Andreas Fabri 954311c39a fix file name of png in the .txt 2017-06-28 11:15:46 +02:00
Andreas Fabri ddaf0b3f15 chmod -x elephants-with-holes.png 2017-06-26 10:58:45 +02:00
Guillaume Damiand 013f447395 Merge branch 'master' into BGL-LCC-gdamiand 2017-06-22 23:21:39 +02:00
Mael Rouxel-Labbé ad553fe77d Removed number_of_borders from doxygen-readable space 2017-06-22 16:17:13 +02:00
Mael Rouxel-Labbé fd6825acbf Fixed return type in measure_tests 2017-06-22 16:17:13 +02:00
Mael Rouxel-Labbé cf43155309 Small compilation fix for fd5fe64 2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé 9eec3408d5 Added cotangent weights for Orbifold embeddings 2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé 40655269a2 Documentation for BGL and SMP
- Fixed the boost::graph_traits tables
- Seam mesh documentation
- Some minor changes to surface_mesh_parameterization's and ARAP's docs
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 7ce8fdf3f6 Misc minor changes 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 8da6683ef0 Misc minor changes
Some doc, some typos, some indentation...
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé f087feda83 Missing include in PMP's border.h 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 2eac1f1c38 Added a function to count the number of borders of a polygon mesh 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 4b0243d263 Added documentation for PMP's longest_border() 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 1d068e714f Fixed a bug in PMP's longest_border() 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé c79c03eec7 Add missing include directive 2017-06-22 16:14:55 +02:00
Sébastien Loriot 8a7d5c9012 use unordered_set from boost rather than std (only available in c++11) 2017-06-22 16:12:26 +02:00
Andreas Fabri 7997925bf8 Add a function longest_border(PolygonMesh&) to PMP 2017-06-22 16:11:38 +02:00
Laurent Rineau 4116d749d2 Merge pull request #1861 from maxGimeno/BGL_copy_face_graph_patch-GF
BGL: Connected_component_graph and copy_face_graph_patch
2017-06-22 16:06:14 +02:00
Sébastien Loriot 1bba93acc7 explicit that the sign function is the one from CGAL to avoid ambiguity 2017-06-17 07:31:22 +02:00
Guillaume Damiand c8250c4570 Merge branch 'master' into BGL-LCC-gdamiand 2017-06-15 10:03:53 -04:00
Jane Tournois 55157013aa fix compilation
`rng` has to be an l-value, and CGAL::Random() cannot be
so we create rng before passing it to the function
2017-06-15 13:10:47 +02:00
Jane Tournois 7614e737d9 improve doc for random_seed 2017-06-15 12:33:27 +02:00
Sébastien Loriot b667547cb4 fix doxygen warnings 2017-06-15 12:33:27 +02:00
Sébastien Loriot a3cb116cd4 try improving wording 2017-06-15 12:33:27 +02:00
Jane Tournois bd97150c85 document random_perturbation(tmesh) 2017-06-15 12:33:27 +02:00
Jane Tournois c2f9f2e521 add doc for named parameters 2017-06-15 12:33:27 +02:00
Jane Tournois b0e3dcf953 add a new version of the perturbation function,
to perturb only a range of vertices, and not iterate on all vertices
of pmesh
2017-06-15 12:33:27 +02:00
Jane Tournois c4cb249284 fix typo 2017-06-15 12:33:27 +02:00
Jane Tournois cb43ffbce6 fix the doc and commit (forgotten) named parameter do_project 2017-06-15 12:33:27 +02:00
Jane Tournois 60d47b1dac make reprojection optional 2017-06-15 12:31:51 +02:00
Jane Tournois faadf52a54 make the random generator seeding integer a named parameter 2017-06-15 12:31:51 +02:00
Jane Tournois bb040bd24b make the code valid for any CGAL Kernel 2017-06-15 12:31:51 +02:00
Laurent Rineau 9db168393b Fix a compilation error 2017-06-15 12:31:51 +02:00
Jane Tournois c9dce37dad add documentation (and rename PolygonMesh to TriangleMesh) 2017-06-15 12:31:51 +02:00
Jane Tournois 3eddebe758 add example in the CMakeLists.txt 2017-06-15 12:31:51 +02:00
Jane Tournois cf14854161 re-project points onto the input surface after perturbation 2017-06-15 12:31:51 +02:00
Jane Tournois 12f15bf3f8 add an example for random perturbation 2017-06-15 12:31:51 +02:00
Jane Tournois 5ae03ccd22 perturb in both directions! 2017-06-15 12:31:51 +02:00
Jane Tournois 63c68e7d39 add a simple perturbation algorithm to randomly perturb vertex locations 2017-06-15 12:31:51 +02:00
Laurent Rineau 2799abf71c Merge pull request #1983 from maxGimeno/Polyhedron_demo-Use_sm_in_Deformation-GF
Polyhedron_demo: Plugins use SM: Second Step
2017-06-15 10:11:49 +02:00
Guillaume Damiand f5a94891bb Update examples and demo that use BGL for LCC. 2017-06-14 11:42:15 -04:00
Andreas Fabri 5001f614c3 provide information on the PC used 2017-06-14 15:55:03 +02:00
Andreas Fabri 77374de809 forgot the cgalcite 2017-06-14 15:35:21 +02:00
Andreas Fabri 27a272c5f6 Add \ 2017-06-14 15:08:23 +02:00
Andreas Fabri 826c729e45 Polygon_mesh_processing: Add a benchmark for hole filling (with/without Delaunay) 2017-06-14 14:23:37 +02:00
Laurent Rineau 376c2dd002 Merge pull request #1852 from maxGimeno/Doxygen_compare-GF
Compare two documentation outputs
2017-06-13 10:18:28 +02:00
Maxime Gimeno b629a9e9e3 Remove unused parameter name. 2017-06-13 09:29:13 +02:00
Maxime Gimeno c3eac61ace Fix path to example 2017-06-06 09:31:41 +02:00
Andreas Fabri e77f1d4d78 Fix the demo 2017-05-31 19:50:02 +02:00
Andreas Fabri ac30f40f79 Move Mesh_3 specific properties to Mesh_3 2017-05-31 16:14:31 +02:00
Andreas Fabri 4d27ea1cc5 Move selection properties to the Polyhedron demo directory as it is demo specific 2017-05-31 16:05:24 +02:00
Sébastien Loriot dd64914d59 move helper functions in the BGL package so that they can be used there too 2017-05-30 15:09:42 +02:00
Sébastien Loriot 6d2526499e replace iterators of face patch indices by a range 2017-05-30 15:09:42 +02:00
Sébastien Loriot b4194e3614 import API and documentation 2017-05-30 15:09:42 +02:00
Maxime Gimeno 3ab2f10997 replace remaining 'componant' by 'patch' 2017-05-30 15:09:42 +02:00
Maxime Gimeno 1f96262d3d Rename the graph into Face_filtered_graph and add a function to check its validity. 2017-05-30 15:09:42 +02:00
Maxime Gimeno 249f359048 Fix PMP example 2017-05-30 15:09:42 +02:00
Andreas Fabri 0707e06cee Changes after Andreas' review 2017-05-30 15:08:34 +02:00
Maxime Gimeno 95960c3b58 Fix after rebase 2017-05-29 13:24:08 +02:00
Andreas Fabri 0f28155729 I had to change Detect_features_in_polyhedra as the property map must be retrieved for the polyhedron passed to a function 2017-05-29 13:24:05 +02:00
Maxime Gimeno 451af8f3ef bglize and add property maps. polyhedral domain with features works almost for Surface_mesh
Conflicts:
	Mesh_3/include/CGAL/Mesh_polyhedron_3.h
	Mesh_3/include/CGAL/Polyhedral_mesh_domain_with_features_3.h
	Surface_mesh/include/CGAL/boost/graph/PMP_properties_Surface_mesh.h
2017-05-29 13:22:37 +02:00
Maxime Gimeno 1330777a31 Make property maps for PMP and Surface_mesh generic
Conflicts:
	Polyhedron/demo/Polyhedron/Plugins/PMP/Detect_sharp_edges_plugin.cpp
	Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.h
2017-05-29 13:22:37 +02:00
Maxime Gimeno b122889723 Make the Detect_sharp_edges_plugin work with a SM_item
- finished the BGL-ization of Detect_features_in_polyhedra.h
- added a feature edges visualization to the SM_item.

Conflicts:
	Polyhedron/demo/Polyhedron/Plugins/Mesh_3/CMakeLists.txt
	Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt
	Polyhedron/demo/Polyhedron/Plugins/PMP/Detect_sharp_edges_plugin.cpp
	Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.h
2017-05-29 13:22:36 +02:00
Maxime Gimeno d88dad8bef Clean-up and warning fix.
- Use constructor of sm descriptors instead of static_casts.
2017-05-29 13:20:41 +02:00
Maxime Gimeno 5e630f5c48 Move Detect_feature_edges to PMP 2017-05-29 13:20:40 +02:00
Maxime Gimeno 880b6e21a2 Fixes and Clean-up.
- Move the new properties in a file in PMP and remove them from the namespace boost.
- Move the surface mesh properties from properties_Surface_mesh.h to Scene_surface_mesh_item.h
2017-05-29 13:20:39 +02:00
Laurent Rineau c174b9880d Merge remote-tracking branch 'cgal/releases/CGAL-4.10-branch' 2017-05-26 17:56:13 +02:00
Sébastien Loriot ad1997e21a handle negative edge length + always do edge flips 2017-05-24 12:18:35 +02:00
Sébastien Loriot 3a8ef39465 filter degenerated triangles in the AABB-tree used for the reprojection 2017-05-24 10:18:44 +02:00
Sébastien Loriot 9b4e04c48a move function to test if a triangle face is degenerated in BGL helpers 2017-05-24 10:18:44 +02:00
Sébastien Loriot 7fb806cb76 add missing boost namespace 2017-05-24 10:18:44 +02:00
Sébastien Loriot b73cf88d18 add a way to only call the tangential relaxation+reprojection 2017-05-24 10:18:43 +02:00
Sébastien Loriot 24795331a3 cosmetic changes 2017-05-24 10:18:43 +02:00
Sébastien Loriot fd4e66934f select all interior edges
with the older implementation, the edges of a face was ignored
as soon as it was marked as visited while its edges must still
be visited
2017-05-24 10:18:43 +02:00
Laurent Rineau 31f277dc93 Merge pull request #2072 from janetournois/Mesh_3-improvements-GF
Mesh 3 : small improvements
2017-05-22 10:59:48 +02:00
Laurent Rineau d9bc11f294 Merge pull request #2072 from janetournois/Mesh_3-improvements-GF
Mesh 3 : small improvements
2017-05-22 10:59:47 +02:00
Laurent Rineau 9aea1f228d Merge pull request #2105 from sloriot/PMP-stitch_avoid_creating_non_manifold_edges
prevent the merge of two vertices that would create a non-manifold edge
2017-05-19 10:29:57 +02:00
Laurent Rineau 8f84930b9a Merge pull request #2100 from janetournois/PMP-fix_isotropic_remeshing_patch_corners-jtournois
PMP : fix isotropic remeshing of a selection
2017-05-19 10:29:41 +02:00
Laurent Rineau 25df414e6e Merge pull request #2085 from sloriot/PMP-Side_of_triangle_mesh_details
Add implementation details
2017-05-19 10:29:10 +02:00
Laurent Rineau b037471750 Merge pull request #2075 from afabri/CGAL-dont_include_graph_traits_header-GF
Do not include graph_traits_{Polyhedron | Surface_mesh}.h
2017-05-19 10:28:38 +02:00
Laurent Rineau a07cd292d9 Merge pull request #2071 from janetournois/Polyhedron_demo-improve_surf_reader-GF
Polyhedron demo : improve .surf reader
2017-05-19 10:28:22 +02:00
Laurent Rineau 60c2413312 Merge pull request #2085 from sloriot/PMP-Side_of_triangle_mesh_details
Add implementation details
2017-05-19 10:28:13 +02:00
Laurent Rineau de757b671e Merge pull request #2105 from sloriot/PMP-stitch_avoid_creating_non_manifold_edges
prevent the merge of two vertices that would create a non-manifold edge
2017-05-19 10:27:40 +02:00
Laurent Rineau 97a5dd73e1 Merge pull request #2060 from janetournois/CGAL-improve_examples_with_requirements-jtournois
PMP and SMS : improve examples with a (pre)condition
2017-05-19 10:27:27 +02:00
Laurent Rineau fa3c3c2bf2 Merge pull request #2071 from janetournois/Polyhedron_demo-improve_surf_reader-GF
Polyhedron demo : improve .surf reader
2017-05-19 10:27:18 +02:00
Laurent Rineau dfd77d4aff Merge pull request #2100 from janetournois/PMP-fix_isotropic_remeshing_patch_corners-jtournois
PMP : fix isotropic remeshing of a selection
2017-05-19 10:27:09 +02:00
Laurent Rineau 3b1ebdb574 Merge pull request #2057 from janetournois/PMP-fix_is_outward_oriented-GF
PMP : fix `PMP::is_outward_oriented()`

(From a merge of 'cgal/releases/CGAL-4.10-branch', plus a merge of the
commit 'a6e2783'. That commit fixes the incompatibility with recent
changes in `master`.)
2017-05-17 13:02:38 +02:00
Sébastien Loriot a6e2783d36 use internal namespace introduced in e9395ab for accessing named parameters 2017-05-17 13:01:29 +02:00
Sébastien Loriot d4fa3c860c fix test incorrectly simplified test 2017-05-12 09:49:44 +02:00
Sébastien Loriot 51dce78e78 fix the last step of the algorithm to pick the top face along the z-axis 2017-05-12 09:49:43 +02:00
Sébastien Loriot 976ba8b75a fix the outward orientation test 2017-05-12 09:49:43 +02:00
Sébastien Loriot 8af0216b54 update internal use of is_outward_oriented() by does_bound_a_volume() 2017-05-12 09:49:43 +02:00
Sébastien Loriot 1a29f74325 Revert "remove the use of internal::is_outward_oriented"
This reverts commit 37c5b0bd4e6d550c86bf7f173eaa4bfc1fa5bf6f.
2017-05-12 09:49:43 +02:00
Sébastien Loriot 1e22c09969 fix warning 2017-05-12 09:49:43 +02:00
Jane Tournois 686b418fe0 remove the use of internal::is_outward_oriented 2017-05-12 09:49:42 +02:00
Jane Tournois 766ff220b6 and missing include
and fix the use of namespaces
2017-05-12 09:49:42 +02:00
Jane Tournois 49818d56ce add a runtime warning and return true for empty mesh 2017-05-12 09:49:42 +02:00
Jane Tournois 57b01e0b8f make if work also if GT::Compare_z_3 does not have a default constructor
(may happen with a geom traits with state)
2017-05-12 09:49:42 +02:00
Jane Tournois 6c2ee8a35e fix the implementation of is_outward_oriented(polygon mesh)
this implementation does not require the construction of the normal,
and is based only on Kernel predicates
2017-05-12 09:49:42 +02:00
Sébastien Loriot 44a7b9f590 fix the stitchable test
the common vertex incident to the two non-stitchable vertices
is not in general in the faces incident to the edges to be
stitched
2017-05-11 17:35:26 +02:00
Laurent Rineau 7aad2a560c Merge pull request #1891 from maxGimeno/PMP_named_params_macro-GF
Use macros to add parameters in PMP
2017-05-11 17:09:38 +02:00
Sébastien Loriot 9487c56cab fix copy-paste error 2017-05-11 10:42:33 +02:00
Guillaume Damiand 885ef4775a Update examples and tests following renaming of BGL LCC helpers. 2017-05-10 16:20:11 -04:00
Guillaume Damiand a22a5fbd21 Update BGL LCC examples and tests following the modification of the API (helper class) 2017-05-10 13:27:37 -04:00
Sébastien Loriot 7a841cad48 prevent the merge of two vertices that would create a non-manifold edge 2017-05-10 18:55:03 +02:00
Jane Tournois ce51fef0d5 replace std::set with boost::container::flat_set
for efficiency reasons
2017-05-09 12:23:17 +02:00
Jane Tournois 70c9b5e0a5 constrain corners
vertices that are at the "corner" of the face range to be remeshed,
i.e. on the border of the face range, and also on the border of the mesh,
incident to both the selected and unselected faces, should be constrained,
to avoid making a "axe blow" in the border
2017-05-05 17:37:49 +02:00
Sébastien Loriot 20e7f245c7 add implementation details 2017-04-27 17:24:47 +02:00
Sébastien Loriot d0a2c817da remove a todo that is now an issue 2017-04-27 16:28:00 +02:00
Andreas Fabri 1dbedb7391 fix choices of std::cerr or std::cout 2017-04-27 09:04:12 +02:00
Andreas Fabri bf3542116a Polygon_mesh_processing: Fix documentation
splitted -> split
2017-04-26 14:42:59 +02:00
Andreas Fabri c81b707bfb Do not include graph_traits_{Polyhedron | Surface_mesh}.h 2017-04-24 19:17:43 +02:00
Jane Tournois 2b16193db4 deal with non-manifold surfaces
because a CGAL::Polyhedron cannot be non-manifold along an edge, we need
to build the polyhedral surface using PMP::orient_polygon_soup, and
PMP::polygon_soup_to_polygon_mesh.
These functions introduce duplicated points, that are dealt with in this commit

when reading a .surf file, isolated vertices are ignored
2017-04-21 14:40:08 +02:00
Jane Tournois a4a05c406b replace a std::set by a boost::flat_set to speedup 2017-04-20 17:00:23 +02:00
Jane Tournois d4c857b063 improve examples by adding a precondition with CGAL::is_triangle_mesh 2017-04-18 12:13:27 +02:00
Guillaume Damiand 755272148a Cleanup BGL for LCC; add shortcut for item with id to simplify definition. 2017-03-31 17:11:36 -04:00
Guillaume Damiand 15ac1f6b35 Add two more examples for BGL for LCC 2017-03-29 13:53:22 -04:00
Guillaume Damiand f587aca1f3 Cannot use BOOST_FOREACH if we add halfedge in the loop. 2017-03-29 13:32:16 -04:00
Guillaume Damiand 13ed16043b Update BGL for LCC and continue on examples/tests 2017-03-29 14:22:27 -04:00
Guillaume Damiand 3f382fe6b4 Add more examples for LCC BGL 2017-03-28 12:52:31 -04:00
Andreas Fabri 58bcecc497 License check for Corefinement and Distance 2017-03-22 14:07:52 +01:00
Andreas Fabri cd7deb8577 License check for Corefinement and Distance 2017-03-22 12:32:43 +01:00
Andreas Fabri 774bdc4351 License check for Geometric Meshing and Hole Filling 2017-03-22 12:10:37 +01:00
Andreas Fabri fde105b437 License check for Predicates 2017-03-22 10:29:59 +01:00
Andreas Fabri 51bbe5d1f6 License check for Geometric Measures and Miscellaneous 2017-03-22 10:05:39 +01:00
Andreas Fabri d04b048aa9 License check for Connected Components 2017-03-22 09:21:27 +01:00
Andreas Fabri 9bcf8b040e move corefinement specific code from PMP to Operations_on_polyhedra 2017-03-22 09:12:30 +01:00
Andreas Fabri 44c1328f55 License check for Normal Computation Functions 2017-03-22 08:54:00 +01:00
Sebastien Loriot 5b6cf1cfae Merge pull request #1976 from sloriot/PMP-coref_bugfix_tangent_cases
Correctly handle edge tangency cases
2017-03-20 16:11:17 +01:00
Sébastien Loriot 0b29878f6d better handling of tangency
correctly handle dangling intersection polylines
that appear when models are tangent along an edge
2017-03-16 18:44:13 +01:00
Sébastien Loriot 58f59d0af0 add new data set to test tangent cases 2017-03-16 15:38:54 +01:00
Sébastien Loriot a79f461548 be more permissive for open meshes 2017-03-15 17:13:40 +01:00
Sébastien Loriot 259155edb3 improve the coref-bool-op test to also check possible results are as expected 2017-03-15 16:49:32 +01:00
Jane Tournois b6d88274fb deactivate output to files in the testsuite
it takes long and is not really useful for the tests
2017-03-14 16:20:28 +01:00
Jane Tournois f9fe9a5e6a add assertions to the PMP testsuite 2017-03-14 15:46:48 +01:00
Laurent Rineau 5947475c5c Merge pull request #1906 from sloriot/PMP-stitching_non_manifold_edges-GF
Make the function stitch_borders() resilient to non-manifold edges
2017-02-14 16:11:01 +01:00
Sébastien Loriot c873532da5 avoid stitching non-manifold edges
we do not stitch them at all since we might produce inconsistancies
2017-02-14 13:45:08 +01:00
Andreas Fabri 81c5ff9b0d We do not collect halfedges on non-manifold edges
TODO:
- Add a precondition
- Find something better than a CGAL_warning
2017-02-14 13:44:46 +01:00
Sébastien Loriot 7c51ddc606 remove commented lines 2017-02-13 10:28:27 +01:00
Sébastien Loriot e9395aba6f move enum for named parameters inside internal_np namespace 2017-02-13 10:25:28 +01:00
Laurent Rineau 58ba771e5d Merge pull request #1898 from sloriot/PMP-fix_coref
fix make_terminal()
2017-02-10 19:03:42 +01:00
Sébastien Loriot 47e8f6167f add doc in the interface file and files using it 2017-02-10 17:23:45 +01:00
Sébastien Loriot 2fee4affdd rename macro to be independant of any package 2017-02-10 17:00:38 +01:00
Sébastien Loriot 2068ba14ce remove non used named parameter 2017-02-10 16:45:18 +01:00