Commit Graph

879 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé 64f9045991 Removed useless include 2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 67d0dd4b5a Reorganized Regular_triangulation_3 dual functions 2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 084225735f Copy boost::bind return object
The lazy kernel returns temporaries and gives garbage to compare_xyz_3...
2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé a19ab8e500 Renamed Regular_triangulation base typedef (Base > Tr_Base) 2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé b18b6c1f3e Removed useless construct_point_3
Construct_weighted_circumcenter_3 already returns a Bare_point
2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 5a388d85ac Comparison result should be of type Comparison_result
(it worked anyway since Comparison_result is a Sign internally)
2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 19c1d509e0 Fixed compilation of add_temporary_points_on_far_sphere() 2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 81d3fae011 Adapted the call to spatial_sort() to handle weighted points
Downside: we copy points at each comparison, which is terrible! No noticeable
changes when profiling the construction of a triangulation.

We need this copy because of Lazy kernel: despite construct_point_3 having
const Point_3& construct_point_3_object()(const Point_3&)
the Lazy kernel can return some copies.

Other solutions that were not used:
-- Distinguish the Ouput type of Unary_function_to_property map depending on
   the type of Kernel (ugly and not safe)
-- Use Weighted_point_mappers traits (but that blood will not be on my hands)
2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé aa03fdc65e Adapted sorting algorithms based on compare_xyz to handle weighted point vectors 2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé f3c53cc53f Construct_plane() must use bare points arguments 2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 5d1b88bc7c Removed hiding-related functions from Triangulation_cell_base_3
Triangulation_cell_base_3 cannot be used anymore as a cell base of a regular
triangulation and thus there is no point keeping these functions.

People wishing to disable caching of hidden points in regular triangulations
should use the new policy, see commit b92528171c)
2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 5872c22be3 Added a template parameter to Regular_tr_cell_base on hidden points handling
Before WP<->P implicit conversion changes, one could choose to not keep hidden
points by using `Triangulation_cell_base_3` as cell base instead of
`Regular_triangulation_cell_base_3`. This is not possible anymore as point types
will conflict.

This changes introduces a new template parameter to pass a policy on whether
to keep or discard hidden points.

It is a breaking change since it is placed before the container template
parameter, but it makes more sense that way and the container type template
was not documented.
2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 320673924a Removed Weighted_point_mapper_3 and RegTraits_3 shenanigans
There is no need anymore for sneaky traits adaptors to make Triangulation_3
a compatible base of Regular_triangulation_3:
- The Point type in Triangulation_3 is obtained through TDS::Vertex::Point (see
  commit 13d5e89)
- Triangulation_3 always ensures that we are passing bare points to the kernel
  functors that require bare point arguments (see commit db5da73)

This greatly clarifies the code of Regular_triangulation_3: there is only a
single traits type, a single base type, etc.
2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé ccb2b32616 Ensured that we call kernel functions with the correct (bare) point type
Note that if the type `Point` is already `Point_3`, Construct_point_3 does not
do anything (except in the lazy kernel, but in that case, the running time is
horrible anyway).
2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 1a693a0e89 Deduce Triangulation_3's point type from the TDS
Since we have a distinc vertex_base for regular triangulations and that this
regular vertex base defines a type Point, it is redundant to get the Point
type from the Geom_traits.

This also allows to remove the Weighted_point_mapper trick, and pass more easily
custom point types.
2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 84d7f97975 Fixed Regular_traits_adaptor
The functor members cannot be references because the Regular_triangulation
might be templated by a traits class that is not simply a Kernel (that is
the case in the package Interpolation).

When that is the case, calling this->K::function_object() might be a call
to a constructor in the base traits class. Thus, the functor members
of Reg_traits_adaptors get initialized to temporaries, which is problematic
because these temporaries are at a much lower scope and thus are quickly
cleaned, leaving us with references to nothing in Reg_traits_adaptor.
2017-05-22 11:27:02 +02:00
Mael Rouxel-Labbé 729c054871 Do not provide Bare_point overloads in Regular_triangulation 2017-05-22 11:20:45 +02:00
Mael Rouxel-Labbé 5833272bd0 Fixed usage of Bare point and Weighted point across Triangulation_3 2017-05-22 11:20:45 +02:00
Mael Rouxel-Labbé e041870954 Trimmed Regular triangulation euclidean traits
-- Code added as consequence of disabling implicit conversion between points and
   weighted points implies that defining
     typedef weighted_point point;
   creates ambiguous functors.

   This typedef is nevertheless still used, in Weighted_point_mappers.

-- The traits are not supposed to define Bare_point
2017-05-22 11:20:45 +02:00
Mael Rouxel-Labbé 4f81c8c794 Added CGAL_NO_DEPRECATED_CODE macros to Regular_triangulation_euclidean_traits 2017-05-22 11:20:45 +02:00
Mael Rouxel-Labbé ea14f683d7 Cleaned #if 0 code 2017-05-22 11:20:45 +02:00
Mael Rouxel-Labbé 62b90dd86b Fixed hide_point()
Hide weighted points since they can be re-inserted afterwards
2017-05-22 11:20:45 +02:00
Mael Rouxel-Labbé 83ab007236 Fixed initialization order warning 2017-05-22 11:20:45 +02:00
Sébastien Loriot 51bc69cca3 version without partial specialization
the norms says that partial specialization should be
done in a namespace (not inside a class)
2017-05-22 11:20:45 +02:00
Jane Tournois a4ee219f99 remove hybrid operators, that use Bare points and Weighted points in an ambiguous manner
this commit only fixes the testsuite of Mesh_3
2017-05-22 11:20:45 +02:00
Andreas Fabri 81ae80c465 WIP: test_meshing_polyhedron_with_features compiles and crashes in odt 2017-05-22 11:20:45 +02:00
Andreas Fabri c6f741c379 Changes after making Weighted_point_3(const Point_3) explicit 2017-05-22 11:20:45 +02:00
Andreas Fabri 57e6083b29 Disable Point_3(const Weighted_point_3&) 2017-05-22 11:20:45 +02:00
Andreas Fabri ea5f9934e2 The Weighted_point_mapper becomes a traits class; test_regular_3.cpp passes 2017-05-22 11:20:45 +02:00
Mael Rouxel-Labbé aaed0f6737 Fixed using default templated member functions 2017-05-16 17:49:32 +02:00
Mael Rouxel-Labbé 91c35808f9 Fixed using default templated member functions 2017-05-16 17:49:32 +02:00
Mael Rouxel-Labbé f45c008721 Merge branch 'Periodic_3_Regular_triangulation_3-APelle-old' into Periodic_3_Regular_triangulation_3-APelle
Using afabri/Kernel_Weighted_point_without_conversion-GF
  @ 5c2a089e3e
2017-05-16 17:48:07 +02:00
Mael Rouxel-Labbé dbc98ac410 Merge branch 'Periodic_3_Regular_triangulation_3-APelle-old' into Periodic_3_Regular_triangulation_3-APelle
Using afabri/Kernel_Weighted_point_without_conversion-GF
  @ 5c2a089e3e
2017-05-16 17:48:07 +02:00
Andreas Fabri 40d6a3e68a Change comment to avoid warning 2017-05-16 10:17:41 +02:00
Mael Rouxel-Labbé 266775bafa Silenced depreciation warnings from Regular_triangulation_euclidean_traits_23 2017-05-16 10:17:41 +02:00
Mael Rouxel-Labbé cd2a562ffa Fixed improper guards against the inclusion of deprecated headers 2017-05-16 10:17:41 +02:00
Mael Rouxel-Labbé c353f0f49c Added CGAL_NO_DEPRECATED_CODE macros to Regular_triangulation_euclidean_traits 2017-05-16 10:17:41 +02:00
Mael Rouxel-Labbé d07976b2ac All triangulations now use Perturbation_order in tests using symbolic perturbations 2017-05-15 17:13:38 +02:00
Mael Rouxel-Labbé de3874f1ef All triangulations now use Perturbation_order in tests using symbolic perturbations 2017-05-15 17:13:38 +02:00
Mael Rouxel-Labbé 5c2a089e3e Fixed boost/core/is_same.hpp > boost/type_traits/is_same.hpp 2017-05-13 22:21:59 +02:00
Mael Rouxel-Labbé 01b2d61493 (Re)-added the unhide_point() function that is required for P3T3 2017-05-12 17:08:36 +02:00
Mael Rouxel-Labbé 23bd6c65ea (Re)-added the unhide_point() function that is required for P3T3 2017-05-12 17:08:36 +02:00
Mael Rouxel-Labbé 2f0f955a59 Merge branch 'Kernel_Weighted_point_without_conversion-GF' of github.com:afabri/cgal into Kernel_Weighted_point_without_conversion-GF 2017-05-12 13:12:47 +02:00
Jane Tournois 6ed6af00a0 really use the GT given as a parameter
When the geom_traits given as parameter of `circumcenter` and/or
`weighted_circumcenter` was deriving from the cell base GT
(first template parameter), the gt was up-casted to the
cell base GT, and the function construct_circumcenter_3_object()
(or construct_weighted_circumcenter_3_object()) not
called on the right geom traits type --> possibly missing
the actual input of the function (the robust_circumcenter_traits in Mesh_3)

we add a static assert to check at compile time that point types are the same
2017-05-12 13:07:00 +02:00
Mael Rouxel-Labbé b88bee84b2 Fixed using default templated class functions 2017-05-12 12:23:49 +02:00
Mael Rouxel-Labbé 9f865e87bb Fixed wrong template type (which induced taking references of references) 2017-05-12 12:21:39 +02:00
Mael Rouxel-Labbé bf425a46e6 Merge branch 'Periodic_3_Regular_triangulation_3-APelle-old' into Periodic_3_Regular_triangulation_3-APelle
Strongly breaks P3T3, will be fixed in the next commits
2017-05-11 17:45:15 +02:00
Mael Rouxel-Labbé 37fad1a242 Merge branch 'Periodic_3_Regular_triangulation_3-APelle-old' into Periodic_3_Regular_triangulation_3-APelle
Strongly breaks P3T3, will be fixed in the next commits
2017-05-11 17:45:15 +02:00
Mael Rouxel-Labbé 13d8a6879f Changed boost/core/enable_if.hpp to boost/utility/enable_if.hpp 2017-05-11 14:25:18 +02:00
Mael Rouxel-Labbé f2a308d9f1 Fixed regular cell bases so they actually model the concept
Also, they should not use Bare_point / Weighted_point types, which are defined
in the triangulation (much later during compilation).
2017-05-10 16:35:28 +02:00
Mael Rouxel-Labbé 46b489b2b5 Fixed Has_nested_type_Bare_point includes 2017-05-10 12:33:43 +02:00
Mael Rouxel-Labbé 97b789a741 Merge branch 'Kernel_Weighted_point_without_conversion-GF-old' into Kernel_Weighted_point_without_conversion-GF 2017-05-10 12:32:46 +02:00
Mael Rouxel-Labbé be441f8dd1 Removed an ugly static_cast 2017-05-01 16:15:40 +02:00
Mael Rouxel-Labbé 169d0be212 Misc minor changes 2017-05-01 16:15:31 +02:00
Mael Rouxel-Labbé d6576d1857 Use boost::function_property_map to apply spatial_sort to weighted points 2017-05-01 16:14:57 +02:00
Mael Rouxel-Labbé 6610dc7116 Moved facet dual computation functions from Mesh_3 to Regular_triangulation_3
... and improved them and gave them more overloads
2017-04-28 17:51:22 +02:00
Mael Rouxel-Labbé 5e9bad8e5d Avoid copies by using result_of in boost::bind() return type
Copies were previously done on purpose to go around the Lazy kernel, but this
can be done without copies (for all kernels) by using result_of.
2017-04-28 17:30:37 +02:00
Mael Rouxel-Labbé 37d7d0ab2e Removed obsolete file: Regular_traits_adaptor.h 2017-04-28 17:26:19 +02:00
Mael Rouxel-Labbé 2e78fee32e Removed useless include 2017-04-28 17:24:44 +02:00
Mael Rouxel-Labbé 31f82720e8 Reorganized Regular_triangulation_3 dual functions 2017-04-28 15:00:29 +02:00
Mael Rouxel-Labbé fe3c728a42 Copy boost::bind return object
The lazy kernel returns temporaries and gives garbage to compare_xyz_3...
2017-04-28 14:38:27 +02:00
Mael Rouxel-Labbé 88f97d2974 Renamed Regular_triangulation base typedef (Base > Tr_Base) 2017-04-27 16:31:35 +02:00
Mael Rouxel-Labbé 3681ec4460 Removed useless construct_point_3
Construct_weighted_circumcenter_3 already returns a Bare_point
2017-04-27 16:13:48 +02:00
Mael Rouxel-Labbé 4c96e75a8d Comparison result should be of type Comparison_result
(it worked anyway since Comparison_result is a Sign internally)
2017-04-27 14:23:41 +02:00
Mael Rouxel-Labbé 863a223860 Fixed compilation of add_temporary_points_on_far_sphere() 2017-04-27 14:01:58 +02:00
Mael Rouxel-Labbé 2a06660a2b Adapted the call to spatial_sort() to handle weighted points
Downside: we copy points at each comparison, which is terrible! No noticeable
changes when profiling the construction of a triangulation.

We need this copy because of Lazy kernel: despite construct_point_3 having
const Point_3& construct_point_3_object()(const Point_3&)
the Lazy kernel can return some copies.

Other solutions that were not used:
-- Distinguish the Ouput type of Unary_function_to_property map depending on
   the type of Kernel (ugly and not safe)
-- Use Weighted_point_mappers traits (but that blood will not be on my hands)
2017-04-27 13:56:01 +02:00
Mael Rouxel-Labbé 9651371c6f Adapted sorting algorithms based on compare_xyz to handle weighted point vectors 2017-04-27 13:52:20 +02:00
Mael Rouxel-Labbé 7108383498 Construct_plane() must use bare points arguments 2017-04-27 12:03:47 +02:00
Mael Rouxel-Labbé d9666bd342 Removed hiding-related functions from Triangulation_cell_base_3
Triangulation_cell_base_3 cannot be used anymore as a cell base of a regular
triangulation and thus there is no point keeping these functions.

People wishing to disable caching of hidden points in regular triangulations
should use the new policy, see commit b92528171c)
2017-04-27 11:50:54 +02:00
Mael Rouxel-Labbé b92528171c Added a template parameter to Regular_tr_cell_base on hidden points handling
Before WP<->P implicit conversion changes, one could choose to not keep hidden
points by using `Triangulation_cell_base_3` as cell base instead of
`Regular_triangulation_cell_base_3`. This is not possible anymore as point types
will conflict.

This changes introduces a new template parameter to pass a policy on whether
to keep or discard hidden points.

It is a breaking change since it is placed before the container template
parameter, but it makes more sense that way and the container type template
was not documented.
2017-04-27 11:42:34 +02:00
Mael Rouxel-Labbé 450c78e814 Removed Weighted_point_mapper_3 and RegTraits_3 shenanigans
There is no need anymore for sneaky traits adaptors to make Triangulation_3
a compatible base of Regular_triangulation_3:
- The Point type in Triangulation_3 is obtained through TDS::Vertex::Point (see
  commit 13d5e89)
- Triangulation_3 always ensures that we are passing bare points to the kernel
  functors that require bare point arguments (see commit db5da73)

This greatly clarifies the code of Regular_triangulation_3: there is only a
single traits type, a single base type, etc.
2017-04-27 08:44:32 +02:00
Mael Rouxel-Labbé db5da73483 Ensured that we call kernel functions with the correct (bare) point type
Note that if the type `Point` is already `Point_3`, Construct_point_3 does not
do anything (except in the lazy kernel, but in that case, the running time is
horrible anyway).
2017-04-27 00:25:12 +02:00
Mael Rouxel-Labbé 13d5e895ac Deduce Triangulation_3's point type from the TDS
Since we have a distinc vertex_base for regular triangulations and that this
regular vertex base defines a type Point, it is redundant to get the Point
type from the Geom_traits.

This also allows to remove the Weighted_point_mapper trick, and pass more easily
custom point types.
2017-04-27 00:21:47 +02:00
Mael Rouxel-Labbé ac63b66286 Fixed Regular_traits_adaptor
The functor members cannot be references because the Regular_triangulation
might be templated by a traits class that is not simply a Kernel (that is
the case in the package Interpolation).

When that is the case, calling this->K::function_object() might be a call
to a constructor in the base traits class. Thus, the functor members
of Reg_traits_adaptors get initialized to temporaries, which is problematic
because these temporaries are at a much lower scope and thus are quickly
cleaned, leaving us with references to nothing in Reg_traits_adaptor.
2017-04-18 15:16:43 +02:00
Laurent Rineau dce8bb77ba Merge pull request #2053 from cjamin/Mesh_3-code_improvements-cjamin
Mesh_3: code improvements + bug fix
2017-04-14 18:32:05 +02:00
Mael Rouxel-Labbé f1c1cd26c4 Do not provide Bare_point overloads in Regular_triangulation 2017-04-14 16:49:50 +02:00
Mael Rouxel-Labbé 5856c7de2b Fixed usage of Bare point and Weighted point across Triangulation_3 2017-04-14 16:48:31 +02:00
Mael Rouxel-Labbé 3c9063cd88 Trimmed Regular triangulation euclidean traits
-- Code added as consequence of disabling implicit conversion between points and
   weighted points implies that defining
     typedef weighted_point point;
   creates ambiguous functors.

   This typedef is nevertheless still used, in Weighted_point_mappers.

-- The traits are not supposed to define Bare_point
2017-04-14 15:39:30 +02:00
Mael Rouxel-Labbé 863584e863 Added CGAL_NO_DEPRECATED_CODE macros to Regular_triangulation_euclidean_traits 2017-04-14 10:59:42 +02:00
Mael Rouxel-Labbé 2b8684c874 Cleaned #if 0 code 2017-04-12 15:06:03 +02:00
Mael Rouxel-Labbé 2c79d6e939 Fixed hide_point()
Hide weighted points since they can be re-inserted afterwards
2017-04-11 17:04:34 +02:00
Mael Rouxel-Labbé 77c83642f2 Fixed initialization order warning 2017-04-11 17:04:03 +02:00
Mael Rouxel-Labbé 2ee5b13e6f Merge branch 'Kernel_Weighted_point_without_conversion-GF-old' into Kernel_Weighted_point_without_conversion-GF
Using Kernel-Fix_weighted_point-GF @ 8703f5c122
2017-04-11 17:01:25 +02:00
Laurent Rineau 93311493c4 Merge pull request #1998 from afabri/CGAL-test_license_check-GF
CGAL: Test the license check mechanism
2017-04-07 12:06:23 +02:00
Andreas Fabri 8cbbe0e165 Remove dependencies of Triangulation_3 on Triangulation_2 2017-04-06 11:08:37 +02:00
Mael Rouxel-Labbé 9a41173936 Added documentation for Robust_weighted_circumcenter_filtered_traits_3 2017-03-28 13:32:12 +02:00
Mael Rouxel-Labbé b966dea483 Added documentation for Robust_weighted_circumcenter_filtered_traits_3 2017-03-28 13:32:12 +02:00
Clement Jamin 6ea82bbe2a Unnecessary double "if" blocks 2017-03-09 17:46:46 +01:00
Sébastien Loriot ac0dfe3465 version without partial specialization
the norms says that partial specialization should be
done in a namespace (not inside a class)
2017-03-06 12:10:24 +01:00
Jane Tournois 30fe153651 remove hybrid operators, that use Bare points and Weighted points in an ambiguous manner
this commit only fixes the testsuite of Mesh_3
2017-03-03 12:14:30 +01:00
Andreas Fabri 741838b9c4 WIP: test_meshing_polyhedron_with_features compiles and crashes in odt 2017-03-02 15:51:41 +01:00
Andreas Fabri 30b7f131d7 Changes after making Weighted_point_3(const Point_3) explicit 2017-02-17 16:38:39 +01:00
Laurent Rineau c55e391f97 WIP: works with one thread 2017-02-17 16:37:11 +01:00
Andreas Fabri 4922f9e86d Disable Point_3(const Weighted_point_3&) 2017-02-15 14:33:31 +01:00
Mael Rouxel-Labbé 45241b92a2 Moved Robust weighted filtered circumcenter traits out of Mesh_3
Also, these traits do not derive from Regular_euclidean_traits anymore.
2017-02-13 18:13:19 +01:00
Mael Rouxel-Labbé f63f0b801e Moved Robust weighted filtered circumcenter traits out of Mesh_3
Also, these traits do not derive from Regular_euclidean_traits anymore.
2017-02-13 18:13:19 +01:00
Andreas Fabri 2fab595c19 The Weighted_point_mapper becomes a traits class; test_regular_3.cpp passes 2017-02-08 16:24:14 +01:00
Mael Rouxel-Labbé a77272be94 Merge branch 'Periodic_3_Regular_triangulation_3-APelle-old' into Periodic_3_Regular_triangulation_3-APelle 2017-02-03 16:52:51 +01:00
Mael Rouxel-Labbé e9398450ab Merge branch 'Periodic_3_Regular_triangulation_3-APelle-old' into Periodic_3_Regular_triangulation_3-APelle 2017-02-03 16:52:51 +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 fe5e925367 Merge pull request #1701 from afabri/Convex_hull_3-FaceGraph-GF
Convex_hull_3: Switch to FaceGraph
2016-12-30 15:14:34 +01:00
Laurent Rineau bbf430b0b1 Merge pull request #585 from afabri/Kernel-Weighted_point-GF
Introduce Kernel::Weighted_point_3 together with functors
2016-12-20 19:52:02 +01:00
Andreas Fabri 9ee11501ac Changes after the review by Sebastien 2016-11-30 10:03:00 +01:00
Guillaume Damiand 12328929b2 Update LCC tests: now they are done both for CMap and GMap. 2016-11-29 11:43:38 +01:00
Guillaume Damiand 2ab268965f LCC for CMap and GMap; incremental builder; save and load; test. 2016-11-29 11:43:36 +01:00
Andreas Fabri 38f799e82b star -> link 2016-11-26 10:49:02 +01:00
Andreas Fabri 683490b2aa star -> link 2016-11-26 10:46:54 +01:00
Andreas Fabri e5e0cdd5f9 fix a typedef 2016-11-22 17:48:53 +01:00
Andreas Fabri 2a27d4ff38 Fix the Vertex_remover 2016-11-22 16:03:13 +01:00
Andreas Fabri e26e60dd6c Add Default to Convex_hull_graph_traits_3; BGLize some code 2016-11-22 12:27:18 +01:00
Andreas Fabri af1cc4058a fixes 2016-11-21 18:39:05 +01:00
Andreas Fabri 4d4db0cd70 Move star_to_face_graph() to Triangulation_3 2016-11-21 17:51:41 +01:00
Andreas Fabri b978fa8fdd Fix the typedef for the Bare_point 2016-11-21 15:49:43 +01:00
Andreas Fabri d35c6c913d Use Weighted_point_mapper_3 2016-11-21 15:33:27 +01:00
Andreas Fabri 4ab59919e6 Use Regular_triangulation_vertex_base_3 2016-11-20 19:06:08 +01:00
Andreas Fabri 310845f01e Add class Regular_triangulation_vertex_base_3 2016-11-19 11:07:52 +01:00
Andreas Fabri 64832a0d1d Change template parameter: K -> K_ to help VC++ 2016-11-19 08:22:30 +01:00
Laurent Rineau 2835e361c8 Fix the constructors of RT euclidian traits class
@janetournois @afabri

That commit will fix both runtime errors in Interpolation and
compilation errors in KDS:

  - in Interpolation, the traits class carries a normal vector: it needs
  to be passed to the RT traits class as well,

  - Same in KDS: the compilation error was saying that the constructor
    of RT_euclidian_traits_3 must initialize it base class.
2016-11-18 17:55:05 +01:00
Laurent Rineau 57f0b33eb6 Fix Alpha_shapes_3
Alpha_shapes_3 needs to know a lot about its template parameter `Dt`. To
simplify the code, I have chosen to make the typedef `Tr_Base` public in
3D Delaunay and Regular triangulations.
2016-11-18 17:36:50 +01:00
Jane Tournois 3b5e069325 add constructors to Regular_triangulation_euclidean_traits_3,
and fix constructors from Regular_triangulation_3

Revert "introduce Has_nested_type_Bare_point to keep backward compatible"

This reverts part of the commit 98b43b1a49fb2dfb3baee0a532bf5d097f2f4ebd.
2016-11-03 14:57:10 +01:00
Jane Tournois 0f569a8fd6 introduce Has_nested_type_Bare_point to keep backward compatible
it is needed when Regular_triangulation_euclidean_traits is used the first
template parameter for Regular_triangulation (both 2d and 3d)
2016-11-03 14:57:10 +01:00
Laurent Rineau 3353d4d64d Kernel now refines RegularTriangulationTraits_3
ie all CGAL kernels are now models of `RegularTriangulationTraits_3`.
2016-11-03 14:55:39 +01:00
Jane Tournois 306323d45c make doc and doc consistent
- add "model of Concept" as much as possible in the modified classes/concepts
- fix some links
- update package description of Kernel_23
2016-11-03 14:55:39 +01:00
Jane Tournois 6af2db1b91 Use Power_side_of_bounded_power_sphere instead of Side_of_bounded_orthogonal_sphere
both functors made the same computation, up the sign of the result.

The return type now is CGAL::Bounded_side, which makes things easier
 to understand and use
2016-11-03 14:55:39 +01:00
Andreas Fabri dbb2cc3598 Sign -> Bounded_side; typo in code 2016-11-03 14:53:54 +01:00
Andreas Fabri ad9d2c369c Rename tests following Olivier's recommendations 2016-11-03 14:53:54 +01:00
Jane Tournois 4bcd272a99 compute dual only after infinity test has been performed 2016-11-03 13:10:27 +01:00
Andreas Fabri ea50fb811d Cleanup. The 2D and 3D triangulation testsuite pass 2016-11-03 13:07:50 +01:00
Andreas Fabri 9e94ee6178 Change the Power_test 2016-11-03 13:07:17 +01:00
Andreas Fabri 1375cd5c0a Rename Compute_critical_squared_radius_3 to Compute_power_distance_to_power_sphere_3 2016-11-03 13:07:17 +01:00
Andreas Fabri 34eb29cac5 Documentation 2016-11-03 13:07:17 +01:00
Andreas Fabri 871471b2d8 Remove Weighted_point_triangulation_traits_3 2016-11-03 13:07:17 +01:00
Andreas Fabri ea6e48e1e4 Don't use the internal traits adapter 2016-11-03 13:07:17 +01:00
Andreas Fabri 5edd015669 Use Weighted_point_triangulation_traits_3 2016-11-03 13:06:42 +01:00
Andreas Fabri 10d9d28d1b Add Weighted_point_triangulation_traits_3 2016-11-03 13:06:02 +01:00
Andreas Fabri 2d15b06d5e Remove #ifdef 0 from debugging 2016-11-03 13:06:02 +01:00
Andreas Fabri 42435c2d21 Simplify the use of static filters for Regular triangulations 2016-11-03 13:06:02 +01:00
Andreas Fabri d0a7c9574c Simplify the use of static filters for Regular triangulations 2016-11-03 13:06:02 +01:00
Andreas Fabri 6a8f77c5ff Added CGAL::Weighted_point_3<K> and the predicates and constructions of the Regular Traits to the kernel
- The Regular 3 testsuite passes
- only 3D
- not documented
2016-11-03 13:04:43 +01:00
Guillaume Damiand 2fbce8a8db Remove spaces. 2016-10-06 08:26:16 -04:00
Guillaume Damiand 7620635cfe * Bugfix in correct_invalid_attributes in LCC
* Remove deprecated code in LCC (that should be removed for CGAL 4.9)
2016-10-06 08:19:04 -04:00
Laurent Rineau 3fac1b31f0 Fix typos (and compilation errors!) 2016-10-03 12:12:46 +02:00
Andreas Fabri cf8c1a6cdf Dispatch import functions to Polyhedron, T2, T3 2016-09-30 15:23:15 +02:00
Andreas Fabri 91c6426ae2 Move info_check from T3 to T2 2016-09-30 15:22:28 +02:00
Andreas Fabri 21ad968457 Fix package Triangulation_3: Add #include 2016-09-30 15:22:27 +02:00
Clement Jamin fa6ecf39be Merge branch 'Triangulation-add_regular_tri-cjamin_mglisse-old' into Triangulation-add_regular_tri-cjamin_mglisse 2016-09-09 12:55:43 +02:00
Sébastien Loriot 7f3772a50b replace the usage of raw pointer as property map
It was deprecated in boost 1.55
http://www.boost.org/users/history/version_1_55_0.html
2016-07-13 13:53:00 +02:00
Clement Jamin 9487c71ad1 Merge branch 'Triangulation-add_regular_tri-cjamin_mglisse-old' into Triangulation-add_regular_tri-cjamin_mglisse 2016-05-18 19:41:22 +02:00
Laurent Rineau 1f5fb012ba Merge pull request #1015 from afabri/Mesh_3-accelerations-GF
Accelerate vertex removal in a 3D triangulation and saving a mesh
2016-04-22 15:24:06 +02:00
Andreas Fabri abd9bfb125 std::map -> boost::unordered_map 2016-04-15 20:54:51 +02:00
Laurent Rineau 535c5bb5b2 Speed-up Triangulation_3::read_cells...
... by a factor 5 for big triangulations! The old code was using:

    std::map<size_t, Vertex_handle> V;
    std::map<size_t, Cell_handle> C;

whereas the indices are contiguous: from 0 to n. `std::vector` is a lot
better for that use case!
2016-04-06 16:03:55 +02:00
Andreas Fabri 64644c8c49 Init the doubles to avoid a warning 2016-03-02 16:31:52 +01:00
Sébastien Loriot 5e57abdc50 Merge remote-tracking branch 'cgal/releases/CGAL-4.7-branch' into HEAD 2016-02-18 17:01:59 +01:00
Andreas Fabri 4c477c853c Accelerete 3D version of inexact_locate as we do it for 2D 2016-02-15 10:57:59 +01:00
Aymeric PELLE 760c852430 Fix Periodic_3_regular_triangulation_filtered_traits_3.
We need RT::Exact_traits and RT::Filtering_traits.
2016-01-17 20:11:37 +01:00
Aymeric PELLE 194dfbf38f Fix P3RT3::Self : the typedef must provide K to P3RTT3, not RT<K>. 2016-01-17 20:03:30 +01:00
Aymeric PELLE 0e6291687e Periodic_3_regular_triangulation_traits_3 inherites from Regular_triangulation_euclidean_traits_3<K>. 2016-01-17 20:03:30 +01:00
Aymeric PELLE bad32a2446 Add P3RT3::insert(beginIt, endIt). 2016-01-17 20:03:20 +01:00
Clement Jamin 20dd524de8 Merge branch 'Triangulation-add_regular_tri-cjamin_mglisse-old' into Triangulation-add_regular_tri-cjamin_mglisse 2015-12-08 17:16:16 +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
Sébastien Loriot 4318feeca0 remove deprecated class since CGAL 3.6 2015-11-24 01:15:21 +01:00
Clement Jamin 003b435a46 Merge branch 'Triangulation-add_regular_tri-cjamin_mglisse-old' into Triangulation-add_regular_tri-cjamin_mglisse 2015-11-20 11:53:44 +01:00
Clement Jamin b6c1581456 Fix type 2015-10-28 11:06:46 +01:00
Clement Jamin ebf4192456 Add missing copy constructor + improve code/formatting 2015-10-27 12:25:14 +01:00
Clement Jamin 6fc4dd7dd3 Enable parallel insertion of points with info
There was a bug preventing the parallelism to be activated when
using points with info
2015-10-27 12:17:58 +01:00
Sebastien Loriot 37ff880fb8 Merge pull request #58 from dfunke/ParallelInsertionWithInfo
Enable parallel insertion of points with info
2015-10-22 09:48:56 +02:00
Clement Jamin 8081234930 Merge branch 'Triangulation-add_regular_tri-cjamin_mglisse-old' into Triangulation-add_regular_tri-cjamin_mglisse 2015-10-16 10:59:18 +02:00
Clement Jamin bcb523ba3e Merge branch 'Triangulation-add_regular_tri-cjamin_mglisse-old' into Triangulation-add_regular_tri-cjamin_mglisse 2015-09-09 14:21:30 +02:00
Andreas Fabri 91543fd382 move header files to TDS_2 and TDS_3 2015-08-23 15:36:12 +02:00
Sébastien Loriot 9f14949e69 add missing protecting guards 2015-07-29 08:44:14 +02:00
Sébastien Loriot 62906461f2 fix out of array bound warning 2015-07-21 09:12:12 +02:00
Daniel Funke b0eae3bebe remove explicit copy constructor 2015-06-26 17:40:57 +02:00
Daniel Funke 51eb954081 correct profiler branch name 2015-04-22 13:11:39 +02:00
Daniel Funke 1c78d67a0f correct comment 2015-04-22 13:11:21 +02:00
Daniel Funke 77e2f38d6c move addition and deletion of tempoary points on far sphere into own methods 2015-04-22 13:10:15 +02:00
Daniel Funke 8d29fc6e6e Enable parallel insertion of points with info 2015-04-16 17:40:05 +02:00
Clement Jamin 5f8ca65abf Merge branch 'Triangulation-add_regular_tri-cjamin_mglisse-old' into Triangulation-add_regular_tri-cjamin_mglisse 2015-03-25 13:48:38 +01:00
Laurent Rineau 434766c22b Merge branch 'releases/CGAL-4.5-branch'
Approved by the Release Manager.
2015-01-30 11:30:49 +01:00
Laurent Rineau 72e0a3e677 Fix warnings about signed/unsigned
The code involved is about TBB.
2015-01-21 12:59:07 +01:00
Clement Jamin 2f4bb69e0a Merge branch 'Triangulation-add_regular_tri-cjamin_mglisse-old' into Triangulation-add_regular_tri-cjamin_mglisse 2014-12-18 10:59:01 +01:00
Clement Jamin c6de2a50b2 Merge branch 'Triangulation-higher_dimensions-odevil_shornus-old' into Triangulation-higher_dimensions-odevil_shornus 2014-11-20 19:19:23 +01:00
Jane Tournois 545fe18310 add missing typedef for compilation on Linux 2014-10-03 17:11:08 +02:00
Jane Tournois 9e921b1d48 add typedef requested as documented 2014-10-02 11:28:43 +02:00
Jane Tournois d874698109 fix implementation of Delaunay_triangulation_cell_base_3 2014-10-02 10:49:16 +02:00
Clement Jamin 03253edf19 Merge branch 'Triangulation-add_regular_tri-cjamin_mglisse-old' into Triangulation-add_regular_tri-cjamin_mglisse 2014-09-09 14:35:38 +02:00
Clement Jamin 8f259e5dea Merge branch 'Triangulation-higher_dimensions-odevil_shornus-old' into Triangulation-higher_dimensions-odevil_shornus 2014-09-09 11:20:33 +02:00
Laurent Rineau 3deb8e7910 Merge branch 'Mesh_3-compare_index-GF-old' into Mesh_3-compare_index-GF
Create an integration branch for 'Mesh_3-compare_index-GF': a new branch
created from 'master', where I merged the previous version of
'Mesh_3-compare_index-GF'.

There was a conflict with two features recently merged into 'master' for
CGAL-4.5:

- the move of two files from include/CGAL/Mesh_3/ to include/CGAL/. See
  the small feature:
    http://cgal.org/wiki/Features/Small_Features/New_constructor_in_Label_mesh_domain_3_and_new_function_wrapper

- parallelism for Triangulation_3 and Mesh_3:
    http://cgal.org/wiki/Features/Parallel_Mesh_3

Conflicts:
	Combinatorial_map/include/CGAL/Cell_attribute.h
	Mesh_3/include/CGAL/Implicit_mesh_domain_3.h
	Mesh_3/include/CGAL/Labeled_image_mesh_domain_3.h
	Mesh_3/include/CGAL/Mesh_3/Sliver_perturber.h
	Mesh_3/include/CGAL/Polyhedral_mesh_domain_3.h
	Mesh_3/test/Mesh_3/test_meshing_3D_image.cpp
	Mesh_3/test/Mesh_3/test_meshing_polyhedron.cpp
	Mesh_3/test/Mesh_3/test_meshing_polyhedron_with_features.cpp
	Polyhedron/demo/Polyhedron/Polyhedron_type.h
	STL_Extension/include/CGAL/Compact_container.h
	STL_Extension/test/STL_Extension/test_Compact_container.cpp

I also modified the following files during the conflict resolution:

	Linear_cell_complex/include/CGAL/Cell_attribute_with_point.h
	Mesh_3/include/CGAL/Labeled_mesh_domain_3.h
	Mesh_3/include/CGAL/Polyhedral_mesh_domain_with_features_3.h
2014-07-18 15:47:14 +02:00
Clement Jamin fbf824c711 Merge branch 'Mesh_3-parallel-cjamin'
This branch introduces parallel algorithms in Triangulation_3 and Mesh_3,
as well as a Concurrent_compact_container. The corresponding features are:
https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Parallel_triangulation_3
https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Parallel_Mesh_3

Tested in CGAL-4.5-Ic-98.
Approved by the Release Manager.
2014-07-17 19:08:24 +02:00
Clement Jamin aa1aa597bb Restore commit a09ed468 with a bug fix
"Thread-safe version of incident_cells and incident_facets"
2014-07-15 20:13:30 +02:00
Andreas Fabri 13bb5e38aa remove unused parameters 2014-07-09 16:02:45 +02:00
Mael Rouxel-Labbé d0b222bfac Fix a bug in finite_adjacent_vertices when dimension()==0
When tr.dimension()==0, tr.finite_adjacent_vertices(...)
returned infinite things.
2014-07-08 15:44:26 +02:00
Clement Jamin 078e89f55f Add the possibility to remove the far points
The far points are added by the parallel version to reduce the contention
on the infinite vertex
2014-07-08 15:37:59 +02:00
Clement Jamin da4cf8fc1d Fix gcc warnings (reorder + unused variables & typedef...) 2014-07-03 15:54:39 +02:00
Clement Jamin 0a4267b7ce Temporarily revert "Thread-safe version of incident_cells and incident_facets" 2014-07-03 15:41:02 +02:00
Clement Jamin 65e8d40e33 Fix warning 2014-07-03 09:26:25 +02:00
Clement Jamin 982f140911 Use tbb::task_scheduler_init::default_num_threads...
... instead of boost:🧵:hardware_concurrency
2014-07-02 15:10:34 +02:00
Clement Jamin 55ff0a9404 Add a warning in comments 2014-07-02 10:49:44 +02:00
Clement Jamin 5a6623c3fa Move typedef since Vector_3 is not available in all kernels
TODO: find a better fix later
2014-07-01 17:00:05 +02:00
Clement Jamin e3abf7fc40 Merge branch 'Mesh_3-parallel-cjamin-old' into Mesh_3-parallel-cjamin 2014-07-01 10:38:14 +02:00
Clement Jamin 7af8f8b768 Fix compilation with GCC 2014-06-30 19:58:44 +02:00
Clement Jamin 82c89aa58e Fix template params 2014-06-30 15:52:24 +02:00
Clement Jamin a09ed46810 Thread-safe version of incident_cells and incident_facets 2014-06-23 10:45:26 +02:00
Clement Jamin 48a8abb278 Use Face_circulator for incident_cells_2 2014-06-23 09:20:57 +02:00
Clement Jamin 9f5927af61 Move function from C3T3_helpers to TDS
Move C3T3_helpers::get_incident_cells_without_using_tds_data to TDS::incident_cells_threadsafe
2014-06-23 08:21:09 +02:00
Sébastien Loriot 0230e979e2 Merge branch 'CGAL-use_leda-GF-OLD' into CGAL-use_leda-GF
Conflicts:
	Arrangement_on_surface_2/test/Arrangement_on_surface_2/construction_test_suite_generator.cpp
	Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_construction.cpp
	Documentation/doc/Installation.txt
	Kernel_23/include/CGAL/Exact_predicates_exact_constructions_kernel.h
2014-06-18 22:50:06 +02:00
Clement Jamin 30e47d01a1 Added the ability to export the surface 2014-06-17 14:54:10 +02:00
Clement Jamin eebad0e1a4 Add applications to help comparison between T2/T3 and Td 2014-06-16 19:35:04 +02:00
Aymeric PELLE c496b52d0c The documentation of the member function swap is added.
rhs is renamed other in this member function.
2014-06-04 14:38:34 +02:00
Aymeric PELLE 250c079439 Implement the copy-and-swap idiom for the assigment operator. 2014-06-04 14:04:52 +02:00
Aymeric PELLE 144545cbf2 Fix Regular_triangulation_cell_base_with_weighted_circumcenter_3.
The default value for the template parameter 'Cell base' is replaced by
Regular_triangulation_cell_base_3. (The doc is updated.)
The operator= is fixed.
A test file is added for this class.

Trivial bug-fix for master
2014-06-03 19:34:29 +02:00
Clement Jamin 7145f7db0b Replaced some C++11 lambda functions by functors +change mutex (static=>member) 2014-06-03 18:18:12 +02:00
Clement Jamin 05efa677a1 Merge branch 'Triangulation-higher_dimensions-odevil_shornus-old' into Triangulation-higher_dimensions-odevil_shornus
Conflicts:
	NewKernel_d/include/CGAL/NewKernel_d/Cartesian_LA_functors.h
	NewKernel_d/test/NewKernel_d/Epick_d.cpp
2014-05-28 14:53:26 +02:00
Clement Jamin c9c8335811 More code clean-up 2014-05-27 13:46:34 +02:00
Clement Jamin ce17a717c7 Restore some profiling code and remove some 2014-05-27 13:33:33 +02:00
Clement Jamin 2f78d27bd3 Code clean-up 2014-05-27 13:21:16 +02:00
Clement Jamin dfe800bc40 Clean-up debug code (global lock) 2014-05-27 12:16:29 +02:00
Sébastien Loriot 3fa09693a3 Merge branch 'Mesh_3-compare_index-GF-old' into Mesh_3-compare_index-GF
Conflicts:
	Mesh_3/include/CGAL/Mesh_3/Detect_features_in_polyhedra.h
	Mesh_3/include/CGAL/Mesh_domain_with_polyline_features_3.h
	Mesh_3/include/CGAL/Mesh_polyhedron_3.h
	Mesh_3/test/Mesh_3/test_meshing_polylines_only.cpp
	STL_Extension/include/CGAL/Compact_container.h
	STL_Extension/test/STL_Extension/test_Compact_container.cpp
2014-05-21 18:24:17 +02:00
Clement Jamin f3c00442fd Merge branch 'Mesh_3-parallel-cjamin-old' into Mesh_3-parallel-cjamin 2014-05-14 19:05:40 +02:00
Clement Jamin db3a642de4 Missing include 2014-05-14 17:35:16 +02:00
Andreas Fabri 7e00af50f5 Merge branch 'Triangulation_3-faster_incident_edges-GF'
Approved by the release manager
2014-05-14 17:03:41 +02:00
Jane Tournois e97506adb7 Merge branch 'Triangulation_3-regular_cell_base_with_circumcenter-GF'
Resolve conflicts in Mesh_3/include/CGAL/Mesh_3/config.h

This branch implements the small feature described here :
https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/circumcenter%28%29_in_RT3_cell_base

It makes consistent implementations of dual(cell) in RT3 and DT3 :
they both return cell->circumcenter(gt) now

Approved by the release manager
2014-05-13 14:52:13 +02:00
Jane Tournois 8bc6e6136d fix a warning from clang. Actually highlighted a real error : gt was missing 2014-05-12 14:55:11 +02:00
Andreas Fabri 3d0e6f2a4f boost::unorerdered_set::reserve() was only introduced with Boost 1.50 2014-05-09 11:08:38 +02:00
Andreas Fabri 1ff9694206 int -> std::size_t 2014-05-08 13:41:33 +02:00
Andreas Fabri 3cc64eb19e Call unordered_set::reserve() 2014-05-07 11:51:25 +02:00
Andreas Fabri 2ed094d23c cleanup 2014-05-07 11:14:36 +02:00
Andreas Fabri d1a6046fcd Vertex_extractor gets a partial specialisation for Vertex::Has_visited 2014-05-07 11:00:05 +02:00
Andreas Fabri 09876e23fa Add bool visited to the Vertex in order to avoid a map 2014-04-29 14:04:27 +02:00
Andreas Fabri 3812e53d64 Add flat_set 2014-04-29 06:47:32 +02:00
Andreas Fabri d74653ece0 Replace std::map by boost::unordered_map in TDS_3::incident_edges 2014-04-28 16:18:13 +02:00
Clement Jamin e07baefb17 Change the way we compute the exact circumcenter when needed
In some rare cases, we need to switch to exact computation for the circumcenter.
Some code for this computation is now moved from RT3 to Refine_facets.
2014-04-15 18:54:12 +02:00
Andreas Fabri a45ed40f5d Do not use the call stack for a recursive function as it may overflow 2014-03-25 16:01:27 +01:00
Andreas Fabri 18e85a1cea Switch on a workaround using a CGAL_CFG ... 2014-03-24 17:52:31 +01:00
Andreas Fabri 24f78ce6de Hack for the new problem with 'using' for VC12
We have to find out where the real problem is.
2014-03-20 16:47:25 +01:00
Clement Jamin 89d2d6a612 Merge branch 'Triangulation-higher_dimensions-odevil_shornus-old' into Triangulation-higher_dimensions-odevil_shornus 2014-03-19 13:00:57 +01:00
Clement Jamin 157cd0465f Merge branch 'Mesh_3-parallel-cjamin-old' into Mesh_3-parallel-cjamin
Conflicts:
	Mesh_3/demo/Mesh_3/Mesh_3_optimization_plugin_cgal_code.cpp
	Mesh_3/doc/Mesh_3/Concepts/MeshCellBase_3.h
	Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h
	Mesh_3/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h
	Mesh_3/include/CGAL/Mesh_3/Mesh_global_optimizer.h
	Mesh_3/include/CGAL/Mesh_3/Sliver_perturber.h
	Mesh_3/include/CGAL/Mesh_3/Slivers_exuder.h
	Mesh_3/include/CGAL/Mesh_3/Triangulation_helpers.h
	Mesh_3/include/CGAL/Mesh_3/config.h
	Mesh_3/include/CGAL/Mesh_3/vertex_perturbation.h
	Mesh_3/include/CGAL/Polyhedral_mesh_domain_3.h
	Mesh_3/include/CGAL/exude_mesh_3.h
	Mesh_3/test/Mesh_3/test_meshing_utilities.h
	Triangulation_3/include/CGAL/Triangulation_cell_base_with_circumcenter_3.h
2014-03-10 17:01:03 +01:00
Jane Tournois bf03d6964d remove useless diff with integration 2014-02-24 14:37:20 +01:00
Jane Tournois 0740b3652f add class Has_timestamp not to modify the API of Compact_container
- use the Has_timestamp operator in Compact_container
- add partial specialization to classes that need the time stamp (i.e.
Mesh_vertex_base, Compact_mesh_cell_base_3 and Mesh_cell_base_3)
- remove "ts" from classes where they were actually needed for compilation
purpose only (i.e. Kd_tree_node and Triangulation_ds_cell_base_3)
- rename "ts" to time_stamp_
2014-02-20 15:53:36 +01:00
Jane Tournois 6db28ed43d move ts from Tds to Compact_container
Tds now is back to its original version (not different from master)
2014-02-14 17:15:33 +01:00
Jane Tournois ffc3bdfc2f there is no need to compare "ts". Comparing Vertex_handle's is enough 2014-02-14 15:22:54 +01:00
Jane Tournois 8d7ec0ef19 use time stamps in make_canonical(vertex_triple) 2014-02-14 12:55:29 +01:00
Andreas Fabri 83546c53b1 Add a time stamp in vertices and cells of triangulations and polyhedra
and use this for operator< of handles in order to make mesh generation
 deterministic
2014-02-13 19:46:34 +01:00
Jane Tournois 75771bacb3 rename Regular_triangulation_cell_base_with_circumcenter_3
to Regular_triangulation_cell_base_with_weighted_circumcenter_3
2014-02-06 15:50:38 +01:00
Jane Tournois 88666391da introduce weighted_circumcenter() for RegularTriangulationCellBase_3
weighted_circumcenter() replaces circumcenter() in the regular framework,
which is not a member of TriangulationCellBase_3 anymore.

Triangulation_cell_base_with_circumcenter_3 is deprecated and replaced by:
Delaunay_triangulation_cell_base_with_circumcenter_3
and
Regular_triangulation_cell_base_with_circumcenter_3.

Implement the changes in documentation, Triangulation_3 code and Mesh_3 code.
2014-01-16 16:55:19 +01:00
Jane Tournois 7b55c30ba5 fix the use of Triangulation_cell_base_with_circumcenter
Triangulation_cell_base_with_circumcenter should not be responsible for
computing the circumcenter value. It is only responsible for its caching.
The Cell_base used as second template parameter should make the construction,
in the circumcenter() function.

Also fix the order of derivation in Mesh_cell_base_3
2014-01-10 14:31:02 +01:00
Jane Tournois bf9e964f0e remove macro CGAL_REGULAR_TRIANGULATION_3_USE_CIRCUMCENTER_CACHE
has been checked and is always activated
2014-01-09 12:05:50 +01:00
Jane Tournois 88eddc7e8b Merge branch 'Triangulation_3-regular_cell_base_with_circumcenter-GF-old' into Triangulation_3-regular_cell_base_with_circumcenter-GF 2014-01-03 18:03:01 +01:00
Olivier Devillers d8197fb718 merge master and Triangulation 2013-11-29 13:40:14 +01:00
Clement Jamin 6b65ad71da Changes in the "lock data structure" concept and models
The concept is now much more generic (SurjectiveLockDataStructure).
The names have been changed accordingly.
2013-10-16 12:17:56 +02:00
Clement Jamin 5101c3d2e7 Added my name in a few places + implementation history 2013-10-15 11:14:58 +02:00
Clement Jamin 29525dfcb7 Back-quotes for could_lock_zone and true + minor fixes + replace 0 by NULL 2013-10-15 10:27:35 +02:00
Laurent Rineau 240385d011 Add expensive assertions to check the circumcenter cache 2013-10-14 17:12:54 +02:00
Clement Jamin 88ed4cc924 Removed strategies in T3 benchmark and Dummy TDS 2013-10-01 17:27:21 +02:00
Clement Jamin 2706cbfeff Compact_container: erase counter strategy is now automatically deduced from T.
If the T::increment_erase_counter() function exists, then the erase counter
value will be updated by the Compact_container.
2013-09-30 18:25:41 +02:00
Clement Jamin 2944261214 Merge branch 'Mesh_3-parallel-cjamin' of ssh://scm.cgal.org/var/git/cgal into Mesh_3-parallel-cjamin 2013-09-25 10:50:46 +01:00
Clement Jamin 41929ed520 Merge branch 'Mesh_3-parallel-cjamin-old' into Mesh_3-parallel-cjamin
Conflicts:
	Mesh_3/doc/Mesh_3/Concepts/MeshCellBase_3.h
	Mesh_3/dont_submit
	Triangulation_3/doc/TDS_3/CGAL/Triangulation_data_structure_3.h
	Triangulation_3/doc/TDS_3/Concepts/TriangulationDataStructure_3.h
	Triangulation_3/doc/Triangulation_3/CGAL/Delaunay_triangulation_3.h
	Triangulation_3/doc/Triangulation_3/CGAL/Regular_triangulation_3.h
	Triangulation_3/doc/Triangulation_3/CGAL/Triangulation_3.h
	Triangulation_3/doc/Triangulation_3/PackageDescription.txt
2013-09-25 11:47:43 +02:00
Clement Jamin a173372321 Fixes for GCC + removed trailing spaces 2013-09-25 11:18:18 +02:00
Andreas Fabri 5c454cec64 add missing includes 2013-09-13 12:43:01 +02:00
Sébastien Loriot ded66799a6 make the insertion of a range of points with info working with hierarchy 2013-08-05 15:03:46 +02:00
Clement Jamin 18895e6f42 Use the TBB's scalable allocator in a few places
=> better scalability of the parallel remove
2013-07-23 17:51:06 +02:00
Clement Jamin fc10668b31 Spelling mistake + minor change 2013-07-23 17:17:38 +02:00
Marc Glisse 530f20179c Finish Philipp's patch on initializing arrays. 2013-07-23 15:58:04 +02:00
Clement Jamin 8aaee67985 Removed some "p_" prefixes in variable names 2013-07-12 15:49:45 +02:00
Clement Jamin 09d75308fb Untabify 2013-07-02 18:16:22 +02:00
Clement Jamin 206b20bc15 Merge branch 'Mesh_3-parallel-cjamin-old' into Mesh_3-parallel-cjamin 2013-07-02 17:37:50 +02:00
Clement Jamin fcdf906f06 Option to add temporary points on a far sphere before insertion
Helps to reduce contention on the infinite vertex
But removing those points in the end takes time
so it's only worth it when points lie on a surface.
2013-07-02 12:57:26 +02:00
Clement Jamin 8181587ed7 Fix tabs + better profiling 2013-07-02 11:37:32 +02:00
Clement Jamin 2dc6c405b8 Drop the use of the TBB malloc proxy, use TBB allocators manually instead
The TBB's "malloc proxy", which allows to replace all calls to the standard
allocators by calls to the TBB scalable allocator, is not available on MacOS.
Instead, we use the TBB allocators manually, where relevant.
2013-06-27 15:29:47 +02:00
Jane Tournois 404f2e0e3c merge 2013-06-21 10:01:19 +01:00
Clement Jamin bc360c8b13 Changes for GCC compilation + removed some trailing spaces 2013-06-07 17:40:53 +02:00
Clement Jamin 440a654a58 Added a concurrency-safe version of DT3::find_conflicts + better doc 2013-06-05 17:23:19 +02:00
Clement Jamin b43f28c6ab Renamed p_could_lock_zone + use NULL instead of 0 + CGAL_TRIANGULATION_3_PROFILING 2013-06-05 13:44:34 +02:00
Clement Jamin dbe1c9c597 Reversed the "facet_not_in_its_cz" variables by removing the "not" 2013-05-28 15:56:22 +02:00
Clement Jamin eeeb6cc841 Smaller tag names (continued) 2013-05-28 15:42:39 +02:00
Clement Jamin 127926aa14 Proof-reading + minor changes
Renamed unlock_all_tls_locked_locations => unlock_all_points_locked_by_this_thread
2013-05-28 15:07:20 +02:00
Clement Jamin 9aefdbe939 Replaced is_base_of by is_convertible. 2013-05-23 17:49:24 +02:00
Clement Jamin c471fb442d Untabify + removed useless spaces 2013-05-21 11:13:36 +02:00
Sébastien Loriot 8d602ed8c2 Merge branch 'triangulation_3-copy_tds-sloriot'
Approved by the release manager

Conflicts:
	Alpha_shapes_3/test/Alpha_shapes_3/copy_tds.h
	Triangulation_2/doc/TDS_2/Concepts/TriangulationDataStructure_2.h

it introduces a more general copy_tds that allows to copy tds with different types of simplices.
2013-04-29 11:09:01 +02:00
Laurent Rineau 76da6cf570 Add missing #include
That fixes the compilation when no <CGAL/Gmp*.h> header is included.
2013-04-24 12:57:57 +02:00
Sébastien Loriot 0beb1a8861 add an extra overload to please MSVC 2013-04-19 08:38:56 +02:00
Clement Jamin 3a4caaaa1c Changed the place of the erase counters.
Changed Compact_container_strategy_XXX::Uses_erase_counter type + moved the erase counters from Triangulation_ds_xxx_base_3 to Mesh_xxx_base_3.
2013-04-16 15:31:36 +02:00
Sébastien Loriot 498492e770 add set_infinite_vertex to Triangulation_3 and use it with copy_tds
the 2D version already exists
2013-04-12 16:04:59 +02:00
Sébastien Loriot f9e0c97aac for convenience add a default to simple converter
it is useful if you want to copy the tds of a familly
alpha-shape into a fixed one
2013-04-11 20:03:32 +02:00
Jane Tournois 7a530ea7d8 remove just_incident_cells.
The bench I made did not show that it provided any computation time improvement.
2013-04-11 12:48:04 +02:00
Clement Jamin 2a7c402c07 Regular_triangulation_3 is now parallel (insert/remove) 2013-04-10 18:08:53 +02:00
Clement Jamin 6a85889a1e New constructor + minor changes 2013-04-10 18:07:14 +02:00
Clement Jamin ef756afafd Missing "dummy function" for the sequential case 2013-04-03 17:35:24 +02:00
Clement Jamin 1cc98e9abd Updated doc + code clean-up 2013-04-03 17:34:21 +02:00
Clement Jamin e6b33376bb Avoid multiple calls to tbb::enumerable_thread_specific::local() 2013-03-29 17:16:26 +01:00
Clement Jamin 4399f8218b Untabify (missed some of them last time) 2013-03-28 10:13:32 +01:00
Clement Jamin 8c19195bcb Untabify 2013-03-27 15:32:10 +01:00
Clement Jamin cc9dde002e Untabify 2013-03-27 15:30:46 +01:00
Clement Jamin c3e9699887 Clean-up + better "profiling" 2013-03-27 14:39:10 +01:00
Clement Jamin de1f43e30b The remove is now fully parallel.
The remove operations are done in parallel as long as the dimension stays = 3, then the few remaining points are removed sequentially.
2013-03-27 13:47:40 +01:00
Clement Jamin 57d84ecb24 New constructor for Tri_3 and TDS + new way of testing "dim down" in the 3D case
New constructor taking 4 non-coplanar vertices, for faster construction of very small triangulations => a 3D triangulation is directly constructed.
The new "test_dim_down_using_incident_cells_3" is used in the 3D and will be used by the parallel version.
2013-03-26 19:00:37 +01:00
Jane Tournois 35120cdf53 small feature documentation about inexact_locate 2013-03-22 15:46:38 +01:00
Andreas Fabri 7bd3e3698e use CGAL::compare instead of compare to avoid Koenig lookup 2013-03-15 17:34:53 +01:00
Clement Jamin b83b159c2f Fix so that we don't require xx_erase_counter functions anymore when sequential 2013-03-14 17:45:19 +01:00
Clement Jamin 1f0e994a00 Renamed a few functions + tabs to spaces conversion + benchmark output + minor changes 2013-03-11 15:46:27 +01:00
Clement Jamin a7cfd06598 Replaced the unused pair<bool,int> returned by try_lock by a simple bool. 2013-03-08 16:47:37 +01:00
Clement Jamin 3eae2927e7 Merge branch 'Mesh_3-parallel-cjamin-old' into Mesh_3-parallel-cjamin 2013-03-04 15:50:57 +01:00
Clement Jamin a8d38a5fed Code clean-up 2013-02-28 19:46:06 +01:00
Laurent Rineau bc7e2a1d71 Merge remote-tracking branch 'origin/Mesh_3-improvements-GF' into Mesh_3-improvements-GF-new
Mesh_3-improvements-GF-new is fresh fork of master

Conflicts:
	.gitattributes
	AABB_tree/include/CGAL/AABB_tree.h
	GraphicsView/src/CGAL_Qt4/DemosMainWindow.cpp
	Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h
	Mesh_3/include/CGAL/Mesh_3/Refine_facets_3.h
	Mesh_3/include/CGAL/Polyhedral_mesh_domain_3.h
2013-02-28 17:10:16 +01:00
Laurent Rineau bd0930fc26 Fix segfaults in T3, caused by the use of CGAL_assume
I wonder why the compiler created buggy code. Anyway, I found easy
workarounds, without reintroducing the warnings.
2013-02-22 16:15:04 +01:00
Laurent Rineau 66c5d23154 Use CGAL_assume to remove warnings 2013-02-20 18:55:43 +01:00
Clement Jamin a29a847e55 Some tests with parallel removal of vertices. 2013-02-20 17:39:15 +01:00
Clement Jamin 44b8217d54 New/modified constructors for triangulations.
Can now take a lock data structure as parameter.
2013-02-19 10:39:39 +01:00
Clement Jamin 864f4eca81 Moved Spatial_grid_lock_data_structure_3.h to STL_Extension 2013-02-18 13:09:12 +01:00
Clement Jamin 8d5352e15f Better grid lock data structure.
There is just one grid lock data structure class now, with several specialization.
Moreover, now the type of the lock data structure is only defined in the triangulation.
2013-02-18 12:58:57 +01:00
Clement Jamin 0c80db26d4 Forgot to remove an #include 2013-02-18 11:16:45 +01:00
Clement Jamin bce43fbb8e Improved the way parallelism is handle in Mesh_3/Triangulation_3
Added a better support for parallelism in Triangulation_3.
Simplified how to enable/disable concurrency in Mesh_3.
Moved the Compact_container stategies to a new file.
2013-02-15 18:07:43 +01:00
Andreas Fabri 8b5b56adb1 make index an unsigned int 2013-02-15 11:30:08 +01:00
Clement Jamin eb2ed63d8b Changed the way we activate concurrency in Triangulation_3 + Code clean-up 2013-02-11 19:12:30 +01:00
Laurent Rineau 70bf8d7e88 New branch to add c->circumcenter (and the verson with cache) to RT3 2013-02-07 19:07:42 +01:00
Andreas Fabri afeea1e124 replace size_t with int in loops over the vertices of a cell 2013-02-07 17:26:32 +01:00
Clement Jamin c4859681e3 Removed the "localization ids" related code.
It was an old, unused and slow.
2013-02-06 18:57:36 +01:00
Clement Jamin cb89562205 Removed the CGAL_MESH_3_ACTIVATE_GRID_INDEX_CACHE_IN_VERTEX macro.
It was buggy and useless.
2013-02-06 18:10:35 +01:00
Clement Jamin 5938113aff Moved some code because there was a problem with some #ifdef 2013-02-06 14:30:04 +01:00
Clement Jamin dc5e90b8cc Clean-up + some debugging functions + comments 2013-02-02 06:53:43 +01:00
Clement Jamin 2ee92ca346 Missing #ifdef 2013-01-30 17:30:31 +01:00
Clement Jamin ad4a9dcaf6 New is_element_locked_by_this_thread for testing purposes 2013-01-29 19:03:07 +01:00
Clement Jamin 7af597cb4f Parallel Mesh_3 can now be compiled with GCC 2013-01-17 14:49:04 +01:00
Clement Jamin 3dd7981cf4 The erase counter in vertex_base is only required for the parallel version. 2013-01-15 17:05:24 +01:00
Clement Jamin 44e91351ce Code clean-up + minor changes/optimizations 2013-01-11 16:40:03 +01:00
Clement Jamin 7efd61b6db Removed some data race conditions in the parallel perturber.
Note: the code needs some clean-up
2013-01-08 08:59:17 +01:00
Sébastien Loriot aeb1edeae8 Merge branch 'triangulation_3-copy_tds-sloriot-old' into triangulation_3-copy_tds-sloriot 2012-12-18 19:57:32 +01:00
Sébastien Loriot 7843d7ce20 using internal::TDS_3 namespace 2012-12-17 16:39:04 +01:00
Clement Jamin dc7096b1e5 This parallel version of the Perturber seems much better. Needs to be tested... 2012-12-13 20:39:37 +01:00
Philipp Möller 3e98c46535 Correct syntax for uniform initialization 2012-12-12 11:24:34 +01:00
Philipp Möller ae1b135c54 Replace usage of CGAL_CFG_ARRAY_MEMBER_INITIALIZATION_BUG 2012-12-11 17:46:14 +01:00
Sébastien Loriot c25f925174 renaming functor in copy_tds 2012-12-05 12:43:54 +01:00
Sébastien Loriot 6152194fa8 remove boolean for first vertex 2012-12-05 12:43:54 +01:00
Sébastien Loriot 47fea6c6f1 merge experimental-packages/Triangulation_3_copy_tds to a proper branch 2012-12-05 12:43:53 +01:00
Clement Jamin 9c5cddbbc3 Global optimizers: better parallel performance
- We used to have a thread-local variable for cell::TDS_data to make
  incident_cells concurrently callable but it was slow and memory-consuming
  => new incident_cells function which do not use cell::TDS_data
  => faster and lighter
- update_restricted_delaunay now uses parallel_for instead of parallel_do
  (it was quite slow with the implicit oracle)
  => faster (but requires to fill a temporary vector)
2012-11-28 14:17:59 +01:00
Clement Jamin 11a2a1c68a Merge from Mesh_3-improvements-GF 2012-11-21 17:49:59 +01:00
Clement Jamin ab4d97c1e5 The global optimizers are now parallel (needs some intense testing now) 2012-11-21 16:16:47 +01:00
Clément Jamin ffc70d4482 Added support for concurrency to "locate" + minor changes 2012-11-20 15:16:21 +01:00
Laurent Rineau 57a58d00a3 Triangulation_cell_base_with_circumcenter_3::invalidate_circumcenter() must
be public.

That is required by the slivers exuder.
2012-11-20 10:25:47 +01:00
Laurent Rineau 4509b5bbe2 Merge branch 'master' into improvements
Conflicts:
	Mesh_3/include/CGAL/Mesh_3/mesh_standard_facet_criteria.h
2012-11-14 12:17:29 +01:00
Sébastien Loriot 825bfe6144 make create_star_3 non recursive only after 100 recursive calls.
The speed observed on random data set produced by simple_2.cpp is equivalent
to the original recursive version and faster than the version better this commit
2012-10-30 13:42:47 +00:00
Clément Jamin 74fad3a088 Typo 2012-10-19 08:50:18 +00:00
Clément Jamin 8a12c83451 The parallel version can now use safely FORCE_STRUCTURAL_FILTERING (optimization from GF-Improvements) 2012-10-17 16:33:37 +00:00
Clément Jamin 1ca7174e01 Merge from Mesh_3-improvements-GF
+ some bugfixes (most of them are related to the parallel version)

This version works (sequential and parallel) as long as the following macros are NOT defined:
* CGAL_COMPACT_MESH_VERTEX_CELL
* CGAL_INTRUSIVE_LIST
* FORCE_STRUCTURAL_FILTERING
2012-10-16 14:02:16 +00:00
Clément Jamin 4e1f8aa4f8 Merge from next 2012-10-15 08:28:01 +00:00
Laurent Rineau 795c71fc9b Fix headers of Mesh_2 and Mesh_3. All were missing #include.
I found out that way that <CGAL/Mesh_3/Refine_facets.h> and
<CGAL/Mesh_3/Protect_edges_sizing_field> were using global functions
instead of functors of the traits class.

Note also the funny bug that <CGAL/Regular_triangulation_cell_base_3.h> was
depending on <CGAL/Triangulation_vertex_base_3.h>!
2012-10-08 09:33:38 +00:00
Clément Jamin 2366fee1e1 Merge from next 2012-09-28 14:51:02 +00:00
Jane Tournois 3555cf3cb2 make just_incident_cells_3 the default use of incident_cells(v)
replace macro CGAL_JUST_INCIDENT_CELLS with CGAL_TDS_3_NOT_JUST_INCIDENT_CELLS (and reverse use), and comment it in config.h
2012-08-28 09:01:47 +00:00
Jane Tournois abc1515741 r70387, r70573, r70574 from Mesh_3-experimental-GF
Add incident_cells_3(Vertex_handle, std::vector<Cell_handle>)

This function avoids the construction of two additional std::vectors.
The performance gain is between 30% (g++) and 50% (VC++)
for points on surfaces as well as for points filling space.

We at the same time change the implementation of the function
incident_cells(Vertex_handle, OutputIterator).
In order to save one additional std::vector,
the cells are reported in bfs and not in dfs order
2012-07-31 14:44:45 +00:00
Jane Tournois 7d169b85f8 r70573 from Mesh_3-experimental-GF
add macro to force Structural_filtering
2012-07-31 14:14:25 +00:00
Jane Tournois db9f968ea9 r70321 from Mesh_3-experimental-GF
Change inexact_locate and inexact_orientation from protected to public (needed for the commit in Mesh_3 concerning inexact_locate in Mesh_sizing_field)
2012-07-31 13:30:29 +00:00