Commit Graph

1022 Commits

Author SHA1 Message Date
Laurent Rineau 3694d7a005 Only use polymorphism if CGAL_TST_ASSUME_CORRECT_TYPES is undefined 2019-09-12 13:10:14 +02:00
Laurent Rineau c78d4b66a9 Add SPDX license headers 2019-09-12 10:01:20 +02:00
Laurent Rineau 2acb975ba4 Merge 'cgal/master' to fix conflicts 2019-09-11 14:35:38 +02:00
Laurent Rineau e4e065fad5 'how to make superclass for inserter pattern.txt' turned to comment 2019-09-11 11:22:36 +02:00
Laurent Rineau b438e73b4b cleanup: synchronize with the older branch 2019-09-11 11:04:34 +02:00
Jane Tournois 9d23b2f20c move functions from Triangulation_3 to the traverser header
now Triangulation_3.h is the same as in cgal/master branch,
and everything specific to the traverser has been moved to
the traverser header
2019-09-10 19:26:43 +02:00
Jane Tournois 3f96a41f93 fix warning : code not reached 2019-09-10 19:21:45 +02:00
Jane Tournois 4e419e9c75 little cleaning around CGAL_FAST_TRAVERSER
using this code speedups the traversal by 20% with Epick, 35% with Epeck
and our tests remain valid,
so we can remove the macro and activate the code
2019-09-10 19:21:45 +02:00
Jane Tournois 0d6a9e8367 add a benchmark for simplex traverser and cell traverser 2019-09-10 19:21:45 +02:00
Laurent Rineau bbf559ee17 Merge remote-tracking branch cgal/master into Triangulation_segment_traverser_3-tvanlank 2019-09-10 19:21:38 +02:00
Laurent Rineau 88a915779f Merge tag 'base2018' into HEAD
# Conflicts:
#	Triangulation_3/examples/Triangulation_3/CMakeLists.txt
#	Triangulation_3/include/CGAL/Triangulation_3.h
#	Triangulation_3/include/CGAL/Triangulation_utils_3.h
2019-09-10 18:41:08 +02:00
Laurent Rineau dc02598a5c Merge pull request #4016 from gdamiand/CGAL-more_viewers-gdamiand
CGAL: more viewers
2019-07-10 14:22:50 +02:00
Laurent Rineau dbb1cb6c9b Merge pull request #3974 from afabri/Triangulation-add_ranges-GF
Triangulation_{2,3):  Add ranges
2019-07-01 11:16:05 +02:00
Guillaume Damiand 67307dcead Merge master to remove conflicts; plus rephrase draw documentation following Sebastien comments. 2019-06-19 15:48:10 +02:00
Andreas Fabri f7b7b9957f Merge remote-tracking branch 'cgal/master' into CGAL-null_ptr-GF 2019-06-05 14:47:11 +02:00
Andreas Fabri 4581f1b7a8 Morte replacements 2019-06-05 08:39:55 +02:00
Andreas Fabri 5532b84b4f nullptr_t -> std::nullptr_t 2019-06-05 07:28:56 +02:00
Andreas Fabri e2d19b0c8d Replace NULL and Nullptr_t with nullptr and nullptr_t 2019-06-04 23:45:44 +02:00
Andreas Fabri 285cdd5be5 Add more ranges and a testsuite 2019-06-04 10:40:13 +02:00
Andreas Fabri 4c9bda8169 Use C++11 for loop in examples 2019-06-03 17:23:32 +02:00
Andreas Fabri edd84534a9 Fix code 2019-06-03 17:02:18 +02:00
Andreas Fabri b42fd4428d Triangulation_{2,3): Add ranges 2019-06-03 15:36:34 +02:00
Andreas Fabri d067fb409a uncomment 2019-05-21 17:18:11 +02:00
Andreas Fabri f354210be3 Add using statements 2019-05-21 14:32:03 +02:00
Andreas Fabri 2d1c78fdd9 Unify T3 2019-05-20 18:23:08 +02:00
Sébastien Loriot 124012d9f9 replace cpp11::array by std::array 2019-03-29 13:28:33 +01:00
Sébastien Loriot 0ce7fc09b5 turns iterator pairs into iterable ranges 2019-03-29 13:28:22 +01:00
Sébastien Loriot d60f5645aa replace BOOST_FOREACH by c++ ranged-based for loop
some of the command used for the replacement:
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\(([a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((const [a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((const typename [a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((typename [<>a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack "boost/foreach.hpp" -l --cpp | xargs sed -i '/boost\/foreach.hpp>/d'
2019-03-29 13:22:15 +01:00
Laurent Rineau fdd8357915
Merge pull request #3580 from afabri/Stream_support-Color-GF
Fix warnings (Add/remove copy constructors, and other warnings)

Co-authored-by: Laurent Rineau <laurent.rineau@cgal.org>
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
Co-authored-by: Maxime GIMENO <maxime.gimeno@gmail.com>
2019-02-13 15:25:07 +00:00
Andreas Fabri 88add6bc7b Regular_triangulation_3: Add undocumented Regular_triangulation_cell_base_3::hidden_points() 2019-02-07 15:24:00 +01:00
Laurent Rineau afc3de2894
Merge branch 'master' into Stream_support-Color-GF 2019-01-23 09:37:08 +01:00
Mael Rouxel-Labbé c4b82ba14b Added swap() and an assignement operator for RT3 2019-01-21 14:48:28 +01:00
Andreas Fabri 380cffffb1 Remove copy constructor instead of adding operator= as it triggers a compilation error VC12 Poisson 2019-01-15 09:32:21 +01:00
Andreas Fabri 806ba2ec98 Add operartor= for DT3 2019-01-10 18:29:52 +01:00
Sébastien Loriot 61169b394e Merge remote-tracking branch 'cgal/releases/CGAL-4.13-branch' 2019-01-04 17:19:19 +01:00
Mael Rouxel-Labbé b6f6aeb844 Merge remote-tracking branch 'mine/T3-Fix_weighted_ranges_insertion_removal-GF' into T3-Fix_weighted_ranges_insertion_removal-GF 2018-12-18 13:20:58 +01:00
Mael Rouxel-Labbé 82e458da80 Replaced TDS template specialization with tag-based detection 2018-11-14 07:58:08 +01:00
Mael Rouxel-Labbé bb19c965f9 Moved helper struct outside of TBB macros to fix sequential compilation 2018-11-14 07:58:08 +01:00
Laurent Rineau 574f21cca6 Merge pull request #3383 from lrineau/Triangulation_3-fix_examples_with_TBB-GF
Re-add examples incorrectly disabled by PR #2835
2018-10-29 10:27:48 +01:00
Guillaume Damiand 520015f92a Align typedef 2018-10-15 14:21:20 +02:00
Mael Rouxel-Labbé aa1e0acbee Replaced macro with a legal vertex handle validity checker 2018-10-10 13:08:14 +02:00
Laurent Rineau 4a70d8773e Re-add examples incorrectly disabled by PR #2835
... and then fix them.
2018-10-08 12:32:12 +02:00
Mael Rouxel-Labbé 8500add791 There is no 'try'! 2018-10-03 16:31:42 +02:00
Mael Rouxel-Labbé e1122cef5c Fixed deadlocks in parallel removal of a range of weighted points 2018-10-03 15:58:59 +02:00
Mael Rouxel-Labbé e2b0683030 Fixed not checking 'hint' validity in the parallel insertion of a range of WPs 2018-10-03 15:57:40 +02:00
Guillaume Damiand ddd7f8fa3b Add an option to disable viewer when running ctest. 2018-09-07 13:29:38 +02:00
Guillaume Damiand 2c8af2ebcc Update all draw_XXX functions to use specialized version, allowing to use different draw in a same program. 2018-09-06 18:43:32 +02:00
Mael Rouxel-Labbé 7490f34560 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-06-21 10:15:25 +02:00
Laurent Rineau 08043e442c Merge pull request #2835 from gdamiand/CGAL-basic_viewers-gdamiand
Add basic viewers
2018-06-14 17:36:37 +02:00
Guillaume Damiand bc4eca82b3 Need double cast 2018-06-13 10:47:44 +02:00
Guillaume Damiand f6fd8cae4c Remove a warning; when using test suite, compile all the code but run nothing. 2018-06-13 09:14:18 +02:00
Guillaume Damiand 59f797f066 Update the 5 basic viewers to remove factorized functions, and to define different versions in order to remove default template parameters. 2018-06-11 13:09:50 +02:00
Maxime Gimeno fdeb5621ca replace cast in unsigned long int to std::size_t to fix warnings. 2018-06-07 13:55:22 +02:00
Maxime Gimeno 10c277ea2d Use special args if running testsuite to avoid execution errors. 2018-06-07 13:35:28 +02:00
Mael Rouxel-Labbé 7ea3a8044e Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-06-05 14:39:18 +02:00
Laurent Rineau c151778454 Merge pull request #3122 from MaelRL/T23-Fix_functor_return_type-GF
Triangulation_23: fix wrong return type in spatial_sort functor

# Conflicts:
#	Triangulation_3/test/Triangulation_3/test_regular_insert_range_with_info.cpp
2018-06-01 17:24:23 +02:00
Laurent Rineau 72d2c8e1ef Merge pull request #3122 from MaelRL/T23-Fix_functor_return_type-GF
Triangulation_23: fix wrong return type in spatial_sort functor

# Conflicts:
#	Triangulation_3/test/Triangulation_3/test_regular_insert_range_with_info.cpp
2018-06-01 17:21:44 +02:00
Maxime Gimeno 979bde1025 Fix Triangulation_3 viewer 2018-05-29 11:27:53 +02:00
Andreas Fabri 4b14990209 Fix warnings; Remove typename in non-template code 2018-05-29 11:11:50 +02:00
Guillaume Damiand c62fb2b01e Move include iostream. 2018-05-29 11:11:49 +02:00
Guillaume Damiand b361e78a99 Add missing include 2018-05-29 11:11:49 +02:00
Guillaume Damiand 39de8ac459 Add licence includes 2018-05-29 11:11:49 +02:00
Guillaume Damiand d8a62aa2c8 Update licence headers of new files. 2018-05-29 11:11:49 +02:00
Guillaume Damiand dba44f48a1 Harmonize the 5 basic viewers. 2018-05-29 11:11:49 +02:00
Guillaume Damiand 53769e98a7 * Add draw examples in the 5 concerned packages (Polyhedron, Surface_mesh, T2, T3, LCC)
* Update FindQGLViewel to add a target.
2018-05-29 11:11:49 +02:00
Guillaume Damiand 6e83b034dc Rename file for basic viewers. 2018-05-29 11:06:07 +02:00
Guillaume Damiand 73905ce8dd Avoid to run the viewer for the CGAL test suite. 2018-05-29 11:06:07 +02:00
Guillaume Damiand 5d375eff74 Update all basic viewers to have the correct behavior when CGAL_USE_BASIC_VIEWER is not defined. 2018-05-29 11:06:07 +02:00
Guillaume Damiand 5e5a9611db Protect the code of the basic viewers; rename display into draw; add a draw function that display an error message if the basic viewer is not defined. 2018-05-29 11:04:57 +02:00
Guillaume Damiand 00c2eed479 update name of first parameter for qt window 2018-05-29 11:04:57 +02:00
Guillaume Damiand a59c5f6398 Update all basic viewers to allow to have a color functor as parameter. 2018-05-29 11:04:57 +02:00
Guillaume Damiand 80ff774d20 Add T3 viewer, and use it in regular_3.cpp example 2018-05-29 11:02:00 +02:00
Guillaume Damiand 1477c6c503 Start t3 viewer 2018-05-29 11:02:00 +02:00
Mael Rouxel-Labbé e9d3b9767e Fixed taking a reference to a temporary (when using EPECK) 2018-05-28 15:43:45 +02:00
Mael Rouxel-Labbé bfdb89e595 Removed 'move_point()' from Triangulation_3 2018-05-24 14:50:40 +02:00
Mael Rouxel-Labbé b41f1d6272 Various deprecation-related improvements 2018-05-18 16:47:54 +02:00
Mael Rouxel-Labbé a0427ec756 Fixed abusing Triangulation_cell_base_3 for Delaunay triangulations
TriangulationCellBase_3 does not request a circumcenter;
DelaunayTriangulationCellBase_3 does.

Delaunay_triangulation_3 only compiled because
Triangulation_cell_base_3 (and Triangulation_ds_cell_base_3 !)
provided circumcenter() operators and DT3 inherited T3's TDS.

- The circumcenter() functions are removed where they shouldn't exist
- DT3 uses DT_cell_base_3 as cell base instead of T_cell_base_3
- Concepts/Classes that supposedly only required TriangulationCellBase_3
  and then built Delaunay triangulations with that (Alpha Shapes, etc.)
  are upgraded to request DelaunayTriangulationCellBase_3 (anyway, it
  wouldn't compile if you actually provided a model of
  TriangulationCellBase_3)
- Fixed various wrong templates in classes/concepts such as
  MeshVertexBase_3 not refining RegularTriangulationVertexBase_3
  and (only in the doc) defaulting to Triangulation_vertex_base_3
- Removed the deprecated class (for 4+ years) T_cell_base_with_circumcenter
2018-04-26 13:21:53 +02:00
Mael Rouxel-Labbé 7007f44f1f Removed deprecated (since 2014) cls Triangulation_cell_base_with_circumcenter_3 2018-04-26 13:00:21 +02:00
Mael Rouxel-Labbé 17d46e9211 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-04-26 11:55:17 +02:00
Andreas Fabri 063a91a771 Use CGAL::random_shuffle 2018-04-04 14:00:23 +01:00
Laurent Rineau cd6fe20bd4 Merge branch 'releases/CGAL-4.11-branch' 2018-03-26 11:03:37 +02:00
Laurent Rineau 3c70f8bad0 Fix dependencies by moving files 2018-03-23 14:17:24 +01:00
Andreas Fabri bbfeedcf5a Oliver's faster walk_to_next_3() 2018-03-16 19:24:36 +01:00
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é c28e05be0c Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-02-23 12:50:06 +01:00
Laurent Rineau 78e7060525 Merge pull request #2712 from afabri/CGAL-VC+warnlevel_4-GF
Deal with VC++ warnings of level /W4
2018-02-19 14:27:06 +01:00
Laurent Rineau 01e2405fa7 Merge pull request #2774 from MaelRL/T3-Fix_is_Gabriel-GF
T3/P3T3: Fix Is_Gabriel(Vertex_handle) for regular triangulations
2018-02-14 15:35:05 +01:00
Mael Rouxel-Labbé 05c31eac52 Fixed is_Gabriel(Vertex_handle) for RT3 2018-01-31 15:29:18 +01:00
Andreas Fabri 43d2ecb521 Triangulation_3 2018-01-17 16:57:46 +00:00
Andreas Fabri 6cc385c6ec Number_types 2018-01-17 15:47:18 +00: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é 852cc12dc6 Fixed wrong type 2017-12-14 10:13:11 +01:00
Andreas Fabri 7d0ce1e317 fix typedef 2017-12-12 22:16:30 +01:00
Mael Rouxel-Labbé adfdc70374 Uniformized template parameters names in all P3T3 traits classes
Hopefully works around a bug in MSCV compilers too
2017-12-12 20:53:10 +01:00
Mael Rouxel-Labbé 417903d640 Reworked some 'using' keywords in P3T3 traits classes 2017-12-12 17:48:51 +01:00
Mael Rouxel-Labbé 72995837db Improved Robust_weighted_circumcenter_filtered_traits_3 2017-12-12 17:43:14 +01:00
Mael Rouxel-Labbé c5993c95b3 Replaced a postcondition
When manually building a triangulation, we might have inserted vertices but
not yet cells, and thus the dimension is 0 but point() should still work.
This is the case in tet_soup_to_c3t3 for example.
2017-12-12 00:46:01 +01:00
Mael Rouxel-Labbé ba3a59ed5a Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2017-11-30 15:54:00 +01:00
Mael Rouxel-Labbé 812109df83 Added Mesh_3_regular_triangulation_3_wrapper
This wrapper around Regular_triangulation_3 adds undocumented, straightforward
functions which are required for Mesh_3 because of Periodic_3_mesh_3:
they are functions for which both (periodic and non-periodic) triangulations
have fundamentally different implementations, usually because Periodic_3_mesh_3
does not know the offset of a point and must brute-force check all
possibilities. To allow Periodic_3_mesh_3 to use Mesh_3's files,
each mesh triangulation implements its own version.
2017-11-22 14:23:59 +01:00
Mael Rouxel-Labbé c89ae64e31 Fixed getting kernel type through traits 2017-11-21 14:55:32 +01:00
Sébastien Loriot 8cdfad0d08 add missing URL and Id tags 2017-11-15 22:58:57 +01:00
Sébastien Loriot ff26773f7b remove include directive for checking GPL compliance in LGPL headers 2017-11-12 10:21:35 +01:00
Sébastien Loriot ee57fc2d6c add SPDX identifier for files under the GPL-3+ license 2017-11-12 10:17:51 +01:00
Sébastien Loriot 0698f79aff add SPDX identifier for files under the LGPL-3+ license 2017-11-12 10:17:50 +01:00
Mael Rouxel-Labbé 7d7fb2f81d Generalized the signatures of some predicate wrappers
Since construct_point() is used, the arguments can be either Point_3 or
Weighted_point_3.
2017-11-06 14:40:29 +01:00
Mael Rouxel-Labbé 33ea377bbe Cleaned robust weighted circumcenter filtered traits (no real changes) 2017-11-02 11:41:40 +01:00
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é 9edd4194ba Fixed Triangulation_3.h indentation and whitespace (no real changes) 2017-10-31 18:23:31 +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é bae6f15fa5 WIP commit 2017-10-27 15:34:33 +02:00
Mael Rouxel-Labbé 7b379d4338 Temporarily moved code from RT3 to T3 2017-10-22 23:40:45 +02:00
Jane Tournois bd34d03c15 add cheaper orientation function to traverser
it uses Simple_cartesian<double> to make cheaper, though less
precise, tests
2017-09-21 11:39:40 +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é 516281d34b Fixed a couple of warnings 2017-07-31 12:43:57 +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
Laurent Rineau 66a10f5a91 Merge pull request #2275 from afabri/Convex_hull_3-OpenMesh-GF
Convex_hull_3: Make it work for OpenMesh
2017-07-25 18:17:02 +02:00
Andreas Fabri 0cce789437 Add examples for using 3D convex hull functions with open mesh. And fix a bug in convex hull code 2017-07-19 12:25:31 +02:00
Mael Rouxel-Labbé 52956a40fb Fixed accidentally including boost's function_property_map.h 2017-07-04 10:45:33 +02:00
Mael Rouxel-Labbé 5ef4ed6083 Merge branch 'Periodic_3_Regular_triangulation_3-APelle-old' into Periodic_3_Regular_triangulation_3-APelle
Based on master
2017-07-03 16:12:14 +02:00
Mael Rouxel-Labbé 7943d0877e Fixed taking reference to temporary (ter) 2017-06-30 11:40:14 +02:00
Mael Rouxel-Labbé 02a9a91e40 Cleaned off useless 'using' 2017-06-30 11:32:07 +02:00
Mael Rouxel-Labbé 4ac89861ba Fixed (?) taking reference to temporary 2017-06-28 10:17:14 +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é 044deb6c7e Replaced boost_static_assert with cgal_static_assert and used () guards 2017-06-28 10:16:23 +02:00
Mael Rouxel-Labbé 87e0ae40b0 Closed a parenthesis 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é 1f14a66d94 Renamed uses of invalidate_circumcenter() in accordance with the modified concept 2017-06-28 10:16:23 +02:00
Mael Rouxel-Labbé f964171f14 Fixed Point / Point_3 issues in T3 and improved the documentation
-- Do not use concept names as template names in the doc
-- Fixed point / point_3 issues and other problems of coherence between concept
and model
-- Fixed some wrong refinement relationships
2017-06-28 10:16:23 +02:00
Mael Rouxel-Labbé 2d2eb22f98 Fixed boost/core/is_same.hpp > boost/type_traits/is_same.hpp 2017-06-28 10:16:23 +02:00
Jane Tournois 130e65db97 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-06-28 10:16:23 +02:00
Mael Rouxel-Labbé a990913d99 Fixed using default templated class functions 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
Jane Tournois 110316570c 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 both geom traits
are compatible
2017-06-28 10:16:23 +02:00
Mael Rouxel-Labbé b5affb383d Changed boost/core/enable_if.hpp to boost/utility/enable_if.hpp 2017-06-28 10:16:23 +02:00
Mael Rouxel-Labbé e122246f5f 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-06-28 10:16:23 +02:00
Mael Rouxel-Labbé ec7efb6d70 Fixed Has_nested_type_Bare_point includes 2017-06-28 10:15:30 +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é ae480077de Removed obsolete file: Regular_traits_adaptor.h 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é 47b3e7193e Comparison result should be of type Comparison_result
(it worked anyway since Comparison_result is a Sign internally)
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é b50098bb1e 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-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 98226c97c4 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-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é cd9a908393 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-06-28 10:14:35 +02:00
Mael Rouxel-Labbé ae1fb2bfec 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-06-28 10:14:35 +02:00
Mael Rouxel-Labbé e421fe92f9 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-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é d2abb2d981 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-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 22bd3538a0 Added CGAL_NO_DEPRECATED_CODE macros to Regular_triangulation_euclidean_traits 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
Sébastien Loriot e602bae784 version without partial specialization
the norms says that partial specialization should be
done in a namespace (not inside a class)
2017-06-28 10:14:35 +02:00
Jane Tournois ae4449782d remove hybrid operators, that use Bare points and Weighted points in an ambiguous manner
this commit only fixes the testsuite of Mesh_3
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
Clement Jamin c7bd6a7403 Include licence check header 2017-06-23 10:41:05 +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
Clement Jamin 5b9562ea84 Merge branch 'Triangulation-add_regular_tri-cjamin_mglisse-old' into Triangulation-add_regular_tri-cjamin_mglisse 2017-06-16 11:09:07 +02:00
Mael Rouxel-Labbé 3c42724e22 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é 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é 9cc17dc935 Renamed uses of invalidate_circumcenter() in accordance with the modified concept 2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé 9fa4df6ece Fixed Point / Point_3 issues in T3 and improved the documentation
-- Do not use concept names as template names in the doc
-- Fixed point / point_3 issues and other problems of coherence between concept
and model
-- Fixed some wrong refinement relationships
2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé fa6be567e5 Fixed boost/core/is_same.hpp > boost/type_traits/is_same.hpp 2017-06-15 10:34:15 +02:00
Jane Tournois dae940b0fd 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-06-15 10:34:15 +02:00
Mael Rouxel-Labbé 42f4c310e7 Fixed using default templated class functions 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
Jane Tournois e399530d69 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 both geom traits
are compatible
2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé b94b32bacb Changed boost/core/enable_if.hpp to boost/utility/enable_if.hpp 2017-06-15 10:34:15 +02:00
Mael Rouxel-Labbé 042e558f77 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-06-15 10:34:15 +02:00
Mael Rouxel-Labbé 8ad34307ad Fixed Has_nested_type_Bare_point includes 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é a4c1c2371f Removed obsolete file: Regular_traits_adaptor.h 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