Commit Graph

1330 Commits

Author SHA1 Message Date
Andreas Fabri 423242be31 dihedral_angle() -> approximate_dihedral_angle() 2016-10-11 15:35:20 +02:00
Laurent Rineau 0f4661087b Fix issue #1554
Fix a runtime error. The `Intersect_3` functor of
`Robust_intersection_traits_3_new` was ignored cases in the intersection
between a segment and a triangle.

In `ts_intersection`, if one of the extremities of the segment was
coplanar with the triangle, the empty object was always returned.

This bug of mines was introduced in CGAL-4.3 by
56d733b254.

(Fix #1554.)
2016-10-10 18:01:20 +02:00
Laurent Rineau 02b22f216e Fix a compilation error
There was a compilation error if
`CGAL_MESH_3_NO_LONGER_CALLS_DO_INTERSECT_3` was undefined.
2016-10-10 18:01:20 +02:00
Laurent Rineau 7b57c42e51 Merge pull request #1524 from lrineau/Mesh_3-split_graph_into_polylines_determinism-lrineau
Make split_graph_into_polylines deterministic
2016-10-05 15:13:19 +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 745cdaeba5 Merge pull request #1524 from lrineau/Mesh_3-split_graph_into_polylines_determinism-lrineau
Make split_graph_into_polylines deterministic
2016-10-05 13:03:36 +02:00
Laurent Rineau 7b6addbb55 Merge pull request #1519 from lrineau/Mesh_3-fix_conversion_warnings-lrineau
Mesh_3: fix conversion warnings
2016-10-05 13:03:15 +02:00
Laurent Rineau 1c19028e5b Merge pull request #1267 from maxGimeno/Random_generator-GF
Random generator
2016-10-05 13:02:29 +02:00
Laurent Rineau 31b3ae37f0 Merge pull request #1506 from lrineau/Mesh_3-fix_issue_1501-lrineau
Mesh_3: fix issue #1501 - about degenerate cases in initialization
2016-10-05 13:02:28 +02:00
Laurent Rineau 9ba4132a38 No helper.update_restricted_facets() with dim 2! 2016-10-04 16:15:17 +02:00
Laurent Rineau 12cc3a6cc9 Fix another compilation error
`dihedral_angle` has been moved to the CGAL kernels
2016-10-03 11:37:53 +02:00
Laurent Rineau bc95c778b3 Add missing includes 2016-09-30 15:23:15 +02:00
Andreas Fabri c58582b5ec Add global function dihedral_angle() 2016-09-30 15:23:15 +02:00
Laurent Rineau c22dcd0e2c Missing includes 2016-09-30 15:23:15 +02:00
Andreas Fabri 6caea9384f Fix package Mesh_3: include headers 2016-09-30 15:22:30 +02:00
Laurent Rineau 1391a3ca83 Merge pull request #1506 from lrineau/Mesh_3-fix_issue_1501-lrineau
Mesh_3: fix issue #1501 - about degenerate cases in initialization
2016-09-30 11:04:16 +02:00
Laurent Rineau de3d1f4459 Fix compilation of mesh_3_plugin
... after the last merge commit.
2016-09-30 10:05:59 +02:00
Laurent Rineau e4ae38ae97 Merge pull request #1514 from janetournois/Mesh_3-fix_small_angles_in_input_features-GF
Mesh_3 - deal with sharp angles inside input sharp features
2016-09-29 17:42:31 +02:00
Laurent Rineau 5bd65fba58 Make split_graph_into_polylines deterministic
- There is a new argument, `Less`, that allows to sort the `std::set` of
  vertex descriptors with a deterministic sort functor.

- The header `<CGAL/Mesh_3/polylines_to_protect.h>` defines and use such
  a functor.
2016-09-29 17:41:32 +02:00
Jane Tournois f3ea115db9 check nb of facets in c3t3
the issue is not the dimension of the triangulation,
but the nb of facets that are in the c3t3 after the initialization of features

it is necessary to start the refinement procedure that this nb is > 0
2016-09-29 15:35:03 +02:00
Laurent Rineau 7dbc756d42 Mesh_3: Fix other conversion warnings 2016-09-29 14:39:11 +02:00
Jane Tournois 9c181d7860 Angles < 135 deg (90 in theory) should be counted as terminal vertices,
otherwise protection may fail by refining protecting balls endlessly,
getting closer and closer to the input sharp angle
2016-09-29 10:43:11 +02:00
Laurent Rineau 100a4ceb10 Fix #1501
Even if the `dimension()` of initial triangulation is 3, the initial
c3t3 can be empty, even with a non-empty domain. Let's use more initial
points.
2016-09-28 15:20:37 +02:00
Maxime Gimeno 8469c45336 Enhance Prevent_deref API and use it. 2016-09-28 10:48:07 +02:00
Andreas Fabri d5c31f0080 90 -> 12 2016-09-26 17:34:32 +02:00
Andreas Fabri c4faaa99fd remove static variables 2016-09-26 16:23:23 +02:00
Jane Tournois e6d0fe99e0 missing const when TBB available 2016-09-06 11:01:42 +02:00
Laurent Rineau 79dc30fee3 Bug-fix Mesh_3: clear c3t3 before refine_mesh
If vertices are inserted manually in the triangulation between calls to
refine_mesh, the c3t3 is corrupted and must be cleared.
2016-09-02 16:55:37 +02:00
Laurent Rineau 955ca9a55d Bug-fix: bug with Null in Labeled_mesh_domain_3
The bug was introduced in the PR #1010, and was only exposed when the
`Null_subdomain_index` functor was non-trivial.
2016-09-02 16:55:19 +02:00
Laurent Rineau 056df4d93d A Mesh_3 bug-fix!
Some use-cases were triggering the assertion
```C++
CGAL_assertion (this->is_facet_on_surface(facet)
```
in `Refine_facets_3::refinement_point_impl()`.

With Jane, we eventually found out that the bug was that, once a
refinement point is not in conflict with the facet, the dual of the
facet is reconstructed using an exact arithmetic (then a round to
doubles); it turns out that, if the new (exact) dual was not
intersecting the surface of the domain, then the facet must be removed
from the `c3t3`... but it must also be removed from the priority queue
of bad facets! The last part was missing.
2016-09-02 11:51:11 +02:00
Laurent Rineau bffed99bb0 Add a missing overload of the constructor: 4 args 2016-09-02 11:51:11 +02:00
Laurent Rineau a3ffae35bd Merge pull request #1364 from sloriot/CGAL-replace_assert
Replace assert by CGAL_assertion in CGAL code
2016-08-29 12:32:01 +02:00
Sébastien Loriot ff1b240a37 replace assert by CGAL_assertion in CGAL code 2016-08-25 11:12:17 +02:00
Laurent Rineau ec78fd78eb A function that allows to specify ones own lines 2016-08-03 15:36:36 +02:00
Laurent Rineau 426f6e623b bugfix for master: used the copied polyhedron
As `Polyhedral_mesh_domain_with_features_3` copies the polyhedra, the
aabb tree should used the copy (with the assigned patch ids!)

cc @jtournoi
2016-07-26 12:36:21 +02:00
Laurent Rineau 2cd9a15bb9 Merge remote-tracking branch 'cgal/releases/CGAL-4.8-branch'
Merge the following merge commits:
> 12b92f5 Merge pull request #1271 from lrineau/Mesh_3-distance_criterion_sizing_field-GF
> 9c3d0b0 Merge pull request #1295 from lrineau/CGAL-add_test-GF

Conflicts:
	Maintenance/release_building/BUGFIX_NUMBER
	Maintenance/release_building/public_release_name
2016-07-22 18:31:02 +02:00
Laurent Rineau 05260fb4ae Allow a sizing field for the distance criterion 2016-07-21 12:59:14 +02:00
Laurent Rineau 06436ba2ea Fix the I/O for Polyhedral_mesh_domain_3 2016-07-11 18:09:25 +02:00
Laurent Rineau 2e1a6d2c3a Add support for Parallel_tag in io_signature.h 2016-07-11 18:08:51 +02:00
Laurent Rineau 831c0def3d Add an assertion 2016-07-11 18:08:40 +02:00
Sébastien Loriot 10cadcb985 Merge remote-tracking branch 'cgal-dev/CGAL_headers_only_step1-gdamiand_cjamin' into HEAD 2016-06-24 17:05:40 +02:00
Sébastien Loriot c951fe0fca Merge pull request #1035 from lrineau/CGAL-fix_Wconversion_warnings-GF
Fix -Wconversion warnings, and issues detected by those warnings
2016-06-24 13:30:48 +02:00
Laurent Rineau f9dd4b4be7 Try to fix a compilation error with CentOS5's g++
The compilation error was:

> ../include/CGAL/Mesh_3/polylines_to_protect.h: In function ‘void CGAL::polylines_to_protect(const CGAL::Image_3&, double, double, double, std::vector<std::vector<IC, std::allocator<_CharT> >, std::allocator<std::vector<IC, std::allocator<_CharT> > > >&, Image_word_type*, Null_subdomain_index, PolylineInputIterator, PolylineInputIterator) [with P = CGAL::Point_3<CGAL::Epick>, Image_word_type = unsigned char, Null_subdomain_index = CGAL::Null_subdomain_index, PolylineInputIterator = __gnu_cxx::__normal_iterator<std::vector<CGAL::Point_3<CGAL::Epick>, std::allocator<CGAL::Point_3<CGAL::Epick> > >*, std::vector<std::vector<CGAL::Point_3<CGAL::Epick>, std::allocator<CGAL::Point_3<CGAL::Epick> > >, std::allocator<std::vector<CGAL::Point_3<CGAL::Epick>, std::allocator<CGAL::Point_3<CGAL::Epick> > > > > >]’:
> ../include/CGAL/Mesh_3/polylines_to_protect.h:538:   instantiated from ‘void CGAL::polylines_to_protect(const CGAL::Image_3&, std::vector<std::vector<IC, std::allocator<_CharT> >, std::allocator<std::vector<IC, std::allocator<_CharT> > > >&, PolylineInputIterator, PolylineInputIterator) [with P = CGAL::Point_3<CGAL::Epick>, Image_word_type = unsigned char, PolylineInputIterator = __gnu_cxx::__normal_iterator<std::vector<CGAL::Point_3<CGAL::Epick>, std::allocator<CGAL::Point_3<CGAL::Epick> > >*, std::vector<std::vector<CGAL::Point_3<CGAL::Epick>, std::allocator<CGAL::Point_3<CGAL::Epick> > >, std::allocator<std::vector<CGAL::Point_3<CGAL::Epick>, std::allocator<CGAL::Point_3<CGAL::Epick> > > > > >]’
> ../test/Mesh_3_Examples/mesh_3D_image_with_features.cpp:62:   instantiated from here
> ../include/CGAL/Mesh_3/polylines_to_protect.h:193: error: no matching function for call to ‘get(boost::tuples::tuple<boost::array<int, 3ul>, CGAL::Point_3<CGAL::Epick>, unsigned char, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>&)’

See https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-4.9-Ic-81/Mesh_3_Examples/TestReport_lrineau_CentOS5.gz
2016-06-23 14:19:24 +02:00
Guillaume Damiand e21ef313c0 Merge branch 'CGAL_headers_only_step1-gdamiand_cjamin-old' into CGAL_headers_only_step1-gdamiand_cjamin 2016-06-22 20:54:37 +02:00
Laurent Rineau bbc05a11d9 Fix -Wconversion warnings
All conversions are safe.
2016-06-16 16:36:43 +02:00
Laurent Rineau 955e965561 Move code
That will fix the initialization of c3t3 from 3D images, in the
Polyhedron demo, with the protection of 1D-features is used, but there
are no 1D-features.

For other use-cases, that does not change anything.
2016-06-16 15:08:36 +02:00
Laurent Rineau 99b646bdd4 Try to fix a warning
> include\CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h(192): warning C4244: 'argument': conversion from 'const ptrdiff_t' to 'const unsigned short', possible loss of data
2016-06-16 14:44:05 +02:00
Laurent Rineau cfb6c060af Try to fix a warning with MSVC
> include\CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h(111): warning C4267: 'argument': conversion from 'size_t' to 'const unsigned short', possible loss of data
2016-06-16 14:44:05 +02:00
Laurent Rineau fa5cb831c9 Add Output_rep<T,F>::is_specialized...
.. that allows `Dump_c3t3` to detect if a type can be streamed, using
either `operator<<` or `Output_rep<T>`.
2016-06-15 18:10:14 +02:00
Laurent Rineau 16d18351ce Add example showing how to initialize components 2016-06-15 18:10:14 +02:00
Guillaume Damiand a53f16edac Merge branch 'CGAL_headers_only_step1-gdamiand_cjamin-old' into CGAL_headers_only_step1-gdamiand_cjamin 2016-06-09 19:09:38 +02:00
Sébastien Loriot 97e122ccb8 Merge pull request #1110 from maxGimeno/Mesh_3_use_split_graph_into_polylines-GF
Remove duplicated implementation in <CGAL/Mesh_3/polylines_to_protect.h>
2016-05-31 16:03:16 +02:00
Sebastien Loriot cf15f57a50 Merge pull request #1097 from lrineau/Mesh_3-improve_polylines_to_protect-GF
Mesh 3: add an example that protects features of a 3D image
2016-05-31 16:00:58 +02:00
Sebastien Loriot 0f04b4262a Merge pull request #1109 from lrineau/Mesh_3-change_default_for_edge_size-GF
Mesh_criteria_3: change the default for `edge_size` from 0 to +∞
2016-05-31 15:49:16 +02:00
Sébastien Loriot 40ff09bd43 Merge pull request #303 from lrineau/Mesh_3-add_remesh_polyhedral_surface-GF
Add an example that remeshes a polyhedral surface
2016-05-31 15:43:05 +02:00
Sébastien Loriot bb856cbd63 add missing typename 2016-05-27 17:25:17 +02:00
Laurent Rineau 5770538719 Fix a warning
> warning: typedef ‘K’ locally defined but not used [-Wunused-local-typedefs]
2016-05-27 16:47:26 +02:00
Laurent Rineau cfd76f1b00 Avoid degenerated polylines 2016-05-27 16:46:28 +02:00
Jane Tournois 5b45da6239 boundary edges already are detected by detect_features
do not detect and add them twice
and prevent from not-terminating
2016-05-26 17:02:05 +02:00
Maxime Gimeno 475d19894c Removed the file Mesh_3/include/CGAL/internal/Mesh_3/split_in_polylines.h and replaced its usage by CGAL::split_graph_into_polylines. 2016-05-26 16:23:06 +02:00
Jane Tournois 57b609464e save the input polyhedra in a vector
and implement the derived constructors to be able to detect features in them
2016-05-26 16:15:45 +02:00
Jane Tournois be95730ee2 fix commit c7d614193e
I had forgotten 2 constructors
2016-05-26 13:01:30 +02:00
Laurent Rineau fe67240536 Change the default for `edge_size` from 0 to +∞
The previous default value for `CGAL::parameters::edge_size`, in the
constructor of `CGAL::Mesh_criteria_3` was `FT(0)`.

That was in contradiction with the documentation of
[`CGAL::Mesh_criteria_3`][*]:

> Each parameter has a special default value `ignored` which means that
> the corresponding criteria will be ignored.

With `edge_size=0`, the protection of 1D-features is certain to trigger
an assertion or a segmentation fault.

The new default value is now `FT(DBL_MAX)`.

[*]: http://doc.cgal.org/latest/Mesh_3/classCGAL_1_1Mesh__criteria__3.html#ada26edb7ee77aa7279b2ae7e96c56eb0
2016-05-26 12:33:30 +02:00
Jane Tournois c7d614193e move detect_borders inside detect_features
and protect its use with a boolean, to avoid doing it twice
2016-05-26 11:54:30 +02:00
Laurent Rineau 025de85f8b Fix a warning
g++, with `-Wall -Wextra`:

    .../include/CGAL/Mesh_3/polylines_to_protect.h:50:28: warning: unused parameter 'k' [-Wunused-parameter]
2016-05-26 09:39:52 +02:00
Laurent Rineau b8f90e6263 Handle the case 1-2-1 with real arcs
Before that, the arcs were each approximated with a polyline of only two
segments. Now they are each approximated with a polyline of 10 segments.
2016-05-25 14:36:36 +02:00
Laurent Rineau cb8609c6ae Handle the case 2-1-1 with real arcs
Before that, the arcs of the case 2-1-1 were approximated with a strait
line segment. Now they are approximated with a polyline composed of 10
line segments.
2016-05-25 12:38:29 +02:00
Guillaume Damiand 10469f9c4e Update with master 2016-05-25 10:58:55 +02:00
Laurent Rineau e1ccdbf567 Add an example of a labeled imaged with 1d-features 2016-05-24 16:28:17 +02:00
Laurent Rineau 4726306ccb Add debug code for <CGAL/Mesh_3/Graph_manipulations.h>
Protected by the macro `CGAL_MESH_3_DEBUG_GRAPH_MANIPULATION`.
2016-05-23 15:20:39 +02:00
Laurent Rineau aaf91148be bug-fix for previous commit 2016-05-23 15:19:19 +02:00
Laurent Rineau c15c75fa1a Do not protect outside the domain! 2016-05-20 16:53:19 +02:00
Laurent Rineau 4d38c931ce Improve the API of <CGAL/Mesh_3/polylines_to_protect.h>
Now the word type and the null functor are passed as parameters.
2016-05-20 16:52:35 +02:00
Laurent Rineau ee0fb3b23a Fix the header guard macro, and copyright years 2016-05-20 12:46:09 +02:00
Laurent Rineau c03f8530ce Fix indentation 2016-05-20 12:45:47 +02:00
Sebastien Loriot 1ad076e14b Merge pull request #1010 from lrineau/Mesh_3-improve_images-GF
Mesh 3: improve domains based on images
2016-05-05 14:56:56 +02:00
Laurent Rineau 121e562dd6 Merge pull request #830 from afabri/Mesh_3-Default-GF
Introduce CGAL::Default for the geometric traits of Mesh_triangulation_3
2016-04-22 15:26:41 +02:00
Laurent Rineau 52f884589b Stupid typo! 2016-04-22 09:59:08 +02:00
Laurent Rineau 683fa43b69 Fix -Wconversion warnings (g++-5.3.1 Fedora 23) 2016-04-21 16:41:14 +02:00
Laurent Rineau b8e97aa9ce Fix conversions warnings detected by MSVC 2016-04-21 16:39:31 +02:00
Laurent Rineau f97d5b7bd5 Restore the assertion 2016-04-20 15:59:04 +02:00
Laurent Rineau 62d1cfecbe Fix compilation errors (in the Polyhedron Demo) 2016-04-20 15:26:49 +02:00
Laurent Rineau 89129b362f Fix a bug with Null_subdomain_index 2016-04-20 15:24:26 +02:00
Laurent Rineau 5cf76255f8 Revert a decision made two years ago
I have decided to revert this commit:

> commit 874e96a553
> Author: Laurent Rineau <laurent.rineau@cgal.org>
> Date:   Tue Feb 4 12:33:59 2014 +0100
>
>     Fix a bug of the bissection oracle (Labeled_mesh_domain_3)
>
>     In CGAL-4.2 and previous, when a facet f was between finite cells c1,
>     and c2, with different subdomain indices, the surface patch index of f
>     was the pair { c1->subdomain_index(), c2->subdomain_index() }, say the
>     pair (1, 2). Since CGAL-4.3, with
>     CGAL_MESH_3_NO_LONGER_CALLS_DO_INTERSECT_3, the Do_intersect functor of
>     the domain is no longer called, and only Construct_intersection. If the
>     bissection eventually found out that the bissection ended up between the
>     volumes labeled 1 and 3, then the returned surface patch index was
>     {1,3}, instead of {1,2}. That commit fixes that "bug", and restores
>     the behavior of CGAL-4.2.

I have "fixed" the test as well.
2016-04-20 15:22:53 +02:00
Laurent Rineau 55e0df7556 Fix a comment 2016-04-20 15:17:42 +02:00
Andreas Fabri db02d60d6f make output_to_medit() faster 2016-04-15 20:52:13 +02:00
Laurent Rineau 9eefbf3e6e Fix the ambiguous matching 2016-04-14 20:00:33 +02:00
Laurent Rineau 6e874352a9 Improve Labeled_image_mesh_domain_3
- Allow to specify which `Subdomain_index` must be considered as outside
  the domain, for `Is_in_domain`.
2016-04-14 19:45:00 +02:00
Laurent Rineau 35cb7bd5b8 Improve CGAL::Image_3
- The type of `value_outside` is now directory `Return_type`: no need to
  apply the transformation.

- The indicator functions of the labelized trilinear interpolation can
  be changed.
2016-04-14 19:36:20 +02:00
Laurent Rineau 50a3e0b5cb Merge pull request #969 from afabri/Distance_3-Point_Triangle_3-GF
Moved squared_distance(Point_3,Triangle_3)
2016-04-13 10:21:21 +02:00
Laurent Rineau 80a597c7c4 Fix C3t3::rescan_after_load_of_triangulation 2016-04-07 17:38:19 +02:00
Laurent Rineau 3299b4b906 Do not dump after optimisers that are not used 2016-04-01 16:17:08 +02:00
Laurent Rineau 5a9d82ebc7 Improve c3t3 loading and display
Followup to PR #962:

 - the display of spheres was no longer correct,
 - allow loading of c3t3 without any facets and cells (only vertices
   with weights),
 - fix the display of spheres, with better shaders,
 - `Scene_c3t3_item`: do not draw edges, in FlatPlusEdges, during a
   `drawWithNames()`, to optimize speed,
 - `Viewer`: do not use anti-aliasing during `drawWithNames()`
2016-04-01 16:07:56 +02:00
Andreas Fabri 2443b7d1a6 Moved squared_distance(Point_3,Triangle_3 2016-03-30 16:58:22 +02:00
Laurent Rineau 216b298652 Fix issues in I/O of Mesh_complex_3_in_triangulation_3
And restore the possibility for the Polyhedron demo to load two types of
C3t3 (with `Patch_id` being `int` or `std::pair<int, int>`).
2016-03-25 15:45:28 +01:00
Andreas Fabri a2e6f59f7b Fix K -> K_ 2016-03-23 12:18:12 +01:00
Andreas Fabri 92ccbb7745 fix shadow bug (was not produced with VC++ 2016-03-23 05:45:19 +01:00
Clement Jamin 9a61b23b55 Use get_default_random() instead of default_random 2016-03-09 10:35:21 +01:00
Sebastien Loriot 204e86e3cc Merge pull request #863 from lrineau/Mesh_3-fix_IO-lrineau
Fix the I/O of C3t3 in <CGAL/Mesh_vertex_base_3.h>
2016-03-03 16:55:39 +01:00
Laurent Rineau 65feefa4b2 Fix the I/O of C3t3 in <CGAL/Mesh_vertex_base_3.h> 2016-03-02 11:24:17 +01:00
Laurent Rineau 99f004c15f Minor bug-fix in Mesh_3 2016-03-01 16:32:31 +01:00
Andreas Fabri 78f00eb2e6 Introduce CGAL::Default for the geometric traits 2016-02-25 17:11:20 +01:00
Andreas Fabri 7f3d561fee Add protection of border edges 2016-02-22 13:44:04 +01:00
Andreas Fabri a6ae6aecfc initialize to avoid a warning 2016-02-03 08:59:11 +01:00
Laurent Rineau 1179371045 Add the Create_bbox_mesh_plugin 2016-01-27 10:46:52 +01:00
Sebastien Loriot 277a91b4f0 Merge pull request #664 from janetournois/Mesh_3-replace_binder2nd-pmoeller
Mesh 3 - Improve Gray level images domain and fix warnings
2016-01-25 08:48:43 +01:00
Sebastien Loriot 2fad9efc1d Merge pull request #633 from bo0ts/Mesh_3-replace_binder2nd-pmoeller
Replace deprecated binder2nd
2016-01-23 09:12:42 +01:00
Jane Tournois 790c4d68aa change default template parameter
in 3D gray images, it's very likely that the area of interest is the area
where voxels have high values associated
2016-01-21 11:46:48 +01:00
Jane Tournois d396c8c869 std::unary_function is deprecated since cpp11
so let's add the missing typedef instead
2016-01-19 16:07:21 +01:00
Jane Tournois 67a52efc1f Less should derive from std::unary_function
otherwise the type name Less_than::argument_type is invalid
and causes compilation errors
2016-01-19 15:22:08 +01:00
Philipp Möller 659dbffa13 Replace deprecated binder2nd
We cannot just use boost::bind or similar, since we need to get the type
of the binder (which is not easily possible without decltype).
2016-01-15 15:35:14 +01:00
Sebastien Loriot 7659e881bd Merge pull request #625 from lrineau/Mesh_3-add_assertion-lrineau
Add an assertion in Image_to_labeled_function_wrapper
2016-01-14 14:09:06 +01:00
Sébastien Loriot 3bbe6e068b Merge pull request #607 from afabri/Mesh_3-avizo_output-GF
Add output to Avizo file format
2016-01-13 14:45:09 +01:00
Laurent Rineau abca7b5390 Add an assertion in Image_to_labeled_function_wrapper
That assertion verifies that the value `value_outside` is considered at
a value *outside* of the domain. Otherwise Mesh_3 will crash with an
assertion saying that "infinite cells should not be in the C3t3".
2016-01-13 11:00:25 +01:00
Andreas Fabri b02a7ed31a no need to funnel io routines through Mesh_complex_3_in_triangulation_3_base 2016-01-13 10:35:59 +01:00
Sebastien Loriot 2a4d8e5c9f Merge pull request #590 from lrineau/Mesh_3-manifold_criterion-lrineau
Mesh_3: add the manifold criterion
2016-01-12 16:02:00 +01:00
Sébastien Loriot aa36d50923 remove unused variable 2016-01-11 20:18:54 +01:00
Andreas Fabri 7cc1543c84 remove unused typedefs 2016-01-11 15:40:36 +01:00
Laurent Rineau f5cbf206b8 Merge branch 'Mesh_3-merge-manifold-meshing-thread' into Mesh_3-manifold_criterion-lrineau 2016-01-11 13:14:25 +01:00
Laurent Rineau f0ed1101c0 Use CGAL_assume instead of CGAL_assertion
That is an attempt to fix a warning:
```
../include/CGAL/utility.h:101:33: warning: 'index2' may be used uninitialized in this function [-Wmaybe-uninitialized]
   : first(a), second(b), third(c)
                                 ^
In file included from ../include/CGAL/Mesh_3/Mesher_3.h:35:0,
                 from ../include/CGAL/refine_mesh_3.h:32,
                 from ../include/CGAL/make_mesh_3.h:30,
                 from ../test/Mesh_3/test_c3t3_extract_subdomains_boundaries.cpp:9:
../include/CGAL/Mesh_3/Refine_facets_manifold_base.h:162:17: note: 'index2' was declared here
     int index1, index2;
                 ^
```
2016-01-11 13:10:04 +01:00
Laurent Rineau d5a5a56ac0 Remove debug ouput
A file `polylines.cgal.txt` was created during the computation.
2016-01-11 12:06:11 +01:00
Sebastien Loriot 8245efd76b Merge pull request #601 from lrineau/Polyhedron-Mesh_3_plugin__add_Meshing_thread-lrineau
Polyhedron, Mesh 3 plugin: add the meshing threads
2016-01-11 11:20:26 +01:00
Andreas Fabri 41a30023f9 std::ofstream is used without the header being included 2016-01-09 09:45:36 +01:00
Laurent Rineau 689fcea368 Fix a compilation: <iostream> not included
Anyway, we do not want that file to be created.
2016-01-08 19:01:40 +01:00
Laurent Rineau bd315dc0a5 Merge remote-tracking branch 'lrineau/Polyhedron-Mesh_3_plugin__add_Meshing_thread-lrineau' into Mesh_3-merge-manifold-meshing-thread
Conflicts:
	Polyhedron/demo/Polyhedron/Plugins/Mesh_3_plugin/Mesh_3_plugin.cpp
	Polyhedron/demo/Polyhedron/Plugins/Mesh_3_plugin/Mesh_3_plugin_cgal_code.cpp
2016-01-08 17:55:21 +01:00
Laurent Rineau 4638645a01 Merge PR #597 into Mesh_3-manifold_criterion-lrineau
Conflicts:
	Polyhedron/demo/Polyhedron/Plugins/Mesh_3_plugin/Mesh_3_plugin.cpp
	Polyhedron/demo/Polyhedron/Plugins/Mesh_3_plugin/Mesh_3_plugin_cgal_code.cpp
2016-01-08 17:41:02 +01:00
Laurent Rineau 006642e32a Fix the commit "Try to fix warnings from VC++"
"-1" is used as a sentinel value for `v->cached_number_of_components()`.
2016-01-08 16:58:11 +01:00
Andreas Fabri 7fa7db80d4 Add output to Avizo file format 2016-01-08 16:30:07 +01:00
Laurent Rineau ccb31e40ff Re-enable the meshing thread
The Mesh_3 plugin is also renamed to Mesh_3_plugin, like the same of its
file.
2016-01-08 15:10:09 +01:00
Laurent Rineau 9730e2bd8e fix a copy-paste error in a comment 2016-01-08 14:34:44 +01:00
Laurent Rineau 25b2330fb0 Try to fix warnings from VC++
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(227): warning C4267: 'initializing': conversion from 'size_t' to 'const int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(227): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(503): warning C4267: 'initializing': conversion from 'size_t' to 'const int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(503): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(517): warning C4267: 'initializing': conversion from 'size_t' to 'const int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(517): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(518): warning C4267: 'return': conversion from 'size_t' to 'int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(561): warning C4267: 'initializing': conversion from 'size_t' to 'const int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(561): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(814): warning C4267: 'initializing': conversion from 'size_t' to 'const int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(814): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(815): warning C4267: 'initializing': conversion from 'size_t' to 'const int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(815): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(855): warning C4267: 'initializing': conversion from 'size_t' to 'const int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(855): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(857): warning C4267: 'initializing': conversion from 'size_t' to 'const int', possible loss of data
> CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h(857): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
2016-01-07 16:38:11 +01:00
Sebastien Loriot f3bc10ef81 Merge pull request #549 from afabri/Polyhedron-clipping_in_shader-GF
Improve C3T3 item and meshing of a segmented image
2016-01-07 13:49:16 +01:00
Laurent Rineau b1a0f01027 Fix compilation error with clang, again 2016-01-06 17:35:25 +01:00
Laurent Rineau 8542eb2fe9 Fix compilation error (clang)
> /Mesh_3/include/CGAL/Mesh_3/Refine_facets_3.h:632:25: error: declaration of 'Tr' shadows template parameter
>         template<class Tr, class Cr, class MD, class C3T3_, class Ct, class C_>
2016-01-06 17:28:52 +01:00
Laurent Rineau 2a7fb19d3e Fix compilation error (missing header) 2016-01-06 16:50:08 +01:00
Laurent Rineau 772772d7b7 Fix the -Wsign-compare
There was a warning in a CGAL_assertion.
2016-01-06 15:50:27 +01:00
Andreas Fabri a776df173b fix license header 2016-01-06 15:25:01 +01:00
Sébastien Loriot dd8f33adc5 Merge pull request #559 from lrineau/Mesh_3-remove_estimated_bbox-lrineau
Add bbox() to MeshDomain_3
2016-01-06 14:35:01 +01:00
Andreas Fabri d3e610f188 harcode again that the image word type is unsigned char for a segmented image and perform static_cast 2016-01-06 13:06:51 +01:00
Laurent Rineau 6eacaa7868 cosmetic fix: display the iterations on 1 line only 2016-01-05 17:41:56 +01:00
Laurent Rineau 8324d8eceb bug-fix: invalidate the "manifold info" after refine().
The global optimizers destroy the manifold info. It must be invalidated.
2016-01-05 17:40:40 +01:00
Laurent Rineau 432b52636a Override the debuginfo too
That way, the manifold mesher level displays also the number of bad
edges/vertices.
2016-01-05 17:40:01 +01:00
Andreas Fabri 56bfaa2746 merge 2016-01-05 17:06:04 +01:00
Andreas Fabri b116b8ed5b move polylines_to_protect.h into CGAL/Mesh_3/ 2016-01-05 16:42:07 +01:00
Laurent Rineau 7b53a337af Merge pull-request #483 from 'janetournois/Mesh_3-gray_level_image_oracle-lrineau'
Conflicts:
	.gitignore
	Mesh_3/include/CGAL/IO/File_medit.h
2016-01-05 14:58:18 +01:00
Laurent Rineau d34b240e5e WIP: seems to work
I will test with the 3D gray level images...
2016-01-05 14:55:42 +01:00
Laurent Rineau 397ac28143 WIP, new milestone: compiles with Refine_facets_manifold_base 2016-01-05 12:45:22 +01:00
Laurent Rineau b754453b44 WIP: Refine_facets_3_base compiles 2016-01-04 17:08:27 +01:00
Sebastien Loriot 44a14a4289 Merge pull request #566 from lrineau/Mesh_3-remove_Boost.Parameters_warnings-lrineau
Remove Mesh_3 warnings in Boost.Parameters
2015-12-29 16:47:38 +01:00
Jane Tournois d212432a56 avoid hardcoding the Image_word_type 2015-12-22 16:53:26 +01:00
Sébastien Loriot dd955cef30 Merge pull-request #483 from 'janetournois/Mesh_3-gray_level_image_oracle-lrineau'
Mesh 3 : add gray level image oracle
2015-12-18 16:46:46 +01:00
Laurent Rineau 94b3204038 work in progress
one more step:
  - inverse the arguments,
  - specify the argument Base_.
2015-12-18 15:44:21 +01:00
Laurent Rineau c7f0d9cd9d Merge pull request #566 from lrineau/Mesh_3-remove_Boost.Parameters_warnings-lrineau
Remove Mesh_3 warnings in Boost.Parameters
2015-12-18 14:56:15 +01:00
Laurent Rineau e0f8f4f85f Refresh the branch Mesh_3-manifold_criterion-lrineau
For the moment, the manifold feature is no longer working.

Merge remote-tracking branch 'cgal-dev/Mesh_3-manifold_criterion-lrineau' into Mesh_3-manifold_criterion-lrineau

Conflicts:
	Mesh_3/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h
	Mesh_3/include/CGAL/Mesh_3/Mesher_3.h
	Mesh_3/include/CGAL/Mesh_3/Refine_facets_3.h
	Polyhedron/demo/Polyhedron/Polyhedron_3.cpp
	Polyhedron/demo/Polyhedron/Polyhedron_demo_mesh_3_plugin.cpp
	Polyhedron/demo/Polyhedron/Polyhedron_demo_mesh_3_plugin_cgal_code.cpp
2015-12-18 14:55:20 +01:00
Laurent Rineau d8c2f1a851 Remove Mesh_3 warnings in Boost.Parameters 2015-12-18 14:44:56 +01:00
Laurent Rineau 312962f429 Bug-fix: do not store a reference to a temp object 2015-12-17 12:20:16 +01:00
Laurent Rineau 2af8d42ed3 Add bbox() to MeshDomain_3 2015-12-16 11:52:52 +01:00
Maxime Gimeno d1b3937a88 Edges management
- The shader of the edges of the base item discards the edges when it should
- The facets of the cutplane have edges
- The grid is displayed in all the rendering modes
2015-12-14 10:47:34 +01:00
Andreas Fabri d4dd0c1b28 merged branch that deals with 1D features on the sides of a cube 2015-12-13 11:07:12 +01:00
Sebastien Loriot 60dbff189d Merge pull request #534 from afabri/Polyhedron_3-improve_mesh_3_plugin-GF
Polyhedron 3 improve mesh 3 plugin gf
2015-12-10 21:01:00 +01:00
Andreas Fabri b97ccb832b capitalize file name 2015-12-09 10:28:55 +01:00
Andreas Fabri 18bbaede12 Integrate code for respecting polylines on an Image_3 2015-12-09 06:30:15 +01:00
Andreas Fabri b623100175 split the dual() functions; make the power test check for the absence of weights 2015-12-08 11:27:14 +01:00
Andreas Fabri b3b21809c6 Avoid calling make_object as it is expensive: It calls new/delete 2015-12-07 15:42:02 +01:00
Andreas Fabri d26903170c Do not use std::endl in output_to_medit 2015-12-06 12:34:25 +01:00
Andreas Fabri 247ba0056c Include Mesh_3/global_parameters.h earlier 2015-12-02 10:59:26 +01:00
Andreas Fabri dd17f1ad5d Set BOOST_PARAMETER_MAX_ARITY to the needed value in the concerned packages 2015-12-01 17:05:53 +01:00
Jane Tournois f7efee8977 fix the use of the default number of initial points
it depends on the type of domain
2015-11-24 12:23:45 +01:00
Jane Tournois 44f940164a add to mesh_3_options the ability to set the number of initial points from make_mesh_3
this is an undocumented internal feature
mainly for testing purposes
2015-11-23 16:48:15 +01:00
Andreas Fabri 7a904dd370 fix VC++ max() error 2015-11-18 08:18:49 +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 3f308a48af Merge branch 'Mesh_3-gray_level_image_oracle-lrineau-old' into Mesh_3-gray_level_image_oracle-lrineau 2015-11-17 11:16:53 +01:00
Andreas Fabri 2ce8b07ec0 Define BOOST_PARAMETER_MAX_ARITY in <CGAL/config.h>
This macro has to be larger than the default value
and it must be set before including <boost/parameter.hpp>

Instead of setting it to 12 in the packages that
need it, we do this in <CGAL/config.h> and produce
an error if a user has set it to a value < 12
2015-11-16 11:21:31 +01:00
Sebastien Loriot ab704be3b5 Merge pull request #473 from janetournois/Mesh_3-fix_protection_bug-GF
Mesh 3 : fix limit case in polylines protection
2015-11-13 12:36:33 +01:00
Jane Tournois a5162d86e1 bugfix : deal with the limit case
where the point to be found is almost exactly the endpoint of the polyline,
just "behind" it in terms of geodesic_distance
2015-11-10 16:35:31 +01:00
Jane Tournois f9d16f6720 this code should not be called for a triangulation of dimension < 3 2015-11-10 16:33:58 +01:00
Jane Tournois 31ebc6c472 use complete API of boost::optional 2015-10-30 16:06:31 +01:00
Jane Tournois adf5c63fb2 add meshing of segmented images 2015-10-29 15:40:43 +01:00
Jane Tournois b8ffee0f3a add typedef to be used in polyhedron demo 2015-10-29 14:09:22 +01:00
Laurent Rineau cc84605c2b Merge pull request #421 from janetournois/Mesh_3-check_weights_before_optimization-jtournois
Mesh_3 - add a precondition to global optimizers
2015-10-16 11:45:56 +02:00
Jane Tournois 258efef761 fix the case where trilinear_interpolation is not used
here transform() returns true or false whether the voxel value (not interpolated)
is less (default functor) than the input isovalue

this error was shown by a conversion "float to int" warning
2015-10-15 17:29:18 +02:00
Jane Tournois 58dc3c0fbb fix a bug in C3T3_helpers for Mesh_3 global optimizers
handle the case, with global optimisers, in which
a point is moved to the same location as an existing vertex,
which is not old_vertex

it belongs to the case where there is a topological change
(because of the removal of old_vertex) but
find_conflicts(new_location) does not find any conflict
2015-10-15 17:13:47 +02:00
Jane Tournois 5b03df377f fix compilation 2015-10-15 15:47:52 +02:00
Jane Tournois 4b2e0301e0 fix compilation 2015-10-15 15:47:02 +02:00
Jane Tournois 3c0169c6e2 Merge branch 'Mesh_3-check_weights_before_optimization-jtournois' into Mesh_3-gray_level_image_oracle-lrineau 2015-10-15 13:19:32 +02:00
Jane Tournois a77b066f6b add a precondition to global optimizers
this precondition checks that global optimizers are not run on a
triangulation with weights.
Protecting balls are an exception and don't prevent global optimizers
from running
2015-10-15 13:11:48 +02:00
Jane Tournois e3c396d219 add random generator as parameter for determinism 2015-10-15 10:58:34 +02:00
Jane Tournois 70b9a83f60 fix conversion warning 2015-10-13 12:38:37 +02:00
Andreas Fabri 0e26773f5d insert \n in the stream instead of \endl 2015-10-13 09:15:21 +02:00
Jane Tournois 5a28ef7067 fix error due to deprecation
file has moved from include/CGAL/Mesh_3 to include/CGAL
2015-10-12 10:05:47 +02:00
Jane Tournois 039ddb0e4f Merge branch 'Mesh_3-gray_level_image_oracle-lrineau-old' into Mesh_3-gray_level_image_oracle-lrineau
Conflicts:
	.gitignore
2015-10-12 08:49:52 +01:00
Clement Jamin 77e6772aa7 Use Real_timer in Mesh_3 since the algorithms might be parallel
And update the doc accordingly
2015-10-08 15:26:50 +02:00
Mael Rouxel-Labbé 8a291245b7 Avoid some unnecessary set/map's find() calls in Mesh_3's medit output 2015-10-07 17:02:10 +02:00
Laurent Rineau 7ddefbdcc8 Merge pull request #297 from afabri/CGAL-assert-GF
assert() should not be used in CGAL headers!
2015-09-07 10:58:20 +02:00
Laurent Rineau 0bc029c5b8 Revert "suppress performance warning concerning an assertion"
This reverts commit 580b65d8a5.

The warning was already fixed by commit
63ae26eb0f.
2015-09-04 13:52:45 +02:00
Andreas Fabri 0d18ccf09d Merge branch 'CGAL-assert-GF' of github.com:CGAL/cgal-dev into CGAL-assert-GF 2015-09-04 12:30:26 +02:00
Andreas Fabri 580b65d8a5 suppress performance warning concerning an assertion 2015-09-04 12:30:07 +02:00
Laurent Rineau 63ae26eb0f Fix MSVC warning: conversion from size_t to bool
MSVC emits that warning:

    include\CGAL/Implicit_to_labeling_function_wrapper.h(205) : warning C4800: 'unsigned int' : forcing value to bool 'true' or 'false' (performance warning)

The fix is to explicit exactly what is tested. The following:

    CGAL_assertion(funcs.size());

is replaced by the explicit:

    CGAL_assertion(funcs.size() != 0);
2015-09-04 11:14:56 +02:00
Laurent Rineau 253e0dddcf Fix issue #300
Update_c3t3::operator() does not return bool!
2015-09-03 12:59:05 +02:00
Andreas Fabri 1e2ff1131e assert -> CGAL_assertion 2015-08-27 16:51:55 +02:00