Commit Graph

145 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé b080804f09 Fixed missing bound check in the sequential insertion phase
If the input point set is degenerate, dimension() < 3 is always 'true'
and we will eventually try to read beyond the end of the points vector.

See issue https://github.com/CGAL/cgal/issues/2922
2018-03-13 11:14:06 +01:00
Mael Rouxel-Labbé 05c31eac52 Fixed is_Gabriel(Vertex_handle) for RT3 2018-01-31 15:29:18 +01:00
Laurent Rineau 42b11ddf29 Revert the merge of PR #2478
This reverts the merge commit 46cc91e787 onto
488c3e2879.
2018-01-04 17:54:08 +01:00
Mael Rouxel-Labbé aaeaf35380 Introduced the tag "Periodic_tag" to mark distinguish periodic triangulations 2017-08-23 16:18:05 +02:00
Mael Rouxel-Labbé 8c7bda5f2d Changed from boost::function_property_map to CGAL::internal::boost_'s
This is so it's always available, even if using an old version of boost
2017-06-28 10:17:14 +02:00
Mael Rouxel-Labbé ddfc4fc0fe T2/T3 now use Perturbation_order in tests with symbolic perturbations 2017-06-28 10:16:23 +02:00
Mael Rouxel-Labbé 1fc2282350 Fixed regular triangulation capitalization across CGAL 2017-06-28 10:16:23 +02:00
Mael Rouxel-Labbé d770640506 Fixed wrong template type (which induced taking references of references) 2017-06-28 10:16:23 +02:00
Mael Rouxel-Labbé 5990db5557 Removed an ugly static_cast 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé d0cf0fc86b Misc minor changes 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 4b556707a4 Use boost::function_property_map to apply spatial_sort to weighted points 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé b0b1e5ceaf Moved facet dual computation functions from Mesh_3 to Regular_triangulation_3
... and improved them and gave them more overloads
2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé aab0bca377 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-06-28 10:14:35 +02:00
Mael Rouxel-Labbé a98d78cffb Removed useless include 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 1dff564d40 Reorganized Regular_triangulation_3 dual functions 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 34c2032edc Copy boost::bind return object
The lazy kernel returns temporaries and gives garbage to compare_xyz_3...
2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 2653ebe612 Renamed Regular_triangulation base typedef (Base > Tr_Base) 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé e59e8c2aa0 Removed useless construct_point_3
Construct_weighted_circumcenter_3 already returns a Bare_point
2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 0f8f34c9d4 Fixed compilation of add_temporary_points_on_far_sphere() 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 94abc23da9 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-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 91ea1b4049 Adapted sorting algorithms based on compare_xyz to handle weighted point vectors 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 12fb8d35fc Construct_plane() must use bare points arguments 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé de76ccf545 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-06-28 10:14:35 +02:00
Mael Rouxel-Labbé d668d42f44 Do not provide Bare_point overloads in Regular_triangulation 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé f0d3e77558 Fixed usage of Bare point and Weighted point across Triangulation_3 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé e1dcdcaf4d Cleaned #if 0 code 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 78a4a12b0c Fixed hide_point()
Hide weighted points since they can be re-inserted afterwards
2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé d884edd84a Fixed initialization order warning 2017-06-28 10:14:35 +02:00
Andreas Fabri 780e01dc90 WIP: test_meshing_polyhedron_with_features compiles and crashes in odt 2017-06-28 10:14:35 +02:00
Andreas Fabri bb213d5ad1 Changes after making Weighted_point_3(const Point_3) explicit 2017-06-28 10:14:35 +02:00
Andreas Fabri 787d46ffb8 Disable Point_3(const Weighted_point_3&) 2017-06-28 10:14:35 +02:00
Andreas Fabri 2f895335d0 The Weighted_point_mapper becomes a traits class; test_regular_3.cpp passes 2017-06-28 10:14:35 +02:00
Andreas Fabri 8cbbe0e165 Remove dependencies of Triangulation_3 on Triangulation_2 2017-04-06 11:08:37 +02: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
Andreas Fabri 2a27d4ff38 Fix the Vertex_remover 2016-11-22 16:03:13 +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
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 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 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 9e94ee6178 Change the Power_test 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 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