Commit Graph

191 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé ac0a27cdfd Made Mesh_3's optimizers work with periodic triangulations 2017-10-31 15:47:23 +01:00
Mael Rouxel-Labbé 7009f228a5 Changed some documentation and comments 2017-10-30 14:50:51 +01:00
Mael Rouxel-Labbé e2b33c4948 Progress on periodic optimizers
- Replaced a lot of v->point() with tr.point(v) & similar
- Fixed taking references to temporary:
  we can't do "F(construct_point_3_object()(tr.point(c, i)))" for periodic
  triangulations because tr.point(c,i) is _not_ a reference
- Added some sanity checks to debug Lloyd optimization
- Fixed some indentation
2017-10-29 21:31:59 +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é 60fbe1975c Various readability changes (no real changes) 2017-10-26 13:01:39 +02:00
Mael Rouxel-Labbé c4fddff235 Minor wording improvement 2017-10-22 23:32:16 +02:00
Mael Rouxel-Labbé 75fceea173 Removed useless commented assertion 2017-10-22 23:32:00 +02:00
Mael Rouxel-Labbé d9ef84a33a Added triangle() to P3_mesh_triangulation_3 2017-10-22 23:31:28 +02:00
Mael Rouxel-Labbé 9767912335 Fixed some functions from P3_mesh_triangulation...
... that did not properly canonicalize points
2017-10-22 23:30:26 +02:00
Mael Rouxel-Labbé 41f5c47394 Misc minor changes
Indentation, comments, whitespace, etc.
2017-10-22 23:28:37 +02:00
Mael Rouxel-Labbé 94bb59b722 Various doc/comments improvements 2017-10-17 12:45:30 +02:00
Mael Rouxel-Labbé d8d4709012 Removed some std::cout 2017-08-18 10:58:25 +02:00
Mael Rouxel-Labbé c6af3e8755 Minor doc changes 2017-08-07 11:32:58 +02:00
Mael Rouxel-Labbé b330f05354 Misc minor changes 2017-07-27 17:01:28 +02:00
Mael Rouxel-Labbé b938fd1c58 Fixed license 2017-07-27 16:40:46 +02:00
Mael Rouxel-Labbé 1c618f7e22 Fixed compilation issue 2017-07-27 13:57:39 +02:00
Mael Rouxel-Labbé e1e5261603 Misc minor changes 2017-07-27 13:04:21 +02:00
Mael Rouxel-Labbé 9749c71a1c Replaced calls to assert() with CGAL assertions 2017-07-27 11:55:37 +02:00
Mael Rouxel-Labbé a8336f39ec Minor misc changes 2017-06-22 15:52:43 +02:00
Mael Rouxel-Labbé 956b1f6fc0 Introduced robust_canonicalize_point()
This is a way to handle points that are epsilon-close to the boundary yet still
outside. This might create numerical issue such that the point + any offset
does not fall into the domain (due to -epsilon + 1 ~= 1)

The numerical issue is detected when the offset is computed and we snap the
point to the domain.

This is done for P3M3 only (not P3T3: people should give proper input points!)
2017-06-22 15:48:01 +02:00
Mael Rouxel-Labbé fe14379106 P3M3 now use the new robust traits 2017-06-22 15:36:02 +02:00
Mael Rouxel-Labbé 7ba903423a Silenced warning 2017-06-22 15:07:48 +02:00
Mael Rouxel-Labbé 6fcb046c4f Fixed unused variable warning 2017-06-22 15:02:36 +02:00
Mael Rouxel-Labbé bf3df5b397 Cleaned Periodic_3_mesh_triangulation_3 includes 2017-06-20 11:07:46 +02:00
Mael Rouxel-Labbé 4c636bbd1c Remove all criteria-related classes from P3M3
They are now obsolete: we can simply use Mesh_3's
2017-06-19 16:24:23 +02:00
Mael Rouxel-Labbé 65ef142bff P3M3 now uses Mesh_3 criteria 2017-06-19 16:00:38 +02:00
Mael Rouxel-Labbé 1b2c929af4 Removed P3M3 cell base file that was copied from T3 2017-06-16 15:59:51 +02:00
Mael Rouxel-Labbé dca4a3ff32 Hid main encroachment code in P3_mesh_triangulation_3
End goal is to hide periodic details in P3MT3 so that the criteria of Mesh_3
can be fully used without change in P3M3
2017-06-13 17:53:31 +02:00
Mael Rouxel-Labbé 513af55151 Fixed calling c->circumcenter() with a periodic cell
can't do that since it will take point coordinates through c->vertex(i)->point()
which will give the wrong cell
2017-06-02 16:59:17 +02:00
Mael Rouxel-Labbé 9d0e9336f5 P3M3 must use a regular cell base that caches its weighted circumcenter cache 2017-06-02 16:12:54 +02:00
Mael Rouxel-Labbé b56f24ddee Added some empty parallel functions to P3_mesh_triangulation_3
(necessary for compilation)
2017-06-02 16:11:37 +02:00
Mael Rouxel-Labbé 9d37080d74 Cleaned off some useless "this->" 2017-06-02 16:11:22 +02:00
Mael Rouxel-Labbé 223c0fc869 Improved a comment 2017-06-02 16:10:51 +02:00
Mael Rouxel-Labbé 05debcfeac Fixed some Bare_point / Weighted_point issues
and added a function canonicalize_weighted_point() to P3_mesh_triangulation_3
2017-06-02 16:08:11 +02:00
Mael Rouxel-Labbé 316e2e1b50 Added dual_segment and dual_ray to P3_mesh_triangulation_3
-- Removed P3M3 shenanigans from Refine_facets_3.h
-- exact_dual_segment is todo
2017-06-02 16:04:38 +02:00
Mael Rouxel-Labbé 46dad2abb6 Cosmetic changes 2017-06-02 16:02:05 +02:00
Mael Rouxel-Labbé 3870e20958 Adapted all cell / facets criteria to work with periodic meshes
and without implicit conversions.

These files are so close to Mesh_3's that it only requires hiding a bit of
periodic shenanigans behind some generic functions of which Mesh_3 would have
a trivial version to be able to remove those files and use Mesh_3.
2017-06-02 15:54:59 +02:00
Mael Rouxel-Labbé c11d91b800 Improved periodic mesh medit output
There's no need to create a point per face, per cell, per periodic instance,
etc.

Much lighter meshes now!
2017-06-02 15:49:36 +02:00
Mael Rouxel-Labbé 3fa3a6820e Removed CGAL_3.7 remnant files 2017-06-02 08:38:46 +02:00
Mael Rouxel-Labbé 52d5272330 Fixed canonicalize_point()
This function needs to work for bare and weighted points
2017-05-30 10:53:16 +02:00
Mael Rouxel-Labbé 8eb362abf0 Added a comment 2017-05-30 10:43:14 +02:00
Mael Rouxel-Labbé 50b86a94b6 Fixed "using::" of P3MT3 not including the necessary construct_* functions 2017-05-29 15:59:34 +02:00
Mael Rouxel-Labbé 6d3a8be7fa Regular triangulations must use regular vertex/cell bases 2017-05-29 15:59:13 +02:00
Mael Rouxel-Labbé 9d256e500d Removed obsolete use of Regular_triangulation_euclidean_traits_3 2017-05-29 15:58:27 +02:00
Mael Rouxel-Labbé 21ccf77504 Fixed Weighted_point / Bare_point issue in corner setting 2017-05-29 15:57:29 +02:00
Mael Rouxel-Labbé 74de94c602 Fixed some Weighted_point / Bare_point issues
and updated some geometrical function calls to use the new names
2017-05-29 15:56:44 +02:00
Mael Rouxel-Labbé be0f81bcf4 Removed useless typedefs 2017-05-29 15:55:33 +02:00
Mael Rouxel-Labbé 8a00196484 Added P3M3 reference manual 2017-04-04 14:56:48 +02:00
Mael Rouxel-Labbé bf097fd572 Added template arguments for Vb and Cb for the periodic mesh triangulation 2017-04-04 14:41:54 +02:00
Mael Rouxel-Labbé d543552e9c Moved Implicit->labeled_subdomains wrapper out of /P3M3 as it will be documented 2017-04-04 14:41:34 +02:00
Mael Rouxel-Labbé b972f98264 Added a "_3" suffix to classes to indicate 3-directional periodicity 2017-03-18 17:50:57 +01:00
Mael Rouxel-Labbé ddccdaf750 Moved output function to its own file 2017-03-17 17:46:01 +01:00
Mael Rouxel-Labbé 31736e72c8 Cosmetic changes 2017-03-17 17:12:14 +01:00
Mael Rouxel-Labbé 13437a5a12 Renamed Implicit and Labeled periodic domains 2017-03-17 16:26:04 +01:00
Mael Rouxel-Labbé 8b5708c809 Renamed Periodic_3_mesh_criteria_3 into Periodic_mesh_criteria_3
and subsequent changes.
Also changes required for 7446658.
2017-03-17 15:31:35 +01:00
Mael Rouxel-Labbé 2c8c7a0244 Renamed periodic criteria files
Align names on Mesh_3's.
Partial revert of a3cc1d4b141494492d52fba3bc433b14061bb455.
2017-03-17 15:19:49 +01:00
Mael Rouxel-Labbé 449dd11955 Renamed the periodic mesh triangulation and modified includes for ea1b492 2017-03-17 14:36:25 +01:00
Mael Rouxel-Labbé d51ff5039e Renamed Mesh_3_periodic_triangulation_3.h -> Periodic_mesh_triangulation_3.h 2017-03-17 14:35:45 +01:00
Mael Rouxel-Labbé 09b29de876 Fixed periodic criteria default facet and cell criteria values 2017-03-17 13:58:20 +01:00
Mael Rouxel-Labbé ca2266ab42 Fixed two warnings 2017-03-17 13:58:02 +01:00
Mael Rouxel-Labbé b12d46399e Cosmetic changes and includes 2017-03-17 13:57:29 +01:00
Mael Rouxel-Labbé ce04bc8809 Aligned some periodic classes with their current equivalent in Mesh_3 2017-03-17 13:55:47 +01:00
Mael Rouxel-Labbé 4434b50407 Modified the parameters of a call to init_C3T3 2017-03-17 12:51:43 +01:00
Mael Rouxel-Labbé d2fb6cf273 Disable CGAL_MESH_3_SIZING_FIELD_INEXACT_LOCATE in P3M3
Structural filtering cannot, at the moment, be handled when remove traits
are being used.
2017-03-17 12:48:25 +01:00
Mael Rouxel-Labbé dad3916c24 Cleaned medit output functions 2017-03-17 12:44:14 +01:00
Mael Rouxel-Labbé f6252569da Fixed the Periodic mesh triangulation class
Added new functions that (up-to-date)  Mesh_3 requires, cleaned some obsolete
assert(), used the new functions available in P3RT3, added some comments, etc.
2017-03-17 12:40:32 +01:00
Mael Rouxel-Labbé 26fe13ba26 Fixed the traits of the Periodic mesh triangulation 2017-03-17 12:37:28 +01:00
Mael Rouxel-Labbé 8a11f510b1 Removed the Mesh_3 fork from P3M3
Changes will be directly incorporated into Mesh_3. Mesh_3's examples and tests
will consequently be temporarily broken in this branch.
2017-03-17 12:21:23 +01:00
Mael Rouxel-Labbé 7e419f342c Fixed an outdated include 2017-03-08 17:41:13 +01:00
Mael Rouxel-Labbé 50620b1ca5 Bring Mesh_3 files used in P3M3 up to date
The real changes between Mesh_3 and Periodic_3_mesh_3 can be seen with e.g.
git diff --no-index Mesh_3/include/CGAL/Mesh_3/Refine_facets_3.h Periodic_3_mesh_3/include/CGAL/Mesh_3/Refine_facets_3.h

These files are meant to be cleaned eventually
2017-03-08 17:34:41 +01:00
Mael Rouxel-Labbé a73d3d5a4c Fixed examples/tests project names and minor QoL changes 2017-03-08 12:40:10 +01:00
Mael Rouxel-Labbé 817c7538e3 Fixed most of the warnings 2017-02-14 15:25:51 +01:00
Mael Rouxel-Labbé 7241cce269 Fixed Periodic_3 prefixes 2017-02-14 13:37:06 +01:00
Mael Rouxel-Labbé 2f1e8c6602 Quality of life changes for Periodic_3_mesh_3
(Trailing) whitespace, outdated URL/ID, indentation, etc.
2017-02-14 13:15:04 +01:00
Aymeric PELLÉ 2f92b91797 Rename Mesh_criteria_3 Periodic_3_mesh_criteria_3. 2016-01-19 20:28:09 +01:00
Aymeric PELLÉ 63b57ca2a0 Rename Periodic_3_Delaunay_triangulation_3_Mesher_3 Periodic_3_regular_triangulation_3_mesher_3. 2016-01-19 20:02:44 +01:00
Andreas Fabri dbbab00aae several small fixes 2015-12-16 14:20:45 +01:00
Andreas Fabri dbe73c5779 get mesh_triply_periodic_minimal_surfaces.cpp compiled with VC++ 2015-10-04 11:13:06 +02:00
Aymeric PELLE d83cf415c6 Rename Mesh_3_periodic_triangulation_3_generator Mesh_periodic_3_triangulation_3. 2015-09-15 18:02:17 +02:00
Aymeric PELLE 6cc60e1348 Mesh_triangulation calls Base functions. 2015-07-27 13:53:13 +02:00
Aymeric PELLE 68a3ee3490 Periodic mesh uses periodic regular triangulations. 2015-07-27 13:53:12 +02:00
Aymeric PELLE bfbb362c98 Fix : Periodic Refine_facets_3 implementation was deprecated. 2015-07-27 13:53:12 +02:00
Aymeric PELLE afc1cc7dc5 Fix : Periodic_mesh didn't manage concurrency parameters. 2015-07-27 13:53:12 +02:00
Aymeric PELLE 0b9521aecb Improve predicats of Periodic_labeled_mesh_domain_3.
All possible offsets are handled by Do_intersect_surface and
Construct_intersection.
2015-07-27 13:53:11 +02:00
Aymeric PELLE 7d4cedccb1 Fix bad copy-past in Do_intersect_surface. 2015-07-27 13:53:11 +02:00
Aymeric PELLE f509cbe831 Fix the problem of holes on surface caused by bad analysis of dual facets.
Add redefined predicats in Periodic_labeled_mesh_domain_3.
(Do_intersect_surface and Construct_intersection.)

Mesh_3 has new protected member functions allowing its heirs to access the
labeling function and the error bound. Some private member functions
required in Periodic_labeled_mesh_domain_3 are set protected.
(Should be moved in a small feature modifying only Mesh_3?)
2015-07-27 13:53:11 +02:00
Aymeric PELLE 243723d8ad Fix generation of mesh periodic triangulation medit file. 2015-07-27 13:53:11 +02:00
Aymeric PELLE efe1dbb13a Add a domain class for periodic meshing : Periodic_labeled_mesh_domain_3.
It can be built only with an Iso_cuboid_3.
It has a periodic_bounding_box member function required by periodic meshing
algorithms.
Periodic_implicit_mesh_domain_3 inherites from this new class now.
Periodic_implicit_mesh_domain_3 uses Implicit_to_labeling_function_wrapper as
default wrapper now.
2015-07-27 13:53:10 +02:00
Aymeric PELLE 8c2948201e We use a specific domain to periodic mesh.
Periodic cases need a periodic bounding box with exact coordinates.
So, Periodic_implicit_mesh_domain_3 can only built with an Iso_cuboid_3.
Moreover, the method periodic_cuboid is renamed periodic_bounding_box.
2015-07-27 13:53:09 +02:00
Aymeric PELLE a21e140d8b Add the Periodic_3_mesh_3 folder.
Creation of the branch Periodic_3_mesh_3-Feature-MBogdanov.
We re-insert the folder Periodic_3_mesh_3.
2015-07-27 13:53:09 +02:00