Commit Graph

1954 Commits

Author SHA1 Message Date
Jane Tournois a7a94ac1d7 improve doc
add a precondition,
and move a piece of doc where it should be
2017-10-19 15:23:24 +02:00
Jane Tournois 5a45fdf99d Merge branch 'PMP-fix_isotropic_remeshing_next_to_corners-jtournois' into Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois 2017-10-17 15:45:30 +02:00
Jane Tournois fb0d7840d5 remove useless check for reverse version 2017-10-17 15:30:37 +02:00
Jane Tournois aa758493b1 Merge branch 'PMP-fix_isotropic_remeshing_next_to_corners-jtournois' into Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois
# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h
2017-10-16 14:49:02 +02:00
Jane Tournois 03e7265cef a Polyhedron_3 does not have an internal pmap for face_patch_id_t
so the condition was always returning false for a Polyhedron
we are inside the demo, so this condition can be safely removed
2017-10-16 13:04:42 +02:00
Laurent Rineau 46cc91e787 Merge pull request #2478 from mtola/master
fix bug -> 2x 2 missing "inline" to prevent duplicate symbols during …
2017-10-13 17:06:22 +02:00
Laurent Rineau 0533547da9 Merge pull request #2447 from sloriot/Demo-add_more_repair_functions
add more repair functions in the Polyhedron demo
2017-10-13 17:00:47 +02:00
Laurent Rineau 6bda8ad7d5 Merge pull request #2516 from janetournois/PMP-fix_isotropic_remeshing_with_isolated_vertices-jtournois
PMP - fix isotropic remeshing with isolated vertices
2017-10-13 16:54:35 +02:00
Sébastien Loriot 01bda3f852 add function to close boundary cycle of size 2
use it after the general stitching function
2017-10-12 14:38:41 +02:00
Sébastien Loriot a2cc276ccb simplify the code by avoid to have an extra map for the edge to be stitched
the code changes a little bit the output as some border cycles of size 2
can be created (these edges were not set for stitching for example if
there were a third edge that could be stitched and was rejected by the
manifold test)
2017-10-12 14:19:58 +02:00
Laurent Rineau 107cdccd6d Merge pull request #2438 from lrineau/Mesh_3-test_polyhedral_complex_with_surface_mesh-GF
Mesh_3: make it work with Surface_mesh
2017-10-11 19:14:49 +02:00
Jane Tournois 8d486694dc use check_normals() inside collapse_does_not_invert_face() 2017-10-10 12:51:04 +02:00
Jane Tournois c657f43f19 deal with more than 2 surface patches in check_normals(v)
until now it did not deal with the corner cases
2017-10-10 12:16:03 +02:00
Jane Tournois 6e8bb6b03e deal with more than 2 patches in the collapsibility checks 2017-10-10 11:48:37 +02:00
Jane Tournois ddaad24e63 add corner case conditions for collapsibility 2017-10-10 11:46:31 +02:00
Jane Tournois 5cc6209528 filter out isolated vertices
for tangential_relaxation and projection
2017-10-09 16:38:57 +02:00
Jane Tournois 6a5c46dd50 remove duplicate member variable 2017-10-09 11:27:06 +02:00
Jane Tournois 3e4e4968f7 add missing vertex_point_map 2017-10-09 11:26:34 +02:00
Jane Tournois f6418c6145 add a little verbosity 2017-10-09 11:22:54 +02:00
Sébastien Loriot e9cb74d927 remove doc of parameter removed 2017-10-03 14:00:50 +02:00
Sébastien Loriot 26c1543d14 remove the requirements on the absence of degenerate edges
it is no longer needed thanks to the union-find used to merge vertices
2017-10-03 13:58:12 +02:00
Sébastien Loriot 7fdf9cad8c integrate the are_vertices_stitchable test into the check for non-manifold edges
also reinit the union-find on vertices as the master vertex kept
might be one marked as non-stitchable
2017-10-03 13:41:58 +02:00
Sébastien Loriot d23b301cea filter edges to be stitched to avoid creating non-manifold vertices
edges filtered have two endpoints to be merged
2017-10-02 16:20:05 +02:00
Sébastien Loriot 07bb1d6839 use union-find to merge vertices and decide which vertex to keep
This is needed if two patches have edges stitched with identical
vertex point coordinates.
2017-09-29 17:51:58 +02:00
Sébastien Loriot 67791520a1 ignore degenerate edges during the collection of edges to stitch 2017-09-29 16:39:34 +02:00
Sébastien Loriot 671b7abcb6 do nothing is the model is fixed 2017-09-20 14:33:37 +02:00
Sébastien Loriot 78f3d1a38d extract the function removing faces and filling hole ...
... and use it to handle deg faces
2017-09-20 14:33:37 +02:00
Sébastien Loriot ea34f1b2dd remove assertions that are using Surface_mesh features 2017-09-20 14:33:37 +02:00
Sébastien Loriot 03cff151ba factorize the code 2017-09-20 14:33:36 +02:00
Sébastien Loriot 488858cacc add a check (not yet factorized) to prevent invalid removal of degenerate faces 2017-09-20 14:33:36 +02:00
Sébastien Loriot 0bc5e715e9 add more debug 2017-09-20 14:33:36 +02:00
Sébastien Loriot 90a4e2eefd add a condition to prevent a flip that is not possible 2017-09-20 14:33:36 +02:00
Sébastien Loriot 6e9cbde3b1 add a method to remove degree 3 vertices in caps degenerate triangles 2017-09-20 14:33:36 +02:00
Sébastien Loriot b347c88bc5 add some debug code 2017-09-20 14:33:36 +02:00
Sébastien Loriot 7dbbfc5647 add an option to control the merge of vertex points
this is conveniant if we do not want to modify the mesh
when the function is called
2017-09-20 14:33:35 +02:00
Sébastien Loriot f77baded9b add function to collect pairs of halfedges closed (up to epsilon) 2017-09-20 12:57:17 +02:00
Sébastien Loriot 18725e8841 rename internal function 2017-09-20 12:57:17 +02:00
Sébastien Loriot 4c496ffa83 remove the stitching modifier and use a function instead 2017-09-20 12:57:17 +02:00
Sébastien Loriot e392b79883 Merge remote-tracking branch 'cgal/releases/CGAL-4.11-branch' 2017-09-20 12:54:11 +02:00
Sébastien Loriot a7caa5c433 Merge remote-tracking branch 'cgal/releases/CGAL-4.10-branch' 2017-09-20 12:53:27 +02:00
Sébastien Loriot 47e20a4a15 add missing include directive 2017-09-20 12:52:35 +02:00
Laurent Rineau 9d013d2e59 Fix the default AABB tree in Side_of_triangle_mesh 2017-09-20 12:03:32 +02:00
Laurent Rineau 8f9ea82a14 Merge branch 'releases/CGAL-4.10-branch' into releases/CGAL-4.11-branch 2017-09-20 11:17:43 +02:00
Laurent Rineau 5b1828cda2 Merge pull request #2445 from sloriot/PMP-fix_is_stitchable
Fix stitchable conditions
2017-09-20 11:13:30 +02:00
Sébastien Loriot c84014992a fix the collection of edges to stitch
we ignore those incident to a degenerate edge on the border
2017-09-19 15:08:19 +02:00
Sébastien Loriot 4fd381128a fix stitchable test
we were skipping all border edges in the test which was
making it missing some non valid cases detected only
with this border edge (since the test is assymetric
as we consider the first halfedge only for the outer
loop)
2017-09-19 11:52:05 +02:00
Laurent Rineau 36fdb16370 Allow to customize the AABB tree of Side_of_triangle_mesh
This is a new optional fourth template parameter of
`Side_of_triangle_mesh`, that is left undocumented for the moment.
2017-09-18 14:56:56 +02:00
Laurent Rineau cba3b1c20c Fix detection of border *edges* 2017-09-07 12:07:17 +02:00
Maxime Gimeno d5ea0b6cbc Fix warnings and copy PMaps in detect_features.h 2017-09-05 12:03:35 +02:00
Maxime Gimeno 5a9a0bc9fb Constify read only maps and modify doc accordingly 2017-08-29 12:16:14 +02:00
Sebastien Loriot 97b8782a27 Merge branch 'master' into Detect_features-GF 2017-08-18 16:34:29 +02:00
Jane Tournois 126a85d863 use the fact that vertex_incident_pmap is an LValuePropertyMap
and add a missing 'const'
2017-08-18 16:14:22 +02:00
Jane Tournois 7408426fae rename variable to avoid compilation issues 2017-08-18 12:17:50 +02:00
Jane Tournois 3bc33e9458 improve indentation and layout 2017-08-18 12:14:32 +02:00
Jane Tournois e2e5b1ed05 edge_is_feature_map is not an optional parameter
see reviews in the small feature
2017-08-18 10:51:25 +02:00
Jane Tournois 2bc4d10463 use put instead of [] to fit every type of property map 2017-08-18 10:39:35 +02:00
Jane Tournois 47fd45d4a8 fix conversion warning 2017-08-17 17:25:46 +02:00
Jane Tournois d5aa3db51d doc and indentation fixes 2017-08-17 17:24:05 +02:00
Jane Tournois 334d4a0c4f doc : replace "collects" with "marks" 2017-08-17 16:03:46 +02:00
Jane Tournois 12011422f6 fix conversion warning 2017-08-17 15:43:02 +02:00
Jane Tournois 99aec9eda9 fix the definition of "sharp" 2017-08-17 15:42:11 +02:00
Jane Tournois d2cc5c0575 add typedefs 2017-08-17 15:22:08 +02:00
Maxime Gimeno 848dea1d42 Fixes default VIP and VNFE 2017-08-11 17:28:06 +02:00
Maxime Gimeno 43ff0d092c Implementation review Jane and sebastien 2017-08-11 15:30:03 +02:00
Maxime Gimeno 080d3a0895 WIP Jane's review 2017-08-11 09:07:32 +02:00
Maxime Gimeno 723492def1 Use existing named_parameters and vertex_incident_patches becomes lvaluepmap, 2017-08-10 15:16:27 +02:00
Maxime Gimeno 1d497d09ff Fix warnings and error 2017-08-10 09:37:37 +02:00
Maxime Gimeno 9f16bafef3 Fix Warnings 2017-08-09 15:22:45 +02:00
Maxime Gimeno f670ffe4e2 detect_surface_patches uses connected_components 2017-08-09 10:24:48 +02:00
Maxime Gimeno 32999ddd78 New pass over doc, tests and examples 2017-08-07 14:50:23 +02:00
Maxime Gimeno 1fe1e21bb6 Replace maximum_surface_patch by first_index. 2017-08-07 13:32:02 +02:00
Maxime Gimeno 3f57e98386 Add license file 2017-08-07 12:20:50 +02:00
Maxime Gimeno 1bad0e7202 Use edges instead of halfedges for edge_is_feature_t and map 2017-08-07 11:39:07 +02:00
Maxime Gimeno d588c55bbb Make functions free functions and wright doc 2017-08-04 15:06:41 +02:00
Sébastien Loriot 4d3be80122 fix wording 2017-08-03 13:59:44 +02:00
Maxime Gimeno 95dfae314b Rename file 2017-08-02 16:26:53 +02:00
Maxime Gimeno 2f45a46f7c Fix and enhance detect_feature 2017-08-02 16:08:33 +02:00
Maxime Gimeno d4e7b9f622 Fix fwd and plugin 2017-08-02 14:49:18 +02:00
Laurent Rineau f8760d591b Merge pull request #2136 from afabri/Polygon_mesh_processing-accelerate_isotropic_remeshing-GF
Polygon_mesh_processing: Accelerate Isotropic_remeshing
2017-07-21 10:45:32 +02:00
Andreas Fabri cb70bee37c Polygon_mesh_processing: fix doc
`PolygonMesh` -> `TriangleMesh`
2017-07-20 15:00:49 +02:00
Laurent Rineau 1d4d0dcec0 Merge pull request #2153 from janetournois/PMP-add_random_perturbation-jtournois
PMP - add random perturbation for triangle meshes
2017-07-17 12:43:58 +02:00
Laurent Rineau c53c3f9abd Shorten the lines with a typedef 2017-07-12 15:26:09 +02:00
Andreas Fabri 70b13af39c Do not pollute the boost namespace 2017-07-12 12:11:34 +02:00
Andreas Fabri 886bd840cf Make the dynamic property map an implementation detail 2017-07-11 20:32:23 +02:00
Andreas Fabri 5ba2161d21 Make isotropic remeshing compile with OpenMesh 2017-07-11 20:32:22 +02:00
Andreas Fabri c35a018135 Move add and remove of property maps in namespace internal (realizing that it is wrong to claim that it works for any FaceGraph 2017-07-11 20:31:34 +02:00
Laurent Rineau a4a30648f7 Fix warnings 2017-07-11 20:31:34 +02:00
Jane Tournois 860cf84b9f fix the own_tree logic, that is not valid anymore
the question is to know whether the vector<AABB_tree*> is built
or not
2017-07-11 20:31:34 +02:00
Jane Tournois 63c3881bc4 comments cleaning 2017-07-11 20:31:34 +02:00
Jane Tournois 0185563131 remove default constructor for Connected_components_pmap
keep only one constructor, and compute the connected components
only conditionally when they are needed
2017-07-11 20:31:34 +02:00
Jane Tournois 7f9abe0eb2 remove outdated comment 2017-07-11 20:31:33 +02:00
Jane Tournois 108a8ecbbe fix the use of Connected_components_pmap
when one is given by the user, we don't want to remove it
when we compute one on-the-fly, we do

also fix the debug code accordingly
2017-07-11 20:31:33 +02:00
Jane Tournois 44c6114b2c use the new dynamic property map system for the halfedge_status_pmap 2017-07-11 20:31:33 +02:00
Jane Tournois 2e1b752aae use the new dynamic property map system for the face_patch_map 2017-07-11 20:31:33 +02:00
Andreas Fabri 2bfd037c2d Add keyword template 2017-07-11 20:31:31 +02:00
Jane Tournois 2213628c49 first attempt to remove SM_HALFEDGE_STATUS_PMAP
there is some cleaning left to do,
including the dealing with remove_property_map
2017-07-11 20:31:31 +02:00
Jane Tournois 07cb8df9d0 cleaning 2017-07-11 20:31:31 +02:00
Andreas Fabri 1b41423bf1 fix variable name 2017-07-11 20:31:31 +02:00
Andreas Fabri 3aff30811f remove redefining typedef 2017-07-11 20:31:31 +02:00
Andreas Fabri 0e8397ed8e Add typename 2017-07-11 20:31:30 +02:00
Andreas Fabri 704b8c8c2d If there is only 1 connected component there is no corner 2017-07-11 20:31:30 +02:00
Andreas Fabri 7a5f38c77b bug fix for 3220c14 2017-07-11 20:31:30 +02:00
Andreas Fabri 72de5a4de3 Reserve to avoid reallocation 2017-07-11 20:31:30 +02:00
Andreas Fabri db1a11b5c9 Reserve to avoid reallocation 2017-07-11 20:31:29 +02:00
Andreas Fabri ecaad9a83f If there is only 1 connected component a vertex IS on the patch 2017-07-11 20:31:29 +02:00
Andreas Fabri 4e76d5619c If there is only 1 connected component, we don't need a map to look up the same value 2017-07-11 20:31:29 +02:00
Andreas Fabri 2ce105f516 BUG FIX: In a previous commit a line got lost 2017-07-11 20:31:29 +02:00
Andreas Fabri 8cc58040fc fix typo. Note also that in a previous fix I accidentally added code for the Surface_mesh::Property_map 2017-07-11 20:31:29 +02:00
Andreas Fabri 9a7ddead28 no need to find() 2017-07-11 20:31:29 +02:00
Andreas Fabri 86964336ad make a cheap test first 2017-07-11 20:31:29 +02:00
Andreas Fabri 5acfe4520e No need to circulate around vertices if we have a mesh without border and without constraints 2017-07-11 20:31:29 +02:00
Andreas Fabri 8af5dfb077 Hopefully less is_collapse_allowed() tests 2017-07-11 20:31:29 +02:00
Andreas Fabri 845e319851 join ranges instead of copying them into a single std::vector 2017-07-11 20:31:28 +02:00
Andreas Fabri a8152a5bda Don't construct a triangle 2017-07-11 20:31:28 +02:00
Andreas Fabri c361eab5b5 Do less degree calculations 2017-07-11 20:31:28 +02:00
Andreas Fabri 6b8cdf8dd3 cleanup 2017-07-11 20:31:28 +02:00
Andreas Fabri 1f8204a648 cleanup 2017-07-11 20:31:28 +02:00
Andreas Fabri ec229834dd Switch to a hard-wired propery map 2017-07-11 20:31:28 +02:00
Andreas Fabri fac05f2498 code transformation to prepare switch to a propery map 2017-07-11 20:31:28 +02:00
Andreas Fabri 724a086822 typo 2017-07-11 20:31:28 +02:00
Andreas Fabri 118020e03a Remove #include of AABB_filtered_projection_traits.h 2017-07-11 20:31:28 +02:00
Andreas Fabri 6385bdcfbf Use an AABB_tree per patch 2017-07-11 20:31:28 +02:00
Laurent Rineau d187d5e229 fix warnings 2017-07-10 18:10:30 +02:00
Sebastien Loriot 196fb95308 Merge branch 'master' into PMP-add_random_perturbation-jtournois 2017-07-10 17:48:54 +02:00
Andreas Fabri 1ec6d7b058 Make repair_plugin work for Surface_mesh 2017-07-10 16:03:04 +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
Mael Rouxel-Labbé ad553fe77d Removed number_of_borders from doxygen-readable space 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
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
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 cf14854161 re-project points onto the input surface after 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
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
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
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 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 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 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 bf3542116a Polygon_mesh_processing: Fix documentation
splitted -> split
2017-04-26 14:42:59 +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
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
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 a79f461548 be more permissive for open meshes 2017-03-15 17:13:40 +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 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 69fbe19f06 fix make_terminal()
if the node is already terminal, no need to break its degree
This was an issue if the degree is actually 0
2017-02-10 14:00:07 +01:00
Maxime Gimeno 3d8aaf0a6e Add license headers 2017-02-09 15:46:01 +01:00
Maxime Gimeno 0f9c102516 Move the enums in a namespace parameters to clean-up the namespace CGAL. 2017-02-09 15:29:18 +01:00
Maxime Gimeno 21f305db27 Use an include system to factorize the macro calls in PMP and BGL. 2017-02-09 14:14:11 +01:00
Laurent Rineau 1a2f617d89 Merge pull request #1843 from afabri/BGL_accelerate_copy_face_graph-GF
Accelerate copy_face_graph
2017-02-08 17:32:47 +01:00
Maxime Gimeno 07b5550f2f Use macros to add parameters in named_fucntion_params.h 2017-02-08 16:37:14 +01:00
Laurent Rineau 4c3ea8908e Merge pull request #1875 from sloriot/PMP-rename_bbox_3
Rename bbox_3 functions
2017-02-06 15:19:18 +01:00
Laurent Rineau 7946d3e31d Merge pull request #1871 from sloriot/PMP-coref_same_points
Identical points after corefinement
2017-02-02 17:18:21 +01:00
Sébastien Loriot cc899819f2 bbox is ambiguous 2017-02-02 14:42:53 +01:00
Sébastien Loriot 2ed0a35153 fix doc warnings 2017-01-31 14:40:10 +01:00
Sébastien Loriot a675fa60e4 rename bbox_3 functions
free functions in CGAL have no dimension suffix
2017-01-31 14:33:56 +01:00
Sebastien Loriot a0bcc82311 Merge pull request #1860 from sloriot/PMP-fix_namespace_pollution
Avoid namespace pollution
2017-01-30 15:55:22 +01:00
Sébastien Loriot 0f540a8116 make sure the same points in different triangle meshes have the same coordinates 2017-01-30 15:35:10 +01:00
Andreas Fabri 12b3a78cc6 fix typos in code 2017-01-27 09:41:00 +01:00
Andreas Fabri 006bfdfec0 Add #ifdef CGAL_PMP_REFINE_DEBUG for total_timer 2017-01-27 09:21:03 +01:00
Sébastien Loriot a3666887a1 remove dependancy to PSP 2017-01-26 18:27:49 +01:00
Sébastien Loriot cfc30502b7 move Distance_computation and implementation in internal namespace 2017-01-26 14:18:13 +01:00
Sebastien Loriot b761bad0a9 Merge pull request #1856 from afabri/PMP-fix_doc_CC-GF
PMP: Fix error in the ref manual of connected components functions
2017-01-25 17:55:37 +01:00
Andreas Fabri 07f62beb4b fix typos 2017-01-25 17:52:44 +01:00
Andreas Fabri dc34a06c8b PMP: Fix error in the ref manual of connected components functions 2017-01-25 16:12:38 +01:00
Maxime Gimeno 60d0a39d42 fixes 2017-01-24 14:46:36 +01:00
Maxime Gimeno 82860688d1 Fix the doc to avoid diffs between 1.8.4 and 1.8.13 outputs 2017-01-24 09:39:23 +01:00
Sébastien Loriot 50510c05ea add include directive for license of all GPL header files
done using:
ack-grep "^GPL" */package_info/*/license.txt -l | awk -F "/" '{print $1}' > /tmp/gpl_packages
for i in `cat /tmp/gpl_packages | \
          grep -v Operations_on_polyhedra | \
          grep -v Algebraic_kernel_for_circles | \
          grep -v Algebraic_kernel_for_spheres | \
          grep -v Polyhedron_IO`;
do
  echo $i
  python Scripts/developer_scripts/add_license_in_pkg_header.py $i
done
python Scripts/developer_scripts/add_license_in_pkg_header.py Operations_on_polyhedra Polygon_mesh_processing
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_circles Circular_kernel_2
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_spheres Circular_kernel_3
python Scripts/developer_scripts/add_license_in_pkg_header.py Polyhedron_IO Polyhedron
2017-01-19 15:20:25 +01:00
Sébastien Loriot 3fa4abe869 move function to init index maps to BGL 2017-01-18 16:37:34 +01:00
Sébastien Loriot b3340608cc move property map binders to property_map.h 2017-01-18 16:37:24 +01:00
Andreas Fabri 528c6a19a8 Add an #include 2017-01-16 19:16:19 +01:00
Sébastien Loriot ce16295297 add a function to init halfedge indices 2017-01-16 18:34:55 +01:00
Sébastien Loriot 516b732adf using tbb::atomic instead of cpp11::atomic 2017-01-16 15:18:46 +01:00
Sébastien Loriot b79cc00461 add missing public 2017-01-16 09:27:24 +01:00
Sébastien Loriot 0446958c5a parallel version of mesh distance function requires cpp11::atomic 2017-01-13 13:19:29 +01:00
Sébastien Loriot 449205c486 avoid pmp_bgl_named_params to inherit from named_params_base
this fix a warning with old version of boost < 1.51
Use another workaround to avoid the compilation error
of the area(face_range,tm) overload
2017-01-13 13:18:55 +01:00
Sébastien Loriot e3f9ffa6f8 workaround for named parameters with old boost version (<1.51)
handle the renaming of a struct and move get_param overloads
in the boost namespace (to match qualified call boost::get_param)
2017-01-13 12:05:51 +01:00
Sébastien Loriot 9ae7b37845 Merge pull request #1745 from sloriot/Polyhedra_corefinement-enhancements-sloriot
Add corefinement operations in PMP
2017-01-12 12:05:18 +01:00
Sébastien Loriot 6ac45f820a use PMP for corefinement and intersection plugins 2017-01-11 15:16:03 +01:00
Sébastien Loriot 59001acd92 update the implementation of clip plugin to use new corefinement PMP code 2017-01-10 15:38:24 +01:00
Sébastien Loriot 6743afaee3 add a function to initialize vertex index maps 2017-01-10 15:04:54 +01:00
Sébastien Loriot 2cac99b2d6 protect call to max function 2017-01-09 12:00:06 +01:00
Sébastien Loriot cafe151c03 fix an error and two warnings 2017-01-09 08:28:13 +01:00
Sébastien Loriot 706e8c81ce fix copy-paste error 2017-01-05 15:56:18 +01:00
Sébastien Loriot 33979fc8cd remove wrong comments 2017-01-05 15:14:12 +01:00
Sébastien Loriot b48a6e8965 handle dangling polylines
An intersection polyline that has a node of degree one that is not
on the boundary of both meshes invalidates all operations.
It might be possible to do the union in some case but it does not
seems relevant for now
2017-01-03 10:01:23 +01:00
Sébastien Loriot e0010627ee use a simpler to read form for the sorted_around_edge predicate
in addition it become a real predicate (no construction)
2017-01-02 19:25:48 +01:00
Sébastien Loriot 9f2d102b7f no longer used intermediate interval layer
this was actually not needed since EPECK already have this
filter layer
2017-01-02 19:25:44 +01:00
Sébastien Loriot 7ed402b3f7 optimize the number of nodes created in the DAG
- Use new kernel functors for intersection points
- Construct points from double to have only one node per point
  (doubles are stored in Lazy_rep_3)
2017-01-02 19:25:44 +01:00
Sébastien Loriot 88d391ab51 improve phrasing 2016-12-30 15:46:13 +01:00
Sébastien Loriot 6341b5d5ed rename named parameter and update concept after adding edge sampling 2016-12-30 14:52:10 +01:00
Sébastien Loriot 91278918d7 reorder named parameters 2016-12-29 18:06:58 +01:00
Sébastien Loriot a847818904 improve description 2016-12-29 18:02:36 +01:00
Sébastien Loriot 886b65edd1 remove set_ prefix from named parameters 2016-12-29 17:50:16 +01:00
Sébastien Loriot bfc20a922b move using instructions 2016-12-29 07:21:04 +01:00
Sébastien Loriot 283815c875 improve doc 2016-12-29 07:21:04 +01:00
Sébastien Loriot 94b2720fbd use name parameters for selecting the sampling algorithm
A dedicated sampling of edges is also introduced as well as
an option to use input vertices to evaluate the distance.
2016-12-29 07:20:25 +01:00
Sébastien Loriot db6b7e0a00 add sampling on edges and vertices for a single face (grid case)
also add missing overload
2016-12-29 07:20:25 +01:00
Sébastien Loriot 5ee83b555b remove Triangle_3 extra requirements 2016-12-29 07:20:25 +01:00
Sébastien Loriot 621c6c5457 cosmetic changes 2016-12-29 07:20:24 +01:00
Sébastien Loriot fd87870977 fix constructed vector 2016-12-29 07:20:24 +01:00
Maxime Gimeno 4568381657 Another fix for the doc 2016-12-29 07:20:24 +01:00
Maxime Gimeno cdc76129d0 Keep fixing the doc 2016-12-29 07:20:24 +01:00
Andreas Fabri 18a39a54bd fix VC++ warnings by adding static_cast 2016-12-29 07:20:24 +01:00
Maxime Gimeno 768e52fe54 Another fix of the doc. 2016-12-29 07:20:23 +01:00
Maxime Gimeno 1d43e641d6 Fix measure.h and update demo plugin code 2016-12-29 07:20:23 +01:00
Maxime Gimeno 581b677a44 Add sample_face() and fix some doc. 2016-12-29 07:20:23 +01:00
Simon Giraudot 98b5ae4682 Fix angle/circumcenter/m_edge problems 2016-12-29 07:20:23 +01:00
Maxime Gimeno 06dd4a4522 Add a geom-traits concept for distance functions
Update the code and the doc accordingly
2016-12-29 07:20:23 +01:00
Jane Tournois e9f6885d3e minor doc fixes 2016-12-29 07:20:23 +01:00
Jane Tournois 2e804f6e48 fix the doc of `sample_triangle_mesh`
fix a few typos, and fix the layout of bullet lists
2016-12-29 07:20:22 +01:00
Maxime Gimeno d5bdf342d4 Use functor instead of free function volume() 2016-12-29 07:20:22 +01:00
Maxime Gimeno 9140ab3f31 Replace approximated by approximate in the function names. 2016-12-29 07:20:22 +01:00
Sébastien Loriot 3710a60b9c doc clean up 2016-12-29 07:20:22 +01:00
Maxime Gimeno 0cc2c59981 Fixes for SF. 2016-12-29 07:20:22 +01:00
Maxime Gimeno cc44c571e5 Shorten the code lines. 2016-12-29 07:20:22 +01:00
Maxime Gimeno 3fca4399c6 Add examples and keep fixing the doc 2016-12-29 07:20:22 +01:00
Maxime Gimeno cbf7e6b722 Doc and test fix. 2016-12-29 07:20:21 +01:00
Sébastien Loriot 81b11ee2d5 Bug-fix: accept range of points as input and not only vectors 2016-12-29 07:20:21 +01:00
Maxime Gimeno 0c3edf822c Add tests for misisng documented functions. 2016-12-29 07:20:21 +01:00
Maxime Gimeno a4127d74c1 Add distance computation to poisson_reconstruction's example. 2016-12-29 07:20:21 +01:00
Maxime Gimeno 6cf0504f95 Fixes and clean-up : first part. 2016-12-29 07:20:21 +01:00
Maxime Gimeno 3cedefa08e Update the doc. 2016-12-29 07:20:21 +01:00
Maxime Gimeno 9e767fd16f Fix and clean-up 2016-12-29 07:20:21 +01:00
Maxime Gimeno 6858d65e5d Update and fix
Parallelize the plugin if TBB is linked with CGAL and fix the parallelized code in distance.h.
2016-12-29 07:20:21 +01:00
Maxime Gimeno a232a257ca Implementation of the `max_distance_to_point_set()` function. 2016-12-29 07:20:21 +01:00
Maxime Gimeno 033adb29f1 Update the demo and fix the code for Polyhedron. 2016-12-29 07:20:20 +01:00
Maxime Gimeno 542efa95d7 Implement the NamedParameters functions and use the property maps. 2016-12-29 07:20:20 +01:00
Maxime Gimeno c9ec5a224e Remove useless sampling. 2016-12-29 07:20:20 +01:00
Maxime Gimeno f742ad250e Fix for use with Polyhedron
- Polyhedron does not have a halfedge_around_face_descriptor, thus it does not respect the BGL doc and we must use a regular halfedge_descriptor instead.
2016-12-29 07:20:20 +01:00
Maxime Gimeno 39e7b76902 WIP 2016-12-29 07:20:19 +01:00
Maxime Gimeno 0f13cde758 Implementation:
- cherry-pick Random_generator
- implement hausdorff distance functions
- implement sample_triangle_mesh
2016-12-29 07:20:19 +01:00
Maxime Gimeno 62e78f34e5 WIP 2016-12-29 07:20:19 +01:00
Maxime Gimeno c4a6da2f8b Transform the overloads to use Surface_mesh instead of triangle meshes. 2016-12-29 07:20:19 +01:00
Maxime Gimeno c5a17ce354 Change `approximated_Hausdorff_distance()` to use a Surface_mesh instead of a triangle range. 2016-12-29 07:20:19 +01:00
Sébastien Loriot 2577fd912e WIP to add Hausdorff distance to a mesh 2016-12-29 07:20:19 +01:00
Sébastien Loriot 9dbaf36646 put function is correct group 2016-12-26 08:33:43 +01:00
Sébastien Loriot 6b72ab2a6e remove a too strict check that eliminate all operations in case of edge tangency 2016-12-22 16:17:02 +01:00
Sébastien Loriot 39fe7c2936 handle the import of border halfedge 2016-12-22 16:11:21 +01:00
Sébastien Loriot d18e9b2e85 fix typo 2016-12-22 10:25:08 +01:00
Sébastien Loriot 72119d08c8 add an internal function to collect degenerate faces 2016-12-22 09:23:53 +01:00
Sébastien Loriot 98862227be make it work with Polyhedron
the indices of the faces are initialized now if the face index map is writable
2016-12-19 16:49:51 +01:00
Sébastien Loriot a7ee97a92c remove unused variable 2016-12-15 17:34:21 +01:00
Andreas Fabri 2ed5bfd9cd Construct exact points only once, and the normal of the plane directly from three points 2016-12-14 09:23:35 +01:00
Sébastien Loriot e70f7db943 fix assertion 2016-12-14 08:29:30 +01:00
Sébastien Loriot 3282ed2847 Skip an orientation test for inserting the third point
since we already know the orientation of the input points we can skip it
2016-12-14 08:25:48 +01:00
Sébastien Loriot c679453100 remove a test that is always true 2016-12-13 18:30:19 +01:00
Sébastien Loriot 1a14d26a86 optimize the triangulation of faces
- insert the 3 first points outside of the affine hull (no check of equality)
- insert points on edges using locate type to avoid orientation tests
  of collinear points
2016-12-13 17:10:50 +01:00
Sébastien Loriot a83e23611a fix typo 2016-12-13 16:16:52 +01:00
Sébastien Loriot 55c3e1ad61 avoid using a std::set and a std::vector for container storing at most 2 elements
Thanks @afabri
2016-12-12 22:29:05 +01:00
Sébastien Loriot 12fea568f0 using a vector instead of a set 2016-12-12 21:44:07 +01:00
Andreas Fabri 1607ccb411 Fix VC2015 warning 2016-12-12 13:15:19 +01:00
Sébastien Loriot 478e5283cd qualify function calls with boost namespace 2016-12-12 12:54:44 +01:00
Sébastien Loriot 6c7bee5d0a fix conversion warnings 2016-12-09 14:14:08 +01:00
Sébastien Loriot fac4a6add5 fix the report of polyline in the visitor
the 2 first nodes were always  reported twice
2016-12-09 13:36:55 +01:00
Sébastien Loriot 804f878556 fix warnings 2016-12-08 15:22:04 +01:00
Sébastien Loriot ac2faf9fe1 fix doc 2016-12-05 18:28:29 +01:00
Andreas Fabri 10bd9897f3 Compare with 0 in order to avoid a warning 2016-12-05 17:18:11 +01:00
Sébastien Loriot c3e1309181 update from master branch 2016-12-05 14:37:29 +01:00
Sébastien Loriot 845317a9fb fix doc and remove todo done 2016-12-05 14:32:19 +01:00
Sébastien Loriot f83a620087 fix warnings 2016-12-05 14:09:04 +01:00
Laurent Rineau 49ffa5ed81 Merge pull request #1730 from MaelRL/PMP-Fix_border_halfedges_compilation
Fixed a compilation issue in PMP's border_halfedges()
2016-12-05 11:49:54 +01:00
Sébastien Loriot 56b8908dac remove a todo
if we unmark intersection edge inside a coplanar patch, we will have something
not consistant with what is done is corefine(). For now I keep it like this
2016-12-05 11:12:47 +01:00
Sébastien Loriot fb68b3a6c2 add implementation of does_bound_a_volume + test 2016-12-05 11:06:13 +01:00
Sébastien Loriot 7b727ea7cf expose the internal AABB-tree class
that was a bug as the constructor taking an AABB-tree could
not be used otherwise
2016-12-02 16:11:48 +01:00
Sébastien Loriot 3dc7076b79 add an function to check inward orientation when extreme vertex is known 2016-12-02 16:10:29 +01:00
Sébastien Loriot 6bc8caac43 use safer property choosing mechanism 2016-12-02 11:35:18 +01:00
Laurent Rineau a80fc35561 Merge pull request #1696 from MaelRL/PMP-Fix_border_halfedges
Fixed an implementation of PMP's border_halfedges()
2016-12-02 11:35:07 +01:00
Laurent Rineau 78ae3414e4 Merge pull request #1693 from janetournois/PMP-fixes_for_isotropic_remeshing_4.9-jtournois
PMP : fixes for isotropic remeshing
2016-12-02 11:34:51 +01:00
Laurent Rineau 9bb29f0c75 Merge pull request #1628 from MaelRL/PMP-Fix_self_intersections
Fixed self intersection tests
2016-12-02 11:34:38 +01:00
Laurent Rineau e559968307 Merge pull request #1682 from sloriot/PMP-use_readable_pmap_api
Use readable property map API
2016-12-02 11:33:54 +01:00
Sébastien Loriot 46cdd7f7dc add testsuite for corefine 2016-12-02 08:43:25 +01:00
Sébastien Loriot 820ebd8eee fix warnings and ambiguity of copy_edge_mark 2016-12-01 15:16:57 +01:00
Sébastien Loriot 834869c533 add a convenience overload 2016-12-01 15:16:57 +01:00
Mael Rouxel-Labbé bfbba26124 Fixed a compilation issue in PMP's border_halfedges()
Previous code did not compile if a face index map was not given
in named parameters, nor as an internal property map
2016-12-01 12:04:12 +01:00
Sébastien Loriot 853c156c10 Handle transfer of marks from input to output 2016-11-30 14:18:42 +01:00
Sébastien Loriot 2671c4c922 bugfix: use the backuped face as the patch border halfedge was set on-border 2016-11-30 14:18:00 +01:00
Sébastien Loriot 812bc885d5 add function that I forgot to port 2016-11-30 10:29:28 +01:00
Sébastien Loriot bc719ad192 fix copy-paste error 2016-11-23 15:52:50 +01:00
Sébastien Loriot 6db2bff67b handle call to corefinement functions with identical meshes 2016-11-23 15:48:00 +01:00
Sébastien Loriot 3f316c9596 fix warnings and add missing include directive 2016-11-23 14:35:55 +01:00
Jane Tournois e5dcef0528 deal with surface patch indices during collapse
for checking that faces do not get inverted
2016-11-21 17:55:25 +01:00
Jane Tournois 5a2eaa96a0 use Patch_id(-1) as invalid patch id 2016-11-21 17:46:22 +01:00
Jane Tournois 0b4ecf6531 is_corner should return true for a dart 2016-11-21 14:51:08 +01:00
Jane Tournois c28dc6f210 avoid conversion warning 2016-11-21 14:47:46 +01:00
Jane Tournois 8f8ccc3c39 fix the case where patch2 was not met yet 2016-11-18 17:44:10 +01:00
Jane Tournois f1cb55bf80 deal with boundaries by skipping null_face 2016-11-17 16:29:03 +01:00
Mael Rouxel-Labbé 92b4a49e38 Documentation changes for PMP's border_halfedges() 2016-11-17 14:17:26 +01:00
Jane Tournois fb1af78ab5 check orientation of faces surface patch per surface patch 2016-11-17 11:45:17 +01:00
Mael Rouxel-Labbé 0851d2b4e8 Fixed an implementation of PMP's border_halfedges() returning interior edges
and the corresponding documentation.
2016-11-16 11:22:35 +01:00
Jane Tournois b29c578d19 fix the boundary case
once the no-inversion test has been performed, check that we don't have
a boundary problematic case
It would require to reswap, and break the border of the patch to be remeshed
2016-11-15 17:18:13 +01:00
Jane Tournois e4f9f9fea7 check that relaxation does not produce an inverted face
it can happen close to the boundary, where things are naturally
more constrained
2016-11-15 17:17:53 +01:00
Jane Tournois 2e6d55f813 remove a todo 2016-11-15 17:17:32 +01:00
Jane Tournois 7be46604ec fix collapse step
the inverse orientation test should also be performed on the border
2016-11-15 17:17:16 +01:00
Jane Tournois e8adc69337 rename function to improve code readability 2016-11-15 17:17:04 +01:00
Jane Tournois 33ef17760f avoid collapsing an isolated constrained edge in the "middle" of a patch 2016-11-15 17:16:39 +01:00
Sébastien Loriot f128addaca fix order of the parameters 2016-11-13 19:54:13 +01:00
Sébastien Loriot 5ec738fcd8 qualify a call to choose_param 2016-11-13 19:53:46 +01:00
Sébastien Loriot b34d8cd6b8 use readable property map API
operator[]() is only required in Lvalue property map
2016-11-11 10:04:35 +01:00
Sébastien Loriot 478a40c9aa add an undocumented function to remove border edges
this works even if it does not satisfy the link condition
2016-11-10 18:52:20 +01:00
Sébastien Loriot 1501b4400c int -> std::size_t for node ids 2016-11-10 14:38:10 +01:00
Sébastien Loriot d7c6d30def directly use the halfedge used to create the points 2016-11-10 14:27:10 +01:00
Sébastien Loriot 48fa75f829 the halfedges reported for intersection on a vertex or an edge was incorrect
copy-paste error...
2016-11-10 14:22:22 +01:00
Sébastien Loriot 167c52b00d add todos, assertions and comments 2016-11-10 09:45:19 +01:00
Sébastien Loriot f68a2a4dff edges are not sorted and do not appear twice: do not skip them using indices 2016-11-10 09:41:18 +01:00
Sébastien Loriot ddaf6cd90b avoid reporting several time the same node per edge and face
This happens only in the case of coplanar triangles and can
be avoided by only reporting the node when it is first
created
2016-11-10 09:23:02 +01:00
Sébastien Loriot 918b71339f bugfix: copy-paste error, wrong mesh 2016-11-04 09:55:56 +01:00
Sébastien Loriot 1ed98a7d9a simply the detection of coplanar faces
coplanar faces are made of 3 intersection edges and each of its vertex
has a node-id != -1
2016-11-03 14:31:20 +01:00
Sébastien Loriot cab2634387 bug fix in the detection of intersection edges in the middle of a coplanar patch
do not remove the edges from the intersection map while we are still using them
2016-11-03 14:18:12 +01:00
Sébastien Loriot 8c8a62b7e0 Correctly handle tangencies of input model
this handle the case of identical models (even differently meshed)
and model that are tangent only at vertices

(backport from Operations_on_polyhedra)
2016-11-03 10:41:00 +01:00
Mael Rouxel-Labbé 8c7e45b2eb Fixed missing include in self_intersections.h 2016-10-31 15:24:33 +01:00
Mael Rouxel-Labbé 3591b39d33 Fixed self intersection tests
Adjacent faces that were coplanar and overlapping were not being detected
2016-10-28 14:25:16 +02:00
Laurent Rineau d37c400fc9 Merge pull request #1606 from sloriot/PMP-make_border_test_safer
Make a test safer
2016-10-26 14:39:19 +02:00
Jane Tournois 2d72090cba this internal property map is not needed anymore 2016-10-25 17:14:57 +02:00
Sébastien Loriot 9d5e675c61 add missing include directive 2016-10-24 14:50:48 +02:00
Laurent Rineau 24b7757282 Merge pull request #1517 from sloriot/PMP-more_bbox_3_overloads
More bbox 3 overloads for face graph models
2016-10-24 11:47:13 +02:00
Sébastien Loriot e075757f18 remove assertion always true to avoid a warning 2016-10-21 18:04:30 +02:00
Mael Rouxel-Labbé f27fa0d0e8 Add missing include directive 2016-10-21 17:58:11 +02:00
Sébastien Loriot c2d5b501ed make a test safer 2016-10-21 17:36:41 +02:00
Sébastien Loriot 1bdede2bcd fix warning 2016-10-20 18:04:11 +02:00
Sébastien Loriot f4d67dd4af Refresh branch from master 2016-10-19 14:27:08 +02:00
Sébastien Loriot f9ecd715b5 Revert "rename functions computing simplex bbox to bbox_3"
This reverts commit 357f261231.

The names have to be different otherwise for models of FaceGraph
have face, vertex and edge descriptors being pure integer the
overloads will be ambiguous
2016-10-19 14:14:09 +02:00
Sébastien Loriot eceb0a8b11 add doc for self-intersection tests restricted to a set of faces
also add an overload without named parameters
2016-10-19 13:57:23 +02:00
Andreas Fabri 423242be31 dihedral_angle() -> approximate_dihedral_angle() 2016-10-11 15:35:20 +02:00
Laurent Rineau 223c1cf5a4 Merge pull request #1530 from lrineau/Installation-compute_dependencies-GF
Compute and fix packages dependencies
2016-10-05 13:11:04 +02:00
Laurent Rineau a2f14458f9 Merge pull request #1505 from sloriot/PMP-fix_empty_range_remeshing_bug
Fix a bug in isotropic remeshing when the range is empty
2016-10-05 13:02:27 +02:00
Sébastien Loriot f27bb9168c use latest way to get the vertex point map 2016-09-30 16:00:41 +02:00
Sébastien Loriot 6713621ae3 Update branch with master 2016-09-30 15:43:06 +02:00
Laurent Rineau 6eb6c57401 sync with master 2016-09-30 15:24:02 +02:00
Andreas Fabri c58582b5ec Add global function dihedral_angle() 2016-09-30 15:23:15 +02:00
Andreas Fabri cb4931f1e4 Fix package Polygon_mesh_processing: include headers 2016-09-30 15:23:14 +02:00
Sébastien Loriot d95b3fb00e remove_isolated_vertices was no longer documented due to a missing \endcond 2016-09-30 10:11:01 +02:00
Sébastien Loriot 357f261231 rename functions computing simplex bbox to bbox_3
overloads are possible thanks to a specialization of graph_traits
for named parameter being empty.
That way, the compiler do not try to instantiate the one from boost,
which was looking for vertex_descriptor and edge_descriptor in the
name parameters.
2016-09-30 10:04:12 +02:00
Sébastien Loriot 2398d2612a remove TODOs 2016-09-29 17:19:44 +02:00
Sébastien Loriot 896ae54bdd update the text for named parameters 2016-09-29 17:11:46 +02:00
Sébastien Loriot efa9b9bac4 rename boolean operation functions
The change of names comes from the fact the the constness of input meshes
cannot be guaranteed without having different type of input and output
meshes
2016-09-29 15:25:43 +02:00
Sébastien Loriot 69d790acbe use Construct_bbox_3 from a geom_traits to compute the bbox 2016-09-29 14:58:21 +02:00
Sébastien Loriot ce13630917 rename overload as there are some ambiguities that cannot be overcame 2016-09-29 14:09:50 +02:00
Sébastien Loriot 5143325085 add function to get the bounding box of a vertex, an edge, or a face 2016-09-29 14:09:46 +02:00
Sébastien Loriot 35c2d8dc52 mark intersection edges in output models (in-place cases) using output pmap 2016-09-29 10:40:43 +02:00
Sébastien Loriot d9e91e4fa4 set null_face as face of newly created edges
depending of the type of input, it might be reusing some old
attributes (like Surface_mesh for example)
2016-09-29 10:21:05 +02:00
Sébastien Loriot 8a000baa12 rename functions to disambiguate the call to put/get free functions 2016-09-29 10:20:21 +02:00
Sébastien Loriot 3abb3efd67 fix a typo leading to a bug 2016-09-29 10:18:35 +02:00
Laurent Rineau a3b065175b Merge pull request #1332 from janetournois/PMP-about_internal_pmaps-jtournois
BGL : detect internal property maps, and use it in PMP isotropic remeshing
2016-09-28 18:01:13 +02:00
Laurent Rineau b085f1e7a0 Merge pull request #1442 from sloriot/Polyhedron_demo-add_remove_self_intersections
Add an action to remove self-intersections in a mesh
2016-09-28 18:00:41 +02:00
Sébastien Loriot 46b0abbb3b do nothing if the face range is empty 2016-09-28 13:56:22 +02:00
Sébastien Loriot 5de5315ef5 vertex point map must be default constructible 2016-09-27 17:32:12 +02:00
Sébastien Loriot 6488a8a172 fix warnings 2016-09-27 17:31:38 +02:00
Sébastien Loriot 37f760383d fix template paramaters 2016-09-27 17:30:54 +02:00
Sébastien Loriot 4316b82952 fix warning 2016-09-27 17:28:44 +02:00
Sébastien Loriot 2eb6e14db4 fix typos 2016-09-27 17:27:50 +02:00
Sébastien Loriot de9580e17d add missing include and fix warnings 2016-09-27 17:27:03 +02:00
Sébastien Loriot 90b518113d add a function to generate a default named parameters from an existing one
this is more a syntactic sugar to make clear in the code that something
is not meant to be used
2016-09-27 17:19:00 +02:00
Sébastien Loriot 3b573238b3 copy-paste error 2016-09-27 11:01:55 +02:00
Sébastien Loriot e63b67a9ad Get the default kernel from the property map given instead of the default one 2016-09-27 10:55:48 +02:00
Sébastien Loriot 27b011789c avoid a warning in release mode 2016-09-26 09:19:49 +02:00
Laurent Rineau 119763e168 Merge pull request #1474 from janetournois/PMP-isotropic_remeshing_fix_doc-jtournois
(From a merge of branch 'cgal/releases/CGAL-4.9-branch')
2016-09-23 17:02:56 +02:00
Laurent Rineau 45d87bb333 Merge pull request #1439 from janetournois/PMP-remove_useless_includes-GF
PMP : remove useless includes
2016-09-23 16:51:12 +02:00
Jane Tournois a646158eb0 update doc 2016-09-22 12:10:06 +02:00
Jane Tournois 23d5411e60 remove more useless choose_const_pmap 2016-09-22 12:10:06 +02:00
Jane Tournois 97a534fd8b don't attemp to get the vertex_point map of PMesh when it does not exist 2016-09-22 12:10:06 +02:00
Jane Tournois 064a3510b2 remove useless using boost::choose_pmap and boost::choose_const_pmap 2016-09-22 12:10:06 +02:00
Jane Tournois ef85908fe1 use get_property_map and get_const_property_map everywhere in PMP 2016-09-22 12:10:06 +02:00
Jane Tournois 76e6333a18 fix the use of const_type 2016-09-22 12:10:06 +02:00
Jane Tournois fc58055ec3 use get_const_property_map 2016-09-22 12:10:06 +02:00
Jane Tournois 1aac56ca61 add const_type, and get_const_pmap 2016-09-22 12:10:06 +02:00
Jane Tournois c234af207e fix unused parameter warning 2016-09-22 12:10:06 +02:00
Jane Tournois 756eac95d3 fix compilation error 2016-09-22 12:10:06 +02:00
Jane Tournois 6d9e974bab add documentation 2016-09-22 12:10:06 +02:00
Jane Tournois 047be1346c add the use of face_index_map wherever it's needed
remeshing_test now crashes, don't know why yet
2016-09-22 12:05:51 +02:00
Jane Tournois d50cbf4930 use get_property_map for face_index_map
in isotropic_remeshing and border_halfedges
2016-09-22 12:05:51 +02:00
Jane Tournois 7e1fab420a add get_property_map to get either the internal pmap or cgal_no_property 2016-09-22 12:05:51 +02:00
Jane Tournois d03077abda iterator type of FaceRange should be multi-pass, so ForwardIterator 2016-09-20 15:03:13 +02:00
Sébastien Loriot 6aec9dbc8c fix typo 2016-09-20 09:17:10 +02:00
Laurent Rineau e2d04e54e0 Merge remote-tracking branch 'cgal/releases/CGAL-4.8-branch'
> 3176b37 Merge pull request #1452 from mglisse/Number_types-Eigen_Literal-glisse
> 1705702 Merge pull request #1417 from afabri/Polyline_simplification-Bugfix_choose_correct_Itag-GF
> 3bef239 Merge pull request #1462 from sloriot/PMP-add_missing_include
2016-09-15 17:25:20 +02:00
Sebastien Loriot 343fb726fa Add missing include directive 2016-09-15 15:52:47 +02:00
Jane Tournois bffb1f63f7 document that exact constructions are not supported
and write a proposal about how to support exact constructions
2016-09-13 11:05:55 +02:00
Jane Tournois e0bce515cf add a macro to be less verbose 2016-09-12 17:16:30 +02:00
Sébastien Loriot b7db87ab40 add a plugin to remove self-intersection in a mesh 2016-09-08 15:01:44 +02:00
Jane Tournois 4f2adeaff0 remove useless includes 2016-09-08 14:07:15 +02:00
Sébastien Loriot 5300028a57 first version of boolean operations with FaceGraph models using corefinement 2016-09-02 15:59:38 +02:00
Jane Tournois 0baa89452d add info about self-intersections 2016-08-10 09:45:40 +02:00
Sébastien Loriot 9edbdad3b9 add prototype for PMP::boolean_operation
add overloads for  PMP::join, PMP::intersection and PMP::difference
and complete the implementaiton with a call to PMP::boolean_operation
2016-07-06 11:43:16 +02:00
Sébastien Loriot 918fcf850b fix indentation issue 2016-07-05 15:01:40 +02:00
Sébastien Loriot dbf0f2de3d plug is-constrained edge maps 2016-07-05 14:54:32 +02:00
Sébastien Loriot 208526cc4e update comments 2016-07-05 13:46:04 +02:00
Sébastien Loriot f531269fab remove todo and document throw_on_self_intersection 2016-07-05 13:28:56 +02:00
Sébastien Loriot dbbb723a82 document surface_intersection and plug named-parameter mechanism 2016-07-05 12:00:04 +02:00
Sébastien Loriot c3cd3b26f8 remove an unneeded parameter 2016-07-05 11:57:51 +02:00
Sébastien Loriot 604645dfd7 remove doc todos done 2016-07-05 10:12:59 +02:00
Sébastien Loriot 8781dd6942 Add an output builder parameter to the corefinement visitor 2016-07-04 16:29:02 +02:00
Sébastien Loriot 7a0ff9d28e First implementation of the corefinement of 2 triangle meshes
implementation uses a visitor for the function computing the intersection
of 2 triangle meshes.
2016-07-04 16:28:52 +02:00
Sébastien Loriot c477ce88ff improve doc 2016-06-24 16:58:57 +02:00
Sébastien Loriot 58044ab929 document PMP::parameters::all_default() 2016-06-24 16:58:51 +02:00
Sébastien Loriot 84311eab64 update doc after the review of @janetournois 2016-06-24 16:58:34 +02:00
Sébastien Loriot 27badf0b43 Add a version of the code to compute intersection of TriangleMesh
The code is a copy the one in Operation_on_polyhedra that was
only working with Polyhedron_3.
For the moment only default parameters are used. NamedParameters
will be introduced later.
2016-06-24 16:58:12 +02:00
Sébastien Loriot 2d4153fc3d update Polyhedra_corefinement-enhancements-sloriot from master 2016-06-24 14:54:33 +02:00
Sebastien Loriot e819e65f96 Merge pull request #1187 from maxGimeno/Fix_deformation-GF
Polyhedron_demo: Enhance deformation
2016-06-22 13:18:31 +02:00
Sébastien Loriot 79ad1b2dc6 Merge pull request #1141 from janetournois/PMP-isotropic_remeshing_smoothing_options-jtournois
PMP isotropic_remeshing : smoothing options
2016-06-22 11:46:05 +02:00
Jane Tournois 85744d3c63 the validity of the vertex_is_constrained_map should be fixed
the problem was that we can't control which of va and vb will be vkept
when collape_edge is called
now it's clear wrt the constrained map
2016-06-21 11:19:41 +02:00
Jane Tournois be65dac810 don't use double but FT 2016-06-14 14:22:18 +02:00
Jane Tournois 6f46122f52 attempt to fix ambiguity warning 2016-06-14 14:17:42 +02:00
Jane Tournois 1e2e1f1dd2 rename dummy_named_params to named_params_base 2016-06-14 14:17:41 +02:00
Jane Tournois 5b41ca088b avoid stack overflow in Epeck due to += 2016-06-14 14:17:40 +02:00
Jane Tournois 3e620a07be WIP replace double by FT
the measures_test does not compile with this commit
2016-06-14 14:17:34 +02:00
Sébastien Loriot 6d42b1873b remove useless typedef instructions 2016-06-14 14:17:29 +02:00
Sébastien Loriot 5af65c983d remove useless default template argument 2016-06-14 14:17:28 +02:00
Sébastien Loriot c85c4e01ad remove useless comment and fix indentation 2016-06-14 14:17:27 +02:00
Andreas Fabri 702149cd93 Also test EPEC in the testsuite 2016-06-14 14:17:26 +02:00
Andreas Fabri 73fb767025 Change the @warning to what Laurent suggested 2016-06-14 14:17:24 +02:00
Jane Tournois 7b5ca9ed7f triangle_normal should return the normal with norm = area(triangle) 2016-06-14 14:17:20 +02:00
Jane Tournois d8f3da483b use kernel functors 2016-06-14 14:17:19 +02:00
Jane Tournois 630a8f4014 use kernel functors 2016-06-14 14:17:17 +02:00
Jane Tournois 6b284a8e0a update code from master after rebase, and use CGAL functors 2016-06-14 14:17:16 +02:00
Jane Tournois 0af657207b fix compilation and the use of Construct_sum_of_vectors_3 2016-06-14 14:17:15 +02:00
Jane Tournois f940302044 document that fairing is not exact 2016-06-14 14:17:12 +02:00
Jane Tournois 109b9fdfe7 use CGAL::approximate_sqrt(x) to replace CGAL::sqrt(to_double(x)) 2016-06-14 14:17:11 +02:00
Jane Tournois 4556530682 make a better use of geom_traits in compute_face_normal 2016-06-14 14:17:07 +02:00
Jane Tournois 211426e3fe fix compilation (extra */ added in comments) 2016-06-14 14:17:06 +02:00
Andreas Fabri ae1f695208 Document where sqrt is done approximately 2016-06-14 14:17:04 +02:00
Andreas Fabri 2c54acb056 Use to_double to make it work with Epec 2016-06-14 14:17:03 +02:00
Sebastien Loriot aeab78c74b Merge pull request #1143 from janetournois/PMP-isotropic_remeshing_speedup-jtournois
PMP isotropic_remeshing speedup. Don't use the MESH Halfedge_status
2016-06-09 16:21:09 +02:00
Sebastien Loriot 1ebaebc6aa Merge pull request #1101 from maxGimeno/Enhance_triangulate_facets-GF
Robustify triangulate facets
2016-06-08 09:50:48 +02:00
Jane Tournois 4e964ab64d don't use the MESH status
We now consider that MESH halfedges are the ones that are not in the patch,
i.e. not in the status map

halfedges with the MESH status are not used, apart from close to
PATCH_BOUNDARY edges.

this speeds up the isotropic remeshing algorithm, in particular when only
a small patch is remeshed
2016-06-07 16:18:42 +02:00
Sébastien Loriot 99ffa8655d add an overload to does_self_intersect taking a face range as input 2016-06-07 14:30:39 +02:00
Jane Tournois 0811c2fb2c document named parameters for smoothing 2016-06-07 14:06:09 +02:00
Jane Tournois ccbdeb1419 doc : reorder named parameters 2016-06-07 12:42:16 +02:00
Jane Tournois 7fde6edb32 rename relaxation named parameters 2016-06-07 12:38:27 +02:00
Jane Tournois 5ab581dc1e be more verbose 2016-06-06 17:13:50 +02:00
Jane Tournois 4112b0295f add a named parameter to be able to run more than one laplacian iteration
at each isotropic_remeshing iteration
2016-06-06 13:58:54 +02:00
Maxime Gimeno 1741739449 Fixes the choice of the diagonal for a quad. 2016-05-26 16:50:49 +02:00
Sébastien Loriot 5f0a9dcbf3 Merge remote-tracking branch 'cgal/releases/CGAL-4.8-branch' 2016-05-24 16:54:58 +02:00
Jane Tournois e4336fcc09 ref manual 2016-05-24 16:33:47 +02:00
Maxime Gimeno 817155d7f0 Update doc 2016-05-24 08:40:14 +02:00
Jane Tournois acc7e16626 add more collapsibility tests 2016-05-23 17:09:19 +02:00
Maxime Gimeno 400f44c2a3 Make triangulate_faces() a boolean. 2016-05-23 16:36:07 +02:00
Maxime Gimeno 0a5bea6dba Use split_face if the facet is a quad. 2016-05-23 16:30:19 +02:00
Maxime Gimeno b63dae993a Make triangulate_face() a boolean 2016-05-23 15:36:14 +02:00
Jane Tournois ca3883b837 it is necessary to check that e is still collapsible
when it is poped out from the priority queue. Its situation may have changed
because of the changes that have been made in its neighborhood

+ checking that is_on_patch_border(next_on_patch_border(next(he, mesh_))
is useless, because next_on_patch_border is on patch border by definition

reorganize the collapsibility check
2016-05-23 12:17:48 +02:00
Jane Tournois f2fe1a69d0 fix assertion code 2016-05-20 12:24:28 +02:00
Jane Tournois aef3c6cc62 fix include 2016-05-20 12:23:42 +02:00
Sébastien Loriot 36d0257dff first version of the corefinement doc 2016-05-19 15:08:31 +02:00
Jane Tournois 355c698185 avoid creating self intersections close to boundaries
the collapse step was still creating self-intersections
when it happened in a particular configuration close to boundary

# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h
2016-05-19 13:16:37 +02:00
Sébastien Loriot d892ef1a89 Merge pull request #1030 from janetournois/PMP-remeshing_with_patch_ids-jtournois
PMP : new features for isotropic_remeshing
2016-05-09 09:43:08 +02:00
Sebastien Loriot 7630d2a6fc Merge pull request #875 from sloriot/Triangulation_2_and_PMP-fix_Triangulation_2_projection_traits_3
PMP: make triangulate_faces works with non filtered kernels
2016-05-05 14:55:11 +02:00
Sebastien Loriot cba2fd46ca Merge pull request #1052 from janetournois/PMP-isotropic_remeshing_non_manifold_bug-jtournois
PMP : fix for isotropic_remeshing
2016-05-04 15:03:57 +02:00
Sébastien Loriot 3c8871f8a9 Merge pull request #739 from bo0ts/Pmp-poly_soup_poly_mesh-pmoeller
Add PMP function is_polygon_soup_a_polygon_mesh
2016-05-04 15:01:25 +02:00
Sébastien Loriot e65ca4aa86 add a function to reverse the orientation of the faces of a mesh with polylines 2016-05-03 18:25:23 +02:00
Jane Tournois 32cbaf914b edges incident to boundary cannot always be flipped 2016-04-29 17:37:17 +02:00
Jane Tournois dab8b7e312 Merge branch 'PMP-remeshing_with_patch_ids-jtournois' of github.com:janetournois/cgal into PMP-remeshing_with_patch_ids-jtournois 2016-04-29 17:24:50 +02:00
Jane Tournois dbedd1358d edges incident to boundary cannot always be flipped 2016-04-29 17:14:02 +02:00
Sébastien Loriot 09e076922c remove compilation error and a conversion warning 2016-04-29 16:53:53 +02:00
Jane Tournois eb13dffd53 fix typo! 2016-04-29 16:30:19 +02:00
Sébastien Loriot cc7d686d16 remove unused typedefs 2016-04-29 14:01:52 +02:00
Jane Tournois eb1747b28b boost::size has compilation issues in boost 1.53 (see testsuite 4.9-Ic-29)
and FaceRange is model of Range, so .size() is available
2016-04-25 11:02:06 +02:00
Laurent Rineau 64ea03f9ec Fix a compilation error
`boost::size` does not exist unless `<boost/range/size.hpp>` is
included, at least on my machine.
2016-04-22 17:30:55 +02:00
Jane Tournois 99b7cb8216 check the face_index map to be checked actually is the internal map 2016-04-22 17:15:01 +02:00
Jane Tournois ccf66afe26 check face_index map is initialized
this is a minimal check, that checks that the 2 first faces of the range
do not share the same index
This test is not complete and the complete check should test that no 2 vertices
share the same index, but that's too costly to be worth it here
2016-04-22 16:25:17 +02:00
Jane Tournois 638b0ba9ab document that if face_index map exists internally, it should be initialized 2016-04-22 15:31:12 +02:00
Jane Tournois 7749a3402b Polygon should also be RandomAccessContainer 2016-04-22 15:04:10 +02:00
Jane Tournois 1c614bb0dc replace std::vector<Point> and std::vector<Polygon> with appropriate range concepts 2016-04-22 12:43:47 +02:00
Jane Tournois 9cf539c8a9 change requirement of PolygonRange
operator[], size(), begin() and end() are all available in RandomAccessContainer
2016-04-22 12:26:03 +02:00
Jane Tournois 5b56f2a6a8 fix doc 2016-04-22 11:18:50 +02:00
Jane Tournois bfe4d815a2 document face_patch_map 2016-04-22 09:53:20 +02:00
Jane Tournois 21a869491b document face_patch_map 2016-04-21 16:00:40 +02:00
Jane Tournois 2b3b07a2f9 add mising timer start 2016-04-21 15:32:13 +02:00
Jane Tournois a829161ca1 avoid computing connected_components when it's not needed 2016-04-21 15:32:12 +02:00
Jane Tournois e7c9bab5ae avoid constructing the Border_constraint_pmap when it's not needed
i.e. when it's given in the named parameters
2016-04-21 15:32:11 +02:00
Jane Tournois 768c7439f7 make dealing with patch ids safer 2016-04-21 15:31:01 +02:00
Jane Tournois 1f0a11191d do not project back constrained vertices 2016-04-21 15:30:59 +02:00
Jane Tournois 2fb5fa4a26 ecmap_ will be updated at the end of the remeshing process
this "put" is useless
2016-04-21 15:29:56 +02:00
Jane Tournois f777c53b61 add stuff to verbose mode 2016-04-21 15:29:53 +02:00
Jane Tournois ba91119696 make sure an edge between two patches is considered a constraint 2016-04-21 15:28:33 +02:00
Sébastien Loriot ded29c7304 correct definition of Self 2016-04-21 15:26:55 +02:00
Jane Tournois 296bcdb04b back to previous version of Patch_id_property_map 2016-04-21 15:26:53 +02:00
Jane Tournois badfb8f2b8 remove default values. Values are given by every call to this constructor 2016-04-21 15:26:51 +02:00
Jane Tournois 5f5397a5d3 parameters pmesh and ecmap can't be used here 2016-04-21 15:25:29 +02:00
Jane Tournois f0bb4febb5 improve remeshing test and get() in pmap 2016-04-21 15:25:28 +02:00
Jane Tournois ee89276102 isotropic remeshing : introduce surface_patch ids as an input read write pmap 2016-04-21 15:23:20 +02:00
Jane Tournois c0f30e18a8 add constrained vertices to isotropic remeshing
those vertices cannot be modified
2016-04-21 15:21:29 +02:00
Jane Tournois 253d4f28a6 update the constraints property map after the end of remeshing 2016-04-21 15:10:02 +02:00
Jane Tournois 1a33081f79 transform EdgeIsConstrainedMap into a member variable 2016-04-21 15:00:46 +02:00
Sébastien Loriot 17edea6299 avoid copying the polygon vector
some functions of Polygon_soup_orienter have been made static
and the function duplicate_singular_vertices was partially
duplicated (no other choice to have the polygon container const)
2016-04-19 20:06:13 +02:00
Sébastien Loriot 592c2bf454 remove the need to set the points 2016-04-19 19:25:29 +02:00
Jane Tournois 269efaa60b improve doc 2016-04-19 11:58:24 +02:00
Jane Tournois 8708376798 check that there is no polygon with twice the same vertex 2016-04-19 11:06:01 +02:00
Jane Tournois 068d93798a edge_map should be filled to be able to circulate around vertices 2016-04-19 10:51:03 +02:00
Jane Tournois 8a87c34f1b use orienter to test manifold-ness 2016-04-18 18:03:24 +02:00
Jane Tournois fb8ac5a9e6 add a parameter to duplicate_singular_vertices to avoid duplicating when required 2016-04-18 18:02:27 +02:00
Philipp Möller b0fb4999f0 Add changes required by review 2016-04-18 12:08:48 +02:00
Philipp Möller ec25aab2d2 Replace vector<vector<size_t>> by a nested range 2016-04-18 12:08:47 +02:00
Philipp Möller f1158a2dfe Explain missing range of points 2016-04-18 12:08:45 +02:00
Philipp Möller 74edea7fa2 Use is_polygon_soup_a_polygon_mesh as pre 2016-04-18 12:08:44 +02:00
Philipp Möller 01190b1027 Fix doc typo 2016-04-18 12:08:41 +02:00
Philipp Möller a9a651d5c5 Enable doc 2016-04-18 12:04:57 +02:00
Laurent Rineau 3bd9e6d557 Merge pull request #995 from janetournois/PMP-fix_compute_normals-jtournois
(Merged from remote-tracking branch 'cgal/releases/CGAL-4.8-branch')
2016-04-14 15:14:45 +02:00
Jane Tournois c7c8c86a9e remove unused variable 2016-04-12 18:17:05 +02:00
Jane Tournois f85d783613 improve computation of a face normal for non-triangular faces
triangulating the face naively around v is much simpler and more accurate than
iterating on prev/curr/next vertices inside the face
2016-04-11 12:15:59 +02:00
Sébastien Loriot f8bbee52b7 Merge branch 'Polyhedra_corefinement-enhancements-sloriot' into HEAD 2016-04-04 12:09:24 +02:00
Laurent Rineau 6164c91227 Merge changes to PMP from branch 'releases/CGAL-4.8-branch'
Merges:
> 621e16ed Merge pull request #973 from janetournois/Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois
> 4d1ac46 Merge pull request #974 from janetournois/PMP-complete_remeshing_test-jtournois
2016-04-04 11:22:09 +02:00
Jane Tournois 36c3a7a758 remove unused variable 2016-04-01 10:02:21 +02:00
Jane Tournois f6e312fc86 deal with the degenerate face case, and avoid division by 0
the only way to catch it would be to check that the result is not NaN,
probably not a good idea, in particular for vertex normals

and
Revert "deal with the case where one face incident to v is degenerate"

This reverts commit 52105868b31a2685795e92d9caf4bfe251bcf75c.
2016-03-31 12:26:39 +02:00
Jane Tournois 650cb1d752 change the way we deal with degenerate faces
some may remain and we don't know how to remove them yet
2016-03-31 12:26:19 +02:00
Jane Tournois caa0aaeeb0 fix test for projection
a vertex is reprojected if it is on PATCH, and if it is not constrained
(and this test is the filter to "continue" the loop)
2016-03-31 12:26:01 +02:00
Jane Tournois 1e0b28601a make the flipping step more verbose (see progress) 2016-03-31 12:25:42 +02:00
Jane Tournois e3e03f06f4 deal with the case where one face incident to v is degenerate 2016-03-31 12:25:22 +02:00
Laurent Rineau ae33af9222 Merge branch 'releases/CGAL-4.8-branch'
Merges the following fixes:
> 4025913 Merge pull request #949 from janetournois/BGL-fix_conversion_of_boundary_halfedges-jtournois
> 9c62628 Merge pull request #948 from janetournois/PMP-fix_assertion_isotropic_remeshing-jtournois
> f61402d Merge pull request #929 from sloriot/Polyhedron_demo-Isotropic_remeshing_preserve_duplicates

See also:

* https://github.com/CGAL/cgal/pull/949
* https://github.com/CGAL/cgal/pull/948
* https://github.com/CGAL/cgal/pull/929
2016-03-31 10:55:12 +02:00
Jane Tournois cc28746e18 fix the case where both faces incident to h are degenerate before the flip
and none of them is degenerate after the flip
2016-03-25 10:39:01 +01:00
Laurent Rineau ad73334a0f Merge pull request #821 from afabri/CGAL_property_map-GF
Include consistently <CGAL/property_map.h>
2016-03-24 11:29:09 +01:00
Sébastien Loriot b0d43337de wrap the set in a shared_ptr because a property map should be lightweight 2016-03-17 13:09:39 +01:00
Sébastien Loriot 7680c6f168 use a set instead of a map to avoid keeping handles to removed elements
moreover the map becomes sensitive to the input
2016-03-17 12:58:02 +01:00
Sebastien Loriot ef3721a581 Merge pull request #881 from janetournois/PMP-isotropic_remeshing_reduce_aabbtree-jtournois
PMP isotropic remeshing : reduce the internal aabb_tree to the input face_range
2016-03-04 13:28:11 +01:00
Sebastien Loriot 717ec22664 Merge pull request #874 from janetournois/PMP-isotropic_remeshing_improvements-jtournois
PMP::isotropic_remeshing() - improve management of constraints
2016-03-03 17:00:34 +01:00
Sebastien Loriot 5870f1361a Merge pull request #872 from afabri/PMP-namespace_PMP-GF
The namespace forwarding goes in the user code, not in a CGAL header
2016-03-03 17:00:08 +01:00
Jane Tournois 733e84abbf the input triangles are only composed of the face_range to remesh
this reduces the size of the aabb_tree for projection
and fixes the fact that the face range only should be triangulated, not the
entire polygon mesh
2016-03-03 12:26:14 +01:00
Jane Tournois ce42c3062f halfedge and face descriptors should be hashable 2016-03-03 11:59:55 +01:00
Sébastien Loriot d7e9261d58 hide the filtered projection traits behind the projection traits
the selection of the base class is done using Kernel::Has_filtered_predicates
2016-03-02 21:57:54 +01:00
Sébastien Loriot c3854cb656 fix warnings 2016-03-02 20:10:39 +01:00
Sébastien Loriot fbe36bc8c0 add missing typename 2016-03-02 20:05:05 +01:00
Jane Tournois bf63963830 add constrained vertices to isotropic remeshing
those vertices cannot be modified
2016-03-02 17:08:38 +01:00
Andreas Fabri dd8a68c4c5 The namespace forwarding goes in the user code, not in a CGAL header 2016-03-02 16:52:13 +01:00
Jane Tournois ab6956e188 fix corners in isotropic remeshing
they do not get truncated anymore
2016-03-02 15:52:31 +01:00
Jane Tournois dc0090e9b8 remove duplicate function split_long_edges
by exploiting the edge_is_constrained_map as read-write pmap
this is not documented, and only for demo purposes (at least for now)
2016-03-01 16:28:06 +01:00
Jane Tournois 63884d0033 update the constraints property map after the end of remeshing 2016-03-01 15:30:52 +01:00
Jane Tournois 32bcdb4186 transform EdgeIsConstrainedMap into a member variable 2016-03-01 14:03:28 +01:00
Sébastien Loriot 392c292cc5 handle isolated vertices when computing normal 2016-02-29 10:07:44 +01:00
Andreas Fabri eb90e8e3e1 Include consistently <CGAL/property_map.h> 2016-02-24 12:09:36 +01:00
Sebastien Loriot c1b3b784a7 Merge pull request #777 from janetournois/Polyhedron_demo-polyhedron_item_for_quads-GF
Polyhedron item : improve computation of normals
2016-02-22 08:24:11 +01:00
Andreas Fabri 1918e01c9a fix type requirement of the property map 2016-02-19 11:19:08 +01:00
Andreas Fabri de159f13fc Remve requirement for default constructible FaceNormalMap 2016-02-19 11:11:42 +01:00
Sébastien Loriot 0fc5846f07 change dummy property map to read-only to avoid a warning
I also it is safer to produce a compilation error if used as
a read/write pmap
2016-02-18 17:08:15 +01:00
Sébastien Loriot ceccbb887b fix copy-paste error 2016-02-17 11:51:31 +01:00
Sébastien Loriot d7b5f70181 refine bug-fix: also refine created faces
The refinement is an iterative process, newly created faces must
also be considered as refinable.
2016-02-15 14:57:57 +01:00
Sébastien Loriot 6c4f1274ef refine and fairing functions requires a triangle mesh 2016-02-15 14:35:26 +01:00
Sébastien Loriot 77b69cc881 fixes for polygon_soup_to_polygon_mesh
- add a missing header
  - remove unneed inheritance
  - fix doc to mention internal point pmap requirement
  - Point is not a requirement of the MutableFaceGraph concept
2016-02-15 13:38:52 +01:00
Jane Tournois d3ce97f566 use face normals map as input of compute_vertex_normal
in the named parameters
2016-02-12 15:01:40 +01:00
Jane Tournois e94d675c4f for a triangle, compute normal only once 2016-02-11 19:15:46 +01:00
Jane Tournois 1afce415b6 fix the display of quad meshes with problems
by separating the quads from non-triangular faces
this also prevents from computing a CDT2 for each quad
2016-02-11 18:45:22 +01:00
Sebastien Loriot ca6486f202 Merge pull request #742 from sloriot/PMP-fix_weight
Polygon mesh processing: fix bug in weight
2016-02-07 18:15:29 +01:00
Sebastien Loriot 718eae7a00 Merge pull request #714 from sgiraudot/CGAL-Fix_boost_warning_unused_typedef-GF
Fix boost warning (unused typedef)
2016-02-05 14:59:28 +01:00
Sébastien Loriot 2243f20695 fix bug in weight
if the source of he is v0 then v1==v0
2016-02-05 12:17:08 +01:00
Sebastien Loriot ebf66069c3 Merge pull request #706 from afabri/PMP_include_graph_traits-GF
Deal with deprecated code
2016-02-03 09:44:11 +01:00
Simon Giraudot 751d959c05 Fix boost unused typedef warning: replace BOOST_STATIC_ASSERT by CGAL_static_assertion 2016-02-02 14:32:46 +01:00
Sébastien Loriot aa94453c1e fix submenu name 2016-02-01 16:14:58 +01:00
Andreas Fabri 4c9c668dc9 deal with deprecated code 2016-02-01 15:52:52 +01:00
Sebastien Loriot f6147f5b08 Merge pull request #672 from janetournois/PMP-fix_remeshing_patch_borders-jtournois
PMP isotropic remeshing : fix collapse step with inside borders
2016-01-27 13:37:03 +01:00
Sébastien Loriot 0d60c1626e add missing include directives 2016-01-26 18:42:08 +01:00
Jane Tournois a7c54c024a fix assertion and is_constrained function 2016-01-26 09:27:14 +01:00
Jane Tournois 5d8d1c65b8 if deviation is not getting better, do not make the flip
this tiny change seems to improve a lot the overall quality of the
remeshed polyhedron, by avoiding some pathological cases with
vertices of valence 3 (away from border)
2016-01-25 17:37:03 +01:00
Jane Tournois 856d41e8ca last (default) case should return false i.e. not collapsible 2016-01-25 10:53:43 +01:00
Sébastien Loriot 4c4b191209 Merge pull request #604 from bo0ts/BGL-add_clear-pmoeller
Add BGL helper CGAL::clear
2016-01-23 09:18:56 +01:00
Jane Tournois 1be4ceba2a collapse step in isotropic remeshing fix
dealing with patch border halfedges needs a different treatment than
"inside patch" halfedges
2016-01-22 13:02:40 +01:00
Sébastien Loriot acba778a9e Merge branch 'Polyhedra_corefinement-enhancements-sloriot' into HEAD 2016-01-21 11:06:59 +01:00
Sébastien Loriot 3850fbb30c fix license 2016-01-21 09:19:58 +01:00
Jane Tournois 83de44dab8 when split_long_edges is called, no aabb_tree is built
so don't delete it
2016-01-18 14:28:16 +01:00
Laurent Rineau 1456abac26 Fix a compilation error 2016-01-18 14:28:15 +01:00
Jane Tournois 5bc410556b move internal file to internal/Isotropic_remeshing 2016-01-18 14:28:14 +01:00
Jane Tournois 1e61e24d85 remove patch_ids from aabb_primitives, they have become useless
the AABB_tree_remeshing is a simple aabb_tree<triangle_primitive> now
2016-01-18 14:28:13 +01:00
Jane Tournois 910c7759d0 fix return type and get a valid result from Patch_id_property_map! 2016-01-18 14:28:12 +01:00
Jane Tournois c7926a87b0 temporary bug fix
why is Patch_id_property_map broken when we get to use it?
2016-01-18 14:28:11 +01:00
Jane Tournois fddfb4f933 add debug code 2016-01-18 14:28:10 +01:00
Jane Tournois 5dfd8e783f comment failing assertion 2016-01-18 14:28:09 +01:00
Jane Tournois 0964b8fae1 use an aabb tree of triangles with patch_id to be able to reproject
on the same surface patch
2016-01-18 14:28:08 +01:00
Jane Tournois bb4073a4f2 remove constrained_edges_, it has become useless 2016-01-18 14:28:07 +01:00
Jane Tournois faa843f9c4 change face component property map 2016-01-18 14:28:06 +01:00
Jane Tournois 6ee71b5bf7 this property map should be modifiable 2016-01-18 14:28:05 +01:00
Jane Tournois 3802a8dcac update the patch ids property map inside remeshing process 2016-01-18 14:28:04 +01:00
Jane Tournois 7da1304544 replace connected components property map by a permanent one 2016-01-18 14:28:03 +01:00
Sébastien Loriot 34e58e32b1 restore usage of constrained edge map 2016-01-18 14:28:00 +01:00
Sébastien Loriot a38444c48b fix compilation issues and add a comment for @janetournois 2016-01-18 14:27:59 +01:00
Jane Tournois f4ce0f6eae this commit attempts to improve the projection step
we try to make the projection step keep vertices on the same connected component,
wrt constrained edges

there are some issues that need to be fixed :
- the use of edge_is_constrained_map in the calle to PMP::connected_components()
causes compilation errors. So it's commented for now
- the patch ids that are stored in the reference aabb_tree (which remains
valid through iterations) are not the same as the patch ids computed at
the end of each iteration, in the projection step. It should be made consistent
to be able to use the Filtered_projection_traits
2016-01-18 14:27:58 +01:00
Jane Tournois 36a133784d fix default value 2016-01-18 14:27:57 +01:00
Jane Tournois 64f26ad1eb make 1d remeshing an option in the remeshing widget 2016-01-18 14:09:43 +01:00
Jane Tournois 6bcff2b21d introduce tangential_relaxation along 1D features
1D smoothing is performed at a vertex only when its incident halfedges
are 2, and form an angle larger than 120 degrees
to avoid "breaking" corners
2016-01-18 14:09:42 +01:00
Sébastien Loriot 902c66d341 fix typo 2016-01-13 15:10:50 +01:00
Jane Tournois a444b343d1 doc : move remeshing functions to the "Meshing" group
note it was already the case in PackageDescription.txt
2016-01-11 12:38:35 +01:00
Jane Tournois ae1ea30d45 reorder parameters for consistency in PMP package 2016-01-11 12:20:45 +01:00
Jane Tournois 0ab047eb37 reorder variables for API consistency in PMP package 2016-01-11 12:12:59 +01:00
Jane Tournois 9c51c1a5c1 fix constness of parameter 2016-01-11 11:06:01 +01:00
Jane Tournois 74355818b1 reorder parameters for border_halfedges() 2016-01-11 10:19:41 +01:00
Philipp Möller 0691b59d86 Use clear in keep_largest_connected_components 2016-01-08 13:18:16 +01:00
Sebastien Loriot e6308db001 Merge pull request #543 from sloriot/PMP-unify_weight
Pmp unify weight
2016-01-06 14:54:26 +01:00
Sebastien Loriot 7bb333c5f5 Merge pull request #576 from sloriot/PMP-enhancement_from_bindings
Pmp enhancement from bindings
2016-01-06 14:52:32 +01:00
Sébastien Loriot 21abce214a bug fix for triangulate_hole_polyline with no third point
if PointRange is not default constructible, triangulate_hole_polyline cannot be called
without third points
2016-01-05 16:14:13 +01:00
Sebastien Loriot 5e20b46f5b Merge pull request #546 from bo0ts/Pmp_triangulate_face-pmoeller
Add triangulate_face and triangulate_faces range overload
2016-01-04 10:48:17 +01:00
Sébastien Loriot 92f545e388 add a convenience overload for an edge 2015-12-29 16:56:33 +01:00
Sébastien Loriot 9695d63eb7 add missing includes 2015-12-29 16:55:28 +01:00
Philipp Möller 064b7dffc1 Incorporate doc suggestion 2015-12-27 19:22:29 +01:00
Sébastien Loriot e18bbc442f Add missing model of requirements 2015-12-22 23:01:05 +01:00
Philipp Möller f8e8f5acbb Use std::distance directly
boost::size is buggy in older releases and will try to use operator-()
to get the distance of two iterators, which will lead to errors with
BirectionalIterators. Newer versions call either range.size() or
distance(begin, end). We choose the later as it always works, but
sometimes isn't as effective as possible.
2015-12-17 15:18:15 +01:00
Sébastien Loriot 0eec673c61 rename include guards 2015-12-11 21:20:02 +01:00
Philipp Möller 3ad5c7af8f Writing consistency 2015-12-11 16:18:51 +01:00
Philipp Möller 0f12d0189e Add FaceRange overload to triangulate_faces 2015-12-11 16:03:50 +01:00
Philipp Möller c3133d95f0 Factor code for triangulating a single face 2015-12-11 15:35:12 +01:00
Philipp Möller 15004507e2 Add triangulate_face prototype 2015-12-11 15:35:11 +01:00
Sébastien Loriot 8301fdbf34 move endcond in the same namespace as cond 2015-12-10 23:28:18 +01:00
Sébastien Loriot 53e882ce19 move Weights.h 2015-12-10 23:25:50 +01:00
Sébastien Loriot 0ef509d892 remove unused class + add comment 2015-12-10 23:05:10 +01:00
Sébastien Loriot c8ea231751 use Hole_filling weights
The API of the weight of Surface_mesh being documented
I needed to duplicate some small parts of the code
in /PMP/include/CGAL/internal/Hole_filling/Weight.h
2015-12-10 22:48:21 +01:00
Sébastien Loriot 77daf37540 remove duplicated weigthing functions and use those from PMP instead 2015-12-09 22:10:05 +01:00
Sébastien Loriot 5de303c389 Merge pull request #501 from janetournois/PMP-add_utility_functions-GF
PMP : add utility functions
2015-11-26 14:22:05 +01:00
Jane Tournois be6cd53f33 fix preconditions 2015-11-24 14:19:14 +01:00
Jane Tournois a61fefc839 Merge branch 'PMP-length_of_border-GF-old' into PMP-length_of_border-GF 2015-11-23 17:19:30 +01:00
Jane Tournois 80496b82a4 bug fix : there can be constrained edges on the patch to be remeshed,
and unconstrained patch boundary edges

this commit introduces the possibility to constraint edges somewhere
on the patch while not constraining the boundary of the surface patch
to be remeshed
2015-11-20 15:53:29 +01:00
Jane Tournois fc29daab0e avoid pinching of the patch to be remeshed
this could happen in the case where we try to collapse an edge with
both its vertices on the patch boundary,
but the edge (both halfedges) itself is is_on_patch
2015-11-20 11:10:12 +01:00
Jane Tournois da1833cbed remove assertions
there is no guarantee that we won't generate self intersections
debug code now only displays the nb of self-intersections
2015-11-20 11:05:07 +01:00
Jane Tournois 1d94c84812 remove test in is_collapse_allowed because it's redundant
with first test if (!is_on_patch)
2015-11-20 11:02:20 +01:00
Jane Tournois 8cdfe7d75d fix the use of self_intersections inside debug code 2015-11-19 17:29:22 +01:00
Jane Tournois f358594e92 complete the dump function and its use in the Polyhedron demo 2015-11-19 17:27:36 +01:00
Jane Tournois a76e8c3b70 document border_halfedges and remove_isolated_vertices 2015-11-17 17:32:51 +01:00
Sébastien Loriot 76e9b42913 Merge branch 'old/Polyhedra_corefinement-enhancements-sloriot' into Polyhedra_corefinement-enhancements-sloriot
and accomodates updates due to the merge of Polygon_mesh_processing
2015-11-17 15:49:01 +01:00
Sebastien Loriot d605b6b95f Merge pull request #457 from janetournois/Polygon_mesh_processing-local_remeshing-GF
Polygon mesh processing - add isotropic remeshing
2015-11-17 13:25:45 +01:00
Sebastien Loriot bb85ae0179 Merge pull request #474 from afabri/BGL-suppress_warning-GF
suppress warning in boost as this has to be solved upstream
2015-11-17 13:21:05 +01:00
Jane Tournois 0a12beb5f9 Merge branch 'Polygon_mesh_processing-local_remeshing-GF-old' into Polygon_mesh_processing-local_remeshing-GF 2015-11-16 13:06:03 +01:00
Sebastien Loriot 093e381942 Merge pull request #475 from janetournois/PMP-fix_hole_filling_doc-GF
PMP triangulate_hole_polyline documentation
2015-11-13 12:38:12 +01:00