Commit Graph

1897 Commits

Author SHA1 Message Date
Sébastien Loriot 97b45039f0 increase precision of the output 2017-11-28 10:21:45 +01:00
Sébastien Loriot 55020142c7 make sure the mesh is cleared before filling it again 2017-11-28 10:21:45 +01:00
Sébastien Loriot c22f455f2f do the collect of edges no longer on the intersection in the stitching collect 2017-11-28 10:21:45 +01:00
Sébastien Loriot bcc88dcb25 Merge patches kept and patches removed and update the set of intersection
That way internal intersection edges and vertices also get removed
2017-11-28 10:21:45 +01:00
Sébastien Loriot ceb5b0c68a copy-paste error 2017-11-28 10:21:45 +01:00
Sébastien Loriot 0f0a67b55e fix error and warnings in release mode 2017-11-28 10:21:45 +01:00
Sébastien Loriot b974c34ea4 add an example failing because there are locally 3 surfaces intersecting along an edge 2017-11-28 10:21:45 +01:00
Sébastien Loriot 6cce6b0995 add testsuite and testcases 2017-11-28 10:21:45 +01:00
Sébastien Loriot 32aea69cba fix bug when two coplanar faces intersect while sharing an edge
the edge should ignore the shared edge as there is no stitching needed
2017-11-28 10:21:45 +01:00
Sébastien Loriot f0ce3644f8 bugfix: use the correct halfedge for setting next pointer 2017-11-28 10:21:45 +01:00
Sébastien Loriot 3c330813b1 update example 2017-11-28 10:21:45 +01:00
Sébastien Loriot 47b4a3941b update user and reference manual 2017-11-28 10:21:45 +01:00
Sébastien Loriot 2feff1c01a handle open meshes 2017-11-28 10:21:45 +01:00
Sébastien Loriot 857f996c3f avoid reporting duplicated coplanar face pairs by sorting them in the callback 2017-11-28 10:21:45 +01:00
Sébastien Loriot 9954a41e3f handling two intersecting edges that are identical for autorefinement 2017-11-28 10:21:45 +01:00
Sébastien Loriot 3d434f7953 correctly initialize bitset to 1 2017-11-28 10:21:45 +01:00
Sébastien Loriot adcfc00996 do not block the fixing when there is a non-manifold situation
Note that is might pose pb in case the status of the patch is
changed in another case
2017-11-28 10:21:44 +01:00
Sébastien Loriot 247ad9ec1b by default patches are tagged as kept
the purpose of the function being to remove self-intersection
I decided to not remove self-inclusion (as it might be surprizing
considering the name of the function)
2017-11-28 10:21:44 +01:00
Sébastien Loriot ad4327530f clean up 2017-11-28 10:21:44 +01:00
Sébastien Loriot 54998f8246 fix comment 2017-11-28 10:21:44 +01:00
Sébastien Loriot 983d3cbdb8 WIP for self-intersection removal using autorefinement 2017-11-28 10:21:44 +01:00
Sébastien Loriot a093cd5e9f use a small struct instead of a two element map 2017-11-28 10:17:05 +01:00
Sébastien Loriot d449fa56f7 move mesh_to_intersection_edges to the output builder 2017-11-28 10:17:05 +01:00
Sébastien Loriot efb2f596bb move an_edge_per_polyline_map in the output builder 2017-11-28 10:17:05 +01:00
Sébastien Loriot ea31cc4bde add autorefine 2017-11-28 10:17:04 +01:00
Sébastien Loriot 70d1d18461 Add function to compute auto-intersection of a surface 2017-11-28 10:17:04 +01:00
Jane Tournois 2feb79a16b Add example for dynamic_property_map 2017-11-27 16:35:30 +00:00
Maxime Gimeno c940bbd20d Update doc 2017-11-27 15:58:56 +01:00
Laurent Rineau bc36af5eed Fix CMake warnings about mixed usage of target_link_libraries
See https://cmake.org/cmake/help/v3.0/policy/CMP0023.html
2017-11-22 11:06:26 +01:00
Maxime Gimeno 57bbb4cd92 More fixes for pre-review 2017-11-20 14:54:09 +01:00
Maxime Gimeno 31161a7788 Fix doc. 2017-11-17 12:55:28 +01:00
Maxime Gimeno ffd2f62aef add misisng test file 2017-11-17 12:55:28 +01:00
Maxime Gimeno 830f1e3f80 add volumic tests and tests data files 2017-11-17 12:55:28 +01:00
Maxime Gimeno 4d19c0e1b1 Add named parameters and fix mesh id in range calculation. 2017-11-17 12:55:28 +01:00
Maxime Gimeno 691649590c Add a function to compute the number of pairs of intersecting meshes in a range of meshes. 2017-11-17 12:55:28 +01:00
Maxime Gimeno 7d90de6687 change polyline definition 2017-11-17 12:55:27 +01:00
Maxime Gimeno 55a0bbc628 fix doc 2017-11-17 12:55:27 +01:00
Maxime Gimeno 27f29bc6f2 Add overloads for polylines ranges and tests that go with them 2017-11-17 12:55:27 +01:00
Maxime Gimeno e21ff58b6a Update doc. 2017-11-17 12:55:27 +01:00
Maxime Gimeno 536c0246cf Changes and hide enable_if in doc. 2017-11-17 12:55:27 +01:00
Maxime Gimeno 334b4be9b2 Remove useless code. 2017-11-17 12:55:05 +01:00
Maxime Gimeno edc49e77b7 Move intersection computation functions in internal. 2017-11-17 12:55:05 +01:00
Maxime Gimeno ece79dd277 Add default values for NPs and no more need for Kernel in do_intersect. Also rename and un-document intersection functions. 2017-11-17 12:55:05 +01:00
Maxime Gimeno 71817eb67a Add polylines intersections detection to the surface_intersection plugin 2017-11-17 12:55:05 +01:00
Maxime Gimeno 47defffbdb Documents the new functions 2017-11-17 12:55:05 +01:00
Maxime Gimeno 5a5accaaa8 Move intersection code into a header 2017-11-17 12:55:04 +01:00
Maxime Gimeno b9803ec94b do_intersect() working for 2 Polylines 2017-11-17 12:55:04 +01:00
Maxime Gimeno 7d6bad9ab4 Do_intersect for faces and face-polylines working 2017-11-17 12:55:04 +01:00
Sébastien Loriot 7e12600403 remove deprecated TODO 2017-11-15 22:59:55 +01:00
Laurent Rineau 0681ac6dbc Fix the TBB_USE_FILE warnings 2017-11-15 17:00:02 +01:00
Laurent Rineau a9365554c9 Merge pull request #2550 from sloriot/CGAL-add_SPDX_tags
Add SPDX License Identifier
2017-11-15 16:48:27 +01:00
Laurent Rineau 3ff09bc549 Merge pull request #2580 from lrineau/CGAL-Support_CMake_3.10-GF
Renew the handle of policies, for CMake-3.10
2017-11-15 16:47:42 +01:00
Laurent Rineau e6f0119d07 Merge pull request #2580 from lrineau/CGAL-Support_CMake_3.10-GF
Renew the handle of policies, for CMake-3.10
2017-11-15 16:44:31 +01:00
Sébastien Loriot 5c32e0ab62 turn some #ifndef that should be #ifdef 2017-11-15 15:12:41 +01:00
Laurent Rineau 86fb40832a Merge pull request #2580 from lrineau/CGAL-Support_CMake_3.10-GF
Renew the handle of policies, for CMake-3.10
2017-11-13 12:01:39 +01:00
Laurent Rineau c6068691fa Merge pull request #2547 from lrineau/CMake-parse_CTest_XML_output-lrineau
CGAL testsuite implemented with CTest plus Python (part.1)
2017-11-13 11:13:54 +01:00
Sébastien Loriot ee57fc2d6c add SPDX identifier for files under the GPL-3+ license 2017-11-12 10:17:51 +01:00
Laurent Rineau 62c70d41ca Renew the handle of policies, for CMake-3.10
Now that we require CMake>=3.1, we can forget a lot of old CMake policies.

`CMP0053` `OLD` behavior is still needed, because of a bug in Qt5 CMake files, but it will
not be set with CMake>=3.10. Let's assume that a recent CMake version means
a recent Qt5 version.
2017-11-06 14:58:36 +01:00
Laurent Rineau 208005b014 Merge pull request #2565 from MaelRL/Various-Fix_numeric_limits_min_uses_411-GF
Fix wrong uses of std::numeric_limits::min() (4.11)
2017-11-03 14:29:30 +01:00
Laurent Rineau 666ff0c862 Merge pull request #2544 from janetournois/PMP-corefinement-improve-doc-GF
PMP corefinement : improve doc
2017-10-27 18:00:42 +02:00
Mael Rouxel-Labbé 5ef873d67e Merge remote-tracking branch 'mine/Various-Fix_numeric_limits_min_uses-GF' into Various-Fix_numeric_limits_min_uses_411-GF 2017-10-27 11:57:21 +02:00
Mael Rouxel-Labbé da5200f577 Fixed wrong uses of std::numeric_limits::min() 2017-10-27 11:40:22 +02:00
Laurent Rineau a1d6d2a7a7 Merge pull request #2514 from janetournois/Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois
Polyhedron demo - fix isotropic remeshing plugin
2017-10-23 17:14:37 +02:00
Laurent Rineau 7caa6ea021 Merge pull request #2514 from janetournois/Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois
Polyhedron demo - fix isotropic remeshing plugin
2017-10-23 16:53:18 +02:00
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
Laurent Rineau 7e9f756935 Replace all std::unary_function by CGAL::unary_function 2017-10-04 15:57:09 +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 037cba3fae Merge pull request #2336 from maxGimeno/Detect_features-GF
PMP: Detect features
2017-09-18 14:29:55 +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
Andreas Fabri db67979b71 fix some \ref so that the links go to the package overview 2017-08-25 14:14:01 +01: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 2c0b185803 little cleaning 2017-08-17 17:32: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 0f974aa902 improve user manual 2017-08-17 15:50:00 +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
Jane Tournois 370d7bb591 tidy the example 2017-08-17 12:22:24 +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 222f7f3965 Add an example and a test for detect_features 2017-08-04 15:32:16 +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