Commit Graph

316 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé 357f9d6257 Reworked initialization of a periodic triangulation-based c3t3 2017-11-22 10:06:39 +01:00
Mael Rouxel-Labbé dcfbd3ea42 Get rid of Mesh_domain_holder_with_corners 2017-11-22 10:03:47 +01:00
Mael Rouxel-Labbé aadddba985 Fixed a couple of "an h..." that should have been "a h..." 2017-11-21 17:15:25 +01:00
Mael Rouxel-Labbé 59017a5e9e Minor code cleaning 2017-11-21 16:14:16 +01:00
Mael Rouxel-Labbé c1a4fe3d65 Added dual_segment_exact 2017-11-21 16:12:40 +01:00
Mael Rouxel-Labbé 07d6ce363d Cleaned some obsolete todos 2017-11-20 17:35:24 +01:00
Mael Rouxel-Labbé 5bce5be47d Included P3M3's protection file in P3M3/config.h
To ensure that the file is included before Mesh_3's
2017-11-20 17:03:25 +01:00
Mael Rouxel-Labbé 6bf075e682 Cleaned "get_vertex" usages from periodic protection code
Since we insert dummy before protecting, we're in a 1-sheet triangulation
and we don't need to get canonical vertices: every vertex is already canonical
2017-11-20 16:58:49 +01:00
Mael Rouxel-Labbé 837d685ae0 Forked Protect_edges_sizing_field.h away from Mesh_3
Can't figure out how to do it directly within the original file without making
things slower for Mesh_3... Fork!
2017-11-20 15:54:22 +01:00
Mael Rouxel-Labbé d859221440 Added wrappers to Mesh_3's optimizers 2017-11-20 15:19:01 +01:00
Mael Rouxel-Labbé 9b1ebd71b3 Added a precondition 2017-11-20 15:13:11 +01:00
Mael Rouxel-Labbé ecf9e64f56 Misc minor changes 2017-11-20 15:12:43 +01:00
Mael Rouxel-Labbé f3931d5877 Misc minor changes 2017-11-17 18:42:34 +01:00
Mael Rouxel-Labbé adfb2f6e74 Fixed nearest_power_vertex functions (some issue with offsets) 2017-11-17 18:34:58 +01:00
Mael Rouxel-Labbé 4f09343be1 Fixed not canonalizing some points in P3_mesh_triangulation_3 2017-11-17 18:33:03 +01:00
Mael Rouxel-Labbé 302b3c24fe Introduced signatures for periodic triangulations 2017-11-17 18:28:34 +01:00
Mael Rouxel-Labbé b32a7f8b00 Fixed erroneous precondition 2017-11-11 21:47:01 +01:00
Mael Rouxel-Labbé c33fa46593 Misc minor changes (mostly v->point() to tr.point(v)) 2017-11-11 21:46:14 +01:00
Mael Rouxel-Labbé e1d09b140a Added 'nearest_power_vertex_with_sq_distance'
Which returns, in addition to the power vertex, the squared distance
to this nearest power vertex

Done to avoid a call to tr.min_squared_distance() which is costly for P3M3
2017-11-10 17:49:07 +01:00
Mael Rouxel-Labbé 7298bf0882 Replaced double by FT where appropriate in Slivers_exuder.h 2017-11-10 11:31:45 +01:00
Mael Rouxel-Labbé 943327fe86 Cleaned some M3/P3M3 code 2017-11-06 15:36:30 +01:00
Mael Rouxel-Labbé 0ef6701e6c Added the manifold criterium to P3M3 2017-11-06 14:59:41 +01:00
Mael Rouxel-Labbé 78b32eb91b Fixed trailing whitespace (no real changes) 2017-11-06 13:19:14 +01:00
Mael Rouxel-Labbé e968ab9275 Removed P3M3's Mesh_domain_holder_etc.
Simply use Mesh_3's mesh_domain_with_polylines_features.
2017-11-02 16:58:13 +01:00
Mael Rouxel-Labbé 5996f5959d Replaced periodic code with a call to Mesh_3 2017-11-02 11:24:45 +01:00
Mael Rouxel-Labbé 3b0425a48d Misc minor changes
Mostly code cleaning
2017-10-31 15:49:15 +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é 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é 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