Commit Graph

206 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé 5c9e18a2f6 Improved readability of Regular/Delaunay_triangulation_3
The quest continues
2017-11-01 15:09:18 +01:00
Mael Rouxel-Labbé ac0a27cdfd Made Mesh_3's optimizers work with periodic triangulations 2017-10-31 15:47:23 +01:00
Mael Rouxel-Labbé 1f4475d471 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2017-10-27 16:26:27 +02:00
Mael Rouxel-Labbé 7b379d4338 Temporarily moved code from RT3 to T3 2017-10-22 23:40:45 +02: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é b8de2148b2 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2017-07-28 11:41:58 +02:00
Mael Rouxel-Labbé a9be53be85 Fixed warnings 2017-07-27 12:15:52 +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
Mael Rouxel-Labbé 1761ec3294 Mesh_3 criteria is_bad() now additionally takes the triangulation as parameter
Instead of calling Criteria(element), one must now call Criteria(tr, element).

The idea is that the triangulation should be responsible of geometric data
while elements only handle connectivity (using ids for example).
This is already the case for Periodic_3_mesh_3 which must obtain
"true" geometric information through the (periodic) triangulation class's
methods.

These changes are transparent for Mesh_3 but allow Periodic_3_mesh_3 to use
Mesh_3's criteria.
2017-06-19 15:15:20 +02:00
Mael Rouxel-Labbé 7c014c9e27 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
Based on cgal-public-dev/Periodic_3_Regular...
  @ 7efd46f427580437943fa549bdbf1159f35b1edb
2017-06-16 11:21:52 +02:00
Mael Rouxel-Labbé 5018c014b7 Merge branch 'Periodic_3_Regular_triangulation_3-APelle-old' into Periodic_3_Regular_triangulation_3-APelle
Based on Kernel_Weighted_point_without...
  @ 41e7520b3e
2017-06-15 15:07:53 +02:00
Mael Rouxel-Labbé 98800d2de8 Fixed regular triangulation capitalization across CGAL 2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé 9872edfe93 Fixed wrong template type (which induced taking references of references) 2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé bbccf42ef9 Removed an ugly static_cast 2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé 40566671c7 Misc minor changes 2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé 0d352759e6 Use boost::function_property_map to apply spatial_sort to weighted points 2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé a4503e7edc Moved facet dual computation functions from Mesh_3 to Regular_triangulation_3
... and improved them and gave them more overloads
2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé 02732237aa 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-15 10:34:15 +02:00
Mael Rouxel-Labbé 411fbe4ea0 Removed useless include 2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé c0e71d3fae Reorganized Regular_triangulation_3 dual functions 2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé 1ef25bdfcf Copy boost::bind return object
The lazy kernel returns temporaries and gives garbage to compare_xyz_3...
2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé 2644989471 Renamed Regular_triangulation base typedef (Base > Tr_Base) 2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé d5c54f68b7 Removed useless construct_point_3
Construct_weighted_circumcenter_3 already returns a Bare_point
2017-06-15 10:34:15 +02:00