Commit Graph

1639 Commits

Author SHA1 Message Date
Laurent Rineau dfb64ce2f1 "Return `true`" 2017-10-13 15:57:02 +02:00
Laurent Rineau f38c886c8b Fix typos reported by @janetournois
The review: https://github.com/CGAL/cgal/pull/2315#pullrequestreview-58370911
2017-10-13 15:57:02 +02:00
Laurent Rineau 9076ecaddf Add K::Has_on_bounded_side_3(Sphere_3, Sphere_3, Point_3, Point_3) 2017-10-13 15:57:02 +02:00
Laurent Rineau dec5908e32 Fix a warning 2017-10-13 15:57:02 +02:00
Laurent Rineau 02d0bea546 Fix a warning
```
include/CGAL/Mesh_3/Protect_edges_sizing_field.h:1821:14: warning: unused variable 'point_through' [-Wunused-variable]
  Bare_point point_through = wp2p((*previous)->point());
             ^
```
2017-10-13 15:57:02 +02:00
Laurent Rineau e6cf0e73f5 Assure the covering of curves by protecting balls
- That changes the API of Mesh_domain_with_polyline_features_3 (and the
  corresponding concept... TODO)

  - The domain is now responsible for checking the covering.

  - A lot of method have gained the `orientation` parameter: it is uses
    on cycles, to know distinguish between the two curves segments
    between two points.

- The implementation of <CGAL/Mesh_3/Protect_edges_sizing_field.h> has
  changed accordingly.
2017-10-13 15:57:02 +02:00
Laurent Rineau 38617b17a3 Refactoring of Sizing_field_with_aabb_tree (API breakage too)
The refactoring allows to compute a better size of corners in a cycle.
2017-10-13 15:57:02 +02:00
Laurent Rineau 4ff88c8220 Cosmetic 2017-10-13 15:57:02 +02:00
Laurent Rineau 8ef4832e7c Factorize the `disp_vert` functions into <CGAL/Mesh_3/utilities.h> 2017-10-13 15:57:02 +02:00
Laurent Rineau 6c78907ecc Fix header guards and license 2017-10-13 15:57:02 +02:00
Laurent Rineau ddb1aa8aec Fix compilation of <CGAL/Mesh_3/experimental/Get_facet_patch_id.h>
missing header
2017-10-13 15:57:02 +02:00
Laurent Rineau dc7c887436 Fix the compilation of <CGAL/Polyhedral_mesh_domain_3.h>
1. Create <CGAL/boost/graph/Graph_with_descriptor_with_graph_fwd.h>
     ... a forward-declaration header.

  2. Include the forward-declarations of `CGAL::Surface_mesher` and
  `CGAL::Graph_with_descriptor_with_graph`, so that the header compiles.
2017-10-13 15:57:02 +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
Laurent Rineau 7e9f756935 Replace all std::unary_function by CGAL::unary_function 2017-10-04 15:57:09 +02:00
Laurent Rineau 0ddad74fe0 Change the API of the manifold criterion 2017-09-27 16:21:43 +02:00
Laurent Rineau 19519adeed Fix warnings 2017-09-26 16:12:45 +02:00
Laurent Rineau c33d1b6dd9 Merge branch 'releases/CGAL-4.11-branch' 2017-09-25 16:48:41 +02:00
Laurent Rineau 412927917b Bug-fix for Mesher::one_step()
In issue #2453:
> I am trying to mesh in the demo a given Polyhedron (the problem is the same with Surface_mesh with a very small tetrahedron size, and the output mesh is always more or less the same, with very few simplices compared to what I expect.

Actually, the demo uses a loop:
```C++
while( !mesher->is_algorithm_done() )
  mesher->one_step();
```

Because of that bug in `one_step()`, `is_algorithm_done()` could return
`true` even before the cells mesher level has scanned the triangulation
for bad cells. That will be fixed, now.
2017-09-22 16:27:46 +02:00
Jane Tournois f4c8415dca add Manifold_options as a new boost parameter name for Mesh_3
there are 3 possible values for this parameter :
manifold(),
manifold_with_boundary(),
non_manifold() //the default

it will eventually replace the part of Mesh_facet_topology
that is dedicated to MANIFOLD
2017-09-19 16:04:29 +02:00
Laurent Rineau 8425cc01a9 Last fixes for BGL/Surface_mesh 2017-09-18 14:56:58 +02:00
Laurent Rineau f5a0f3a587 Add operator== to Primitive 2017-09-18 14:56:57 +02:00
Laurent Rineau 799666ca7a Duplicate the examples
Now we have a `Polyhedron_3` and a `Surface_mesh` version of the
following examples:

  - `examples/Mesh_3/mesh_polyhedral_complex.cpp`
  - `examples/Mesh_3/mesh_polyhedral_domain.cpp`
2017-09-18 14:56:57 +02:00
Laurent Rineau 578889e801 Fix compilation of mesh_polyhedral_domain.cpp with Polyhedron_3 2017-09-18 14:56:57 +02:00
Laurent Rineau ebf8db64e9 More BGL 2017-09-18 14:56:57 +02:00
Laurent Rineau 151be29572 No longer use Graph_with_descriptor_with_graph<SM>
The `Polyhedral_mesh_domain` template class, now uses a specific
`AABBPrimitive` type, when used with a `FaceGraph`.
2017-09-18 14:56:57 +02:00
Laurent Rineau d929e90423 add properties for `const Surface_mesh<P>`
For a const `Surface_mesh<P>`, one can call `property_map()` instead of
`add_property_map()`.
2017-09-18 14:56:56 +02:00
Laurent Rineau d666cfa011 Fix: initialize the vertex_feature_degree property map
This version of the code now compiles and runs correctly, but it still
uses a `Graph_with_descriptor_with_graph`.
2017-09-18 14:56:56 +02:00
Laurent Rineau 42ef37d773 Change the AABB tree of Side_of_triangle_mesh
That allows to use multiple face graph in the same AABB tree.
2017-09-18 14:56:56 +02:00
Laurent Rineau 9fa470c79f (!) Version that compiles, but does not work with multiple surfaces 2017-09-18 14:56:48 +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
Maxime Gimeno 6f4b3c0c93 Fix travis error 2017-08-28 14:36:30 +02:00
Jane Tournois 1c7e171940 call get(property map) outside of function 2017-08-22 17:05:33 +02:00
Jane Tournois 1ce7ea7211 fix compilation error 2017-08-21 13:00:18 +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 9eb349b472 minor indentation issues 2017-08-17 17:22:19 +02:00
Maxime Gimeno 43ff0d092c Implementation review Jane and sebastien 2017-08-11 15:30:03 +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 7d5226bba3 Another review pass. 2017-08-10 11:22:21 +02:00
Maxime Gimeno 1d497d09ff Fix warnings and error 2017-08-10 09:37:37 +02:00
Maxime Gimeno ffd95ac3a0 Add a line in the TriangleMesh definition of facets_in_complex_3_to_triangle_mesh() 2017-08-09 10:31:04 +02:00
Maxime Gimeno 56cb0a66a3 Changes after review 2017-08-09 10:31:04 +02:00
Maxime Gimeno 088934730b changes in the doc. 2017-08-09 10:31:04 +02:00
Maxime Gimeno 603ae0d9c6 Rename file to match doc 2017-08-09 10:31:04 +02:00
Maxime Gimeno 593d7f6691 Use PMP::polygon_soup_to_polygon_mesh() in output_c3t3_to_facegraph() and adapt doc. 2017-08-09 10:31:04 +02:00
Maxime Gimeno d57be1d856 Add documentation and update changes.html 2017-08-09 10:31:04 +02:00
Maxime Gimeno fa598b70ab Add a file and a test to export a c3t3 to a facegraph. 2017-08-09 10:30:19 +02:00
Maxime Gimeno f670ffe4e2 detect_surface_patches uses connected_components 2017-08-09 10:24:48 +02:00
Maxime Gimeno 1fe1e21bb6 Replace maximum_surface_patch by first_index. 2017-08-07 13:32:02 +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
Jane Tournois d826147256 remove TriangleAccessor from polyhedral_mesh_complex 2017-08-03 17:15:43 +02:00
Jane Tournois 56cab9458c remove extra typename 2017-08-03 16:09:52 +02:00
Jane Tournois 0c2999da30 use forward declaration include 2017-08-03 16:09:52 +02:00
Jane Tournois 77896f38fe use the AABB_tree internal to Side_of_triangle_mesh
this avoids incompatibility issues,
and simplifies the code in Polyhedral_mesh_domain_3
2017-08-03 16:09:52 +02:00
Jane Tournois 862300b609 remove extra *
and improve indentation
2017-08-03 16:09:52 +02:00
Jane Tournois ee8eda8a16 TriangleAccessor is not needed anymore 2017-08-03 16:09:52 +02:00
Jane Tournois 9e388204e8 use Side_of_triangle_mesh in Polyhedral_mesh_domain_3 2017-08-03 16:09:52 +02:00
Maxime Gimeno 95dfae314b Rename file 2017-08-02 16:26:53 +02:00
Laurent Rineau 917781929b Merge pull request #2279 from janetournois/Polyhedron_demo_-add_mesh_surface_w_border_in_closed_domain-GF
Qualify call of is_empty() as CentOS6-CXX11 sees an ambiguity with struct std::is_empty
2017-07-25 18:17:10 +02:00
Laurent Rineau 0ec094d1e0 Bug-fix: fix a bug that could lead to a size close to 0
The bug and the fix are known for six weeks (found while working on
another project):

> commit 15d1f864c4bb68cc9e267c3be3610296e5fa9212
> Author: Laurent Rineau <laurent.rineau@cgal.org>
> Date:   Fri Feb 17 12:17:18 2017 +0100
>
>     Refactoring of Sizing_field_with_aabb_tree (API breakage too)

but we forgot to include the fix in CGAL.
2017-07-21 17:29:29 +02:00
Laurent Rineau 99bfe4b200 Fix debug code, after the BGLization 2017-07-21 17:18:51 +02:00
Laurent Rineau 5f198bca9c Bug-fix: fix a bug that could lead to a size close to 0
The bug and the fix are known for six weeks (found while working on
another project):

> commit 15d1f864c4bb68cc9e267c3be3610296e5fa9212
> Author: Laurent Rineau <laurent.rineau@cgal.org>
> Date:   Fri Feb 17 12:17:18 2017 +0100
>
>     Refactoring of Sizing_field_with_aabb_tree (API breakage too)

but we forgot to include the fix in CGAL.
2017-07-21 16:49:40 +02:00
Laurent Rineau 2ef17adaf0 Extend the test to compare with reference files
That way, if the format changes, the test will detect the change.
2017-07-18 15:53:21 +02:00
Laurent Rineau aa85aea097 Fix io_signature for Mesh_3 (since the weighted point rework) 2017-07-18 14:40:10 +02:00
Laurent Rineau ceec6140ba Merge pull request #1884 from lrineau/Mesh_3-Polyhedral_complex_mesh_domain_3-GF
New class of MeshDomainWithFeatures_3, from a polyhedral complex
2017-07-17 16:28:27 +02:00
Laurent Rineau 78f1988747 Merge pull request #2247 from lrineau/Surface_mesher-cleanup_after_Weighted_point_3-lrineau
Surface mesher: cleanup files after the move to Weighted_point_3
2017-07-17 12:24:03 +02:00
Laurent Rineau 871bba21f6 Merge pull request #2212 from MaelRL/Periodic_3_Regular_triangulation_3-APelle
Add periodic regular triangulations
2017-07-17 12:23:54 +02:00
Andreas Fabri b138cc7f9e Qualify call as CentOS6-CXX11 sees an ambiguity with struct std::is_empty 2017-07-17 11:11:42 +02:00
Laurent Rineau ef2f6cd9a8 Remove remaining use of <CGAL/Weighted_point.h> 2017-07-11 13:35:41 +02:00
Jane Tournois 0ca00822dc fix warnings
about comparison signed/unsigned
2017-07-07 11:54:24 +02:00
Jane Tournois 433d154329 variable used only in verbose mode 2017-07-07 11:27:21 +02:00
Jane Tournois 400edd0886 this can't be tested when Surface_patch_index is not only an integer 2017-07-07 11:23:59 +02:00
Jane Tournois b7597d90f7 rt.insert() takes a weighted point
fix compilation error
2017-07-07 10:56:17 +02:00
Jane Tournois ca20cea4f2 fix compilation errors after rebase 2017-07-07 10:19:08 +02:00
Andreas Fabri 5dbe78d1ec Remove typdef 2017-07-07 10:15:10 +02:00
Jane Tournois 63d793575d typos in the doc 2017-07-07 10:15:10 +02:00
Jane Tournois b47a4eec3e Partially Revert "allow not to protect borders and sharp features in a polyhedral complex"
This reverts commit 087c6ab1f388febb8823c66eb9d05b9229a4af93.

We now use a const_cast to solve the problem of the reverted commit
2017-07-07 10:15:10 +02:00
Jane Tournois 8a36efa436 allow not to protect borders and sharp features in a polyhedral complex
we overload construct_initial_points_object() to fill internal data structures
of Polyhedral_complex_mesh_domain_3 in case they have not been initialized yet

there were a lot of constness issues to be solved, and most internal data
structures had to be made mutable.
It seems to be a better choice and exposing a non-const mesh domain in the
outer functions as init_c3t3() for example
2017-07-07 10:15:10 +02:00
Jane Tournois b49bd34349 document the class, and set visible or not what should be 2017-07-07 10:15:10 +02:00
Jane Tournois 6692154562 doc : fix compilation, and add group 2017-07-07 10:15:10 +02:00
Jane Tournois 63cc93d15d change some private to protected, and add a constructor
to be able to use the methods in a derived class
2017-07-07 10:15:10 +02:00
Jane Tournois 0a1f3ce326 use the typedef Polyhedron_type 2017-07-07 10:15:10 +02:00
Jane Tournois db634d317e deal with duplicated points
in some configurations where the input is non-manifold at a vertex,
there might be duplicated points.
When this happens, we want to merge the incident surface patches
to preserve meshing with the topology criterion from not terminating
2017-07-07 10:15:10 +02:00
Jane Tournois 06434bda1a fix add_vertices_to_c3t3_on_patch_without_feature_edges(C3t3& c3t3)
the implementation was incomplete
2017-07-07 10:15:10 +02:00
Jane Tournois 8d54b6f970 remove functions that have become useless
because we do not restrict to cuboid-like domains,
we can use is_sharp, detect_sharp_edges, and detect_border_edges
from Detect_features_in_polyhedra instead of these specific implementations
2017-07-07 10:15:10 +02:00
Jane Tournois 9fc794ec14 add missing ref 2017-07-07 10:15:10 +02:00
Jane Tournois 82da7a8f61 write detect_borders() and detect_features()
as done in CGAL::Polyhedral_mesh_domain_with_features_3
2017-07-07 10:15:10 +02:00
Jane Tournois 80e3ce68dd do not detect sharp features in constructor
and do not consider that sharp edges have to be on the bbox
2017-07-07 10:15:10 +02:00
Jane Tournois 675f54334b add comments 2017-07-07 10:15:10 +02:00
Jane Tournois 46d31b6f48 fix compilation for visual studio
msvc 2013 fails to match IGT with the local IGT, and mismatches
with the one from the Base class.

this commit is enough to help it match types
2017-07-07 10:15:10 +02:00
Laurent Rineau 87d7824afc Include the license checking header 2017-07-07 10:15:10 +02:00
Laurent Rineau abc6c0697f Fix the stupid name lookup bug from Visual C++
```
...\include\CGAL/Polyhedral_complex_mesh_domain_3.h(283): error C2248: 'CGAL::Polyhedral_mesh_domain_3<Polyhedron,IGT,TriangleAccessor,CGAL::Tag_true,CGAL::Tag_true>::IGT': cannot access private typedef declared in class 'CGAL::Polyhedral_mesh_domain_3<Polyhedron,IGT,TriangleAccessor,CGAL::Tag_true,CGAL::Tag_true>'
        with
        [
            Polyhedron=CGAL::Polyhedron_3<K,CGAL::Mesh_3::Mesh_polyhedron_items<int>,CGAL::HalfedgeDS_default,std::allocator<int>>,
            IGT=K,
            TriangleAccessor=CGAL::Triangle_accessor_3<CGAL::Polyhedron_3<K,CGAL::Mesh_3::Mesh_polyhedron_items<int>,CGAL::HalfedgeDS_default,std::allocator<int>>,K>
        ]
...\include\CGAL/Polyhedral_mesh_domain_3.h(169): note: see declaration of 'CGAL::Polyhedral_mesh_domain_3<Polyhedron,IGT,TriangleAccessor,CGAL::Tag_true,CGAL::Tag_true>::IGT'
        with
        [
            Polyhedron=CGAL::Polyhedron_3<K,CGAL::Mesh_3::Mesh_polyhedron_items<int>,CGAL::HalfedgeDS_default,std::allocator<int>>,
            IGT=K,
            TriangleAccessor=CGAL::Triangle_accessor_3<CGAL::Polyhedron_3<K,CGAL::Mesh_3::Mesh_polyhedron_items<int>,CGAL::HalfedgeDS_default,std::allocator<int>>,K>
        ]
```
2017-07-07 10:15:10 +02:00
Laurent Rineau afa62cbb40 First draft of a documentation for Polyhedral_complex_mesh_domain_3 2017-07-07 10:15:10 +02:00
Laurent Rineau c4fea992cb Add an example and a class: Polyhedral_complex_mesh_domain_3 2017-07-07 10:15:10 +02:00
Maxime Gimeno 2e5b2d5d84 Fix mesh_3_plugin with SM 2017-07-05 16:59:11 +02:00
Mael Rouxel-Labbé 5ef4ed6083 Merge branch 'Periodic_3_Regular_triangulation_3-APelle-old' into Periodic_3_Regular_triangulation_3-APelle
Based on master
2017-07-03 16:12:14 +02:00
Laurent Rineau d878561809 Merge pull request #2102 from afabri/Kernel_Weighted_point_without_conversion-GF
Remove implicit conversions between points and weighted points
2017-07-03 12:08:57 +02:00
Mael Rouxel-Labbé ce8f3ff2d9 Fixed unused variable warning 2017-06-28 10:17:14 +02:00
Mael Rouxel-Labbé 044deb6c7e Replaced boost_static_assert with cgal_static_assert and used () guards 2017-06-28 10:16:23 +02:00