Commit Graph

296 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé add23592de Fixed license/tag issues 2017-12-08 10:02:26 +01:00
Mael Rouxel-Labbé 9b8a43d0d5 M3/P3M3 doc improvements 2017-12-06 12:50:55 +01:00
Mael Rouxel-Labbé 59a26dc496 Added a comment 2017-12-06 11:10:43 +01:00
Mael Rouxel-Labbé 671fe63cfa Cleaned output 2017-12-06 11:00:18 +01:00
Mael Rouxel-Labbé 3cfc27b4cc Updated P3M3 CMakeLists 2017-12-06 10:51:25 +01:00
Mael Rouxel-Labbé 00f6a874e2 Minor doc fixes 2017-12-05 18:32:30 +01:00
Mael Rouxel-Labbé 8caa58243b Added package_info information 2017-12-05 17:24:01 +01:00
Mael Rouxel-Labbé 9a43746673 Fixed links 2017-12-05 16:53:14 +01:00
Mael Rouxel-Labbé 19ac28b4d0 Added missing 'public' 2017-12-05 16:48:55 +01:00
Mael Rouxel-Labbé cd8a1d60bc Misc minor changes 2017-12-05 16:37:13 +01:00
Mael Rouxel-Labbé 80578d7e04 Minor improvements to periodic medit output function 2017-12-05 16:29:08 +01:00
Mael Rouxel-Labbé 6a08af4b2f Minor P3M3 improvements 2017-12-05 16:28:11 +01:00
Mael Rouxel-Labbé 61ff842be2 Improved doc (M3/P3M3) 2017-12-05 16:27:15 +01:00
Mael Rouxel-Labbé 0f54f28c00 Cleaned P3M3 examples 2017-12-05 15:41:39 +01:00
Mael Rouxel-Labbé 548fdde7ba Fixed not duplicating the number of facets when 'print_twice' is used 2017-12-04 17:44:53 +01:00
Mael Rouxel-Labbé 14d8540c82 Enhanced medit output for periodic meshes
(looks exactly like Mesh_3's now)
2017-12-04 16:09:18 +01:00
Mael Rouxel-Labbé 45aa2d3ab3 Fixed taking a reference to the position of a vertex about to be destroyed 2017-12-01 19:56:55 +01:00
Mael Rouxel-Labbé dd24c82343 Added an example that showcase use of optimizers 2017-12-01 19:09:08 +01:00
Mael Rouxel-Labbé 1e2d920658 Tracking accidentally untracked optimizer file 2017-12-01 19:08:33 +01:00
Mael Rouxel-Labbé 5e810e3c09 Replaced std::map with unordered map + timestamp hash function 2017-12-01 19:07:55 +01:00
Mael Rouxel-Labbé c6a91e3281 Misc minor changes 2017-12-01 18:33:05 +01:00
Mael Rouxel-Labbé a843cf0530 Moved function bodies out of class 2017-12-01 18:30:24 +01:00
Mael Rouxel-Labbé daec72c617 Fixed periodic medit output function for occurence values less than 8 2017-12-01 09:02:01 +01:00
Mael Rouxel-Labbé 8a9750709b Moved the timestamp hash function to STL_extension (and rewrote it) 2017-12-01 08:44:12 +01:00
Mael Rouxel-Labbé 412bda1c44 Fixed licence headers, include guards, authors, etc. 2017-11-30 16:00:23 +01:00
Mael Rouxel-Labbé 7031e940aa Fixed projection of dummies using the wrong index 2017-11-30 15:37:08 +01:00
Mael Rouxel-Labbé 69d13d0a7b Changed name of function 2017-11-30 15:36:46 +01:00
Mael Rouxel-Labbé 34f4b63d4c P3M3 examples and tests improvements 2017-11-30 15:36:27 +01:00
Mael Rouxel-Labbé 47de0b5f52 Do not (directly) include Mesh_3's config file in P3M3 2017-11-30 15:17:48 +01:00
Mael Rouxel-Labbé 11f35f57ed Reworked how the periodic protection class is selected
Rather than overwriting Mesh_3's, a virtual function is used in the initializer.
This allows to use Mesh_3 along Periodic_3_mesh_3.
2017-11-30 15:15:07 +01:00
Mael Rouxel-Labbé c83469fa0e The remove() function of P3M3 now does not do anything if the cover would change 2017-11-30 14:29:11 +01:00
Mael Rouxel-Labbé 8139500daf Added a check on robust_canonicalize_point() 2017-11-30 14:28:51 +01:00
Mael Rouxel-Labbé 1078e00e7f Uniformized between Mesh_3::internal and internal::Mesh_3 2017-11-30 14:26:12 +01:00
Mael Rouxel-Labbé 7ac3fa23a5 Improved P3M3's examples and tests 2017-11-29 18:25:06 +01:00
Mael Rouxel-Labbé 9b8c5cd824 Another batch of v->point() --> tr.point(v) 2017-11-29 17:48:55 +01:00
Mael Rouxel-Labbé 13a49227c1 Improved documentation 2017-11-29 16:32:58 +01:00
Mael Rouxel-Labbé 45e93cacfd Misc minor changes 2017-11-29 16:32:05 +01:00
Mael Rouxel-Labbé 78133c5100 Replaced usages of '.weight()' in Mesh_3 and P3M3
Either through the comparison predicate or the weight constructor.
2017-11-29 16:30:34 +01:00
Mael Rouxel-Labbé cae1889fe2 Enabled the visited vertex boolean in P3M3 (safe 1-cover) 2017-11-29 12:32:44 +01:00
Mael Rouxel-Labbé 5b93c880de Added missing licence 2017-11-29 12:32:31 +01:00
Mael Rouxel-Labbé d440074a70 Cleaned P3M3 examples 2017-11-28 17:32:52 +01:00
Mael Rouxel-Labbé 67fde8ea05 Misc minor changes 2017-11-28 15:25:52 +01:00
Mael Rouxel-Labbé 557176e23e Reworked the way periodic protection is done
A map allows to keep multiple (different) positions for each vertex. Determiningwhich position is chosen for a given vertex is done using curve_index,
orientation, and other available information.
2017-11-28 14:33:23 +01:00
Mael Rouxel-Labbé e8a905e56f Aesthetical changes 2017-11-25 21:01:05 +01:00
Mael Rouxel-Labbé c78d8651ac Introduced mechanism to handle problematic dummy vertices during protection 2017-11-24 13:31:31 +01:00
Mael Rouxel-Labbé ce0c2afd40 Readability changes
Increasing reader sanity, one commit at a time
2017-11-24 11:19:21 +01:00
Mael Rouxel-Labbé 461a8a0ff7 Added is_vertex to the periodic mesh triangulation 2017-11-22 14:53:45 +01:00
Mael Rouxel-Labbé 6b674f6efd Renamed Periodic_3_regular_triangulation_3_mesher_3
for consistency with Mesh_3's version
2017-11-22 14:24:34 +01:00
Mael Rouxel-Labbé b701044a02 Cleaned example 2017-11-22 12:15:43 +01:00
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é 170fa5f58c Minor doc change 2017-11-22 09:41:03 +01:00
Mael Rouxel-Labbé 87966f6ca8 Added a description to (P3)M3's MeshClasses doc group 2017-11-21 17:18:52 +01:00
Mael Rouxel-Labbé 7763e0218b Removed useless doc groups 2017-11-21 17:16:33 +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é 6b11752ccd Added an example of protection 2017-11-21 14:28:31 +01:00
Mael Rouxel-Labbé 816fd4f646 Doc improvements
and trailing whitespace cleaning
2017-11-21 14:26:02 +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é bc0b45a4a4 Fixed include 2017-11-20 16:58:08 +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é 0830a345fe Doc improvements 2017-11-20 13:04:25 +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é 99d04fd44e Minor P3M3 examples / tests updates 2017-08-18 17:37:40 +02:00
Mael Rouxel-Labbé dce934b93f Updated P3M3 doc 2017-08-18 17:37:29 +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é e07a7af4cb Cleaned an example 2017-07-28 13:29:30 +02:00
Mael Rouxel-Labbé 4fe7ba7648 Cleaned off references to helix_example.cpp 2017-07-28 13:00: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é 5016043b29 P3M3 doc improvements 2017-07-27 14:50:46 +02:00
Mael Rouxel-Labbé 8b85a1a8df Updated P3M3/examples.txt 2017-07-27 13:58:45 +02:00
Mael Rouxel-Labbé 1c618f7e22 Fixed compilation issue 2017-07-27 13:57:39 +02:00
Mael Rouxel-Labbé e6ecd1ce10 Moved two examples to tests 2017-07-27 13:57:17 +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é 6fe25e54e2 Minor improvements to P3M3's examples (include headers, indentation, etc.) 2017-06-20 11:06:50 +02:00
Mael Rouxel-Labbé 4019425b24 Cleaned off periodic criteria in P3M3/doc
Well, that's a very empty reference manual now...
2017-06-19 18:09:07 +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é dbf5d0fbd4 Small improvements to a P3M3 example
might as well use the existing canonicalize function (that is also more robust
than the version that was in the example)
2017-06-13 16:35:19 +02:00
Mael Rouxel-Labbé 5aede652c4 Cleaned P3M3 test folder 2017-06-09 13:28:18 +02:00
Mael Rouxel-Labbé df701e2e53 Minor doc changes 2017-06-08 16:01:34 +02:00
Mael Rouxel-Labbé a26bc82bba Minor improvements to P3M3's examples 2017-06-06 14:46:08 +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é b457105b0e Misc minor changes 2017-06-02 16:14:47 +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é fcb31a3cb2 Fixed manual anchor 2017-06-02 15:48:10 +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é 03d6c00265 Cleaned includes in examples
Also fixed write_to_medit calls
2017-03-17 17:46:43 +01:00