Commit Graph

466 Commits

Author SHA1 Message Date
Jane Tournois 75771bacb3 rename Regular_triangulation_cell_base_with_circumcenter_3
to Regular_triangulation_cell_base_with_weighted_circumcenter_3
2014-02-06 15:50:38 +01:00
Jane Tournois 88666391da introduce weighted_circumcenter() for RegularTriangulationCellBase_3
weighted_circumcenter() replaces circumcenter() in the regular framework,
which is not a member of TriangulationCellBase_3 anymore.

Triangulation_cell_base_with_circumcenter_3 is deprecated and replaced by:
Delaunay_triangulation_cell_base_with_circumcenter_3
and
Regular_triangulation_cell_base_with_circumcenter_3.

Implement the changes in documentation, Triangulation_3 code and Mesh_3 code.
2014-01-16 16:55:19 +01:00
Jane Tournois 7b55c30ba5 fix the use of Triangulation_cell_base_with_circumcenter
Triangulation_cell_base_with_circumcenter should not be responsible for
computing the circumcenter value. It is only responsible for its caching.
The Cell_base used as second template parameter should make the construction,
in the circumcenter() function.

Also fix the order of derivation in Mesh_cell_base_3
2014-01-10 14:31:02 +01:00
Jane Tournois bf9e964f0e remove macro CGAL_REGULAR_TRIANGULATION_3_USE_CIRCUMCENTER_CACHE
has been checked and is always activated
2014-01-09 12:05:50 +01:00
Jane Tournois 7ad8520d8f Merge branch 'Mesh_3-add_sliver_perturber_criteria-GF-old' into Mesh_3-add_sliver_perturber_criteria-GF 2013-12-10 15:58:46 +01:00
Jane Tournois 3d3bad7734 attempt to fix the bug about CGAL_assertion(!slivers.empty()) in Sliver_perturber.h
there might be inconsistencies (of a few bits) between sliver cached values (64 bits) and values computed on the fly (potentially 80 bit on some 32 bits platforms)
2013-12-10 15:49:52 +01:00
Laurent Rineau 2a345ad60a Fix an assertion when the x86 coprocessor is used
See the comment in the file
2013-12-10 15:20:34 +01:00
Laurent Rineau 675f5b8b14 Fix a warning (unused variable) 2013-12-10 15:20:34 +01:00
Jane Tournois 7061eee190 fix a warning about missing virtual destructor 2013-12-10 14:54:28 +01:00
Jane Tournois 747ef0eade fix access to number_of_cells() and number_of_facets() in C3t3 (these functions are documented) 2013-12-06 10:54:48 +01:00
Jane Tournois a78c94b81b fix compilation of Mesh_3 demo using new features 2013-11-18 16:11:32 +01:00
Laurent Rineau 74e1bad5a4 fix a warning 2013-10-31 11:08:30 +01:00
Laurent Rineau 6561b0d811 Fix warnings
- Twice unused typedefs (because their uses were commented)
- Once member variables initialized in wrong order
2013-10-24 17:22:42 +02:00
Jane Tournois 9f90f2a7de remove useless const in return types 2013-10-24 17:11:42 +02:00
Jane Tournois c557164a44 Merge branch 'Mesh_3-add_sliver_perturber_criteria-GF-old' into Mesh_3-add_sliver_perturber_criteria-GF 2013-10-24 16:28:10 +02:00
Jane Tournois 0a7ea58e1f rename K to Gt because it does not need to be a kernel 2013-10-24 14:22:36 +02:00
Jane Tournois 6f47edcbef fix use of K (defined in Sliver_criterion) 2013-10-24 11:53:54 +02:00
Sébastien Loriot 5f495e579e fix gcc compilation issues 2013-10-24 11:14:04 +02:00
Jane Tournois 145f01a8f6 reset sliver_cache at the end of perturbation to have them free to perturb wrt another criterion now 2013-10-22 12:50:39 +02:00
Jane Tournois a5f7c5ab7f add boolean template parameter to Sliver_criterion, that decides if
the sliver_cache should be updated by operator()(cell_handle).

It can be useful when we write a complex criterion that implies two simpler
criteria for example, and we want the cache to be updated for only one of them
(to avoid inconsistencies)

+ add a sliver_cache reset because valid_move does re-compute the cache
2013-10-21 15:24:24 +02:00
Jane Tournois 064225638b Revert "fix compilation of my previous commit in debug mode"
This reverts commit 36f92c50a3.

And fix it for compilation on debug mode
2013-10-18 14:33:55 +02:00
Jane Tournois 5b50dfad86 make use of the sliver_cache in sliver_criteria
warning : this assumes that sliver_cache stores the value corresponding to this criterion!
2013-10-18 13:01:57 +02:00
Jane Tournois 36f92c50a3 fix compilation of my previous commit in debug mode 2013-10-18 13:00:55 +02:00
Jane Tournois ca249eb5f9 add an operator()(Cell_handle) to Sliver_criterion
this implies changing the template parameters of Sliver_criterion,
which now needs to know the Triangulation type
2013-10-18 12:38:21 +02:00
Jane Tournois ec2b35e398 make sure the same default values as in master are used
- default_value (=12) for perturber,
- max_value (=90) for exuder
2013-10-17 15:48:39 +02:00
Jane Tournois 80f3618be8 complete previous commit 2013-10-17 12:18:04 +02:00
Jane Tournois ae851c9747 remove sliver_bound_ member variable from the perturber and exuder
This variable is now stored exclusively in the sliver_criterion choosen for optimization.
And - remove some default parameters to avoid inconsistencies
2013-10-17 11:19:37 +02:00
Laurent Rineau fcbbe713d5 No longer deprecate Mesh_cell_base_3
Compact_mesh_cell_base_3 has a different API than Mesh_cell_base_3. Unless
one uses the default template parameters, the new API is less
convenient. We cannot deprecate Mesh_cell_base_3 so easily.
2013-10-16 16:34:41 +02:00
Jane Tournois 864fbaae36 Merge remote-tracking branch 'remotes/origin/Mesh_3-fix_perturber-GF' into Mesh_3-add_sliver_perturber_criteria-GF
Conflicts:
	Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h
2013-10-15 11:56:25 +02:00
Laurent Rineau 1855c174d6 Reverting "a second intrusive list of cells should not be used this would induce some bugs in global optimizers (because modified_cells should be an intrusive list, and we should not modify previous_intrusive and next_intrusive for cells that are not inside this list"
Revert "a second intrusive list of cells should not be used"

This reverts commit 8674523d10.
2013-10-14 17:16:52 +02:00
Laurent Rineau 924aa6a01e Fix whitespace in recent commits 2013-10-14 17:12:54 +02:00
Laurent Rineau 240385d011 Add expensive assertions to check the circumcenter cache 2013-10-14 17:12:54 +02:00
Jane Tournois 13ed8627c2 fix check_surface_mesh topology criterion
the vertex that is moving should not be taken into account when we compare the list of vertices of the move conflict zone before/after the move
2013-10-14 17:08:00 +02:00
Jane Tournois 8674523d10 a second intrusive list of cells should not be used
this would induce some bugs in global optimizers (because modified_cells should be an intrusive list, and we should not modify previous_intrusive and next_intrusive for cells that are not inside this list
2013-10-14 17:05:05 +02:00
Jane Tournois 14d78bea51 remove set_sliver_value inside debugging code to have the same behavior with and without the macro being defined 2013-10-14 15:55:41 +02:00
Jane Tournois 8744e35474 add more expensive debugging code 2013-10-11 16:29:43 +02:00
Jane Tournois 4a25da8353 add expensive debugging code 2013-10-11 16:19:34 +02:00
Jane Tournois 85beea510e use Sliver_criterion_value functor inside Is_sliver 2013-10-11 15:08:40 +02:00
Laurent Rineau 7ef932d79b add assertion to check cache validity 2013-10-11 15:04:25 +02:00
Jane Tournois 46b39b0377 Merge branch 'Mesh_3-add_sliver_perturber_criteria-GF-old' into Mesh_3-add_sliver_perturber_criteria-GF
Conflicts:
	Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h
2013-10-10 11:59:09 +02:00
Laurent Rineau 3f88b4d746 Merge remote-tracking branch 'origin/Mesh_3-fix_perturber-GF'
- In Mesh_3, fix the sliver perturber
    - the invalidatation of caches,
    - the topological check (in check_surface_mesh) was not enough.

Tested in CGAL-4.3-Ic-194
2013-10-09 14:51:32 +02:00
Laurent Rineau 2c78278fdc Fix a compilation bug with older version of g++, and Boost Lambda
The error was triggered by the following code in CGAL/Mesh_3/C3T3_helpers.h:

  template <typename CellForwardIterator>
  void reset_circumcenter_cache(CellForwardIterator cells_begin,
                            CellForwardIterator cells_end) const
  {
    namespace bl = boost::lambda;
    std::for_each(cells_begin, cells_end,
                  bl::bind(&Cell::invalidate_circumcenter, *bl::_1) );
  }

See for example test results here:
CGAL-4.3-Ic-193/Polyhedron_Demo/TestReport_lrineau_i686_Linux-2.6_g++-4.1.2_CentOS-5.1.gz
2013-10-08 16:55:58 +02:00
Laurent Rineau 85d880efc1 Constify two methods that can be const 2013-10-08 16:54:34 +02:00
Jane Tournois 72deb04640 fix compilation on windows
(cherry picked from commit 8ec9e7e2cfd51edf026807059343b4220093611e)
2013-10-08 16:51:26 +02:00
Laurent Rineau 8edeb9095f Add more comment debug outputs (for future debugging) 2013-10-08 16:11:19 +02:00
Laurent Rineau 7248da1509 Fix the slivers perturber
The testsuite showed that our previous patch was not correct: the sliver
cache is modified by a call to C3T3_helper::min_sliver_in_c3t3_value() when
its parameter use_cache=false. For that reason, the resetting of sliver
caches was not done at the right place in update_mesh_no_topo_change().
2013-10-08 14:23:05 +02:00
Laurent Rineau 55153e58b1 Fix a warning about unused local typedef 2013-10-04 18:01:17 +02:00
Jane Tournois 245250dfad do not test inside_protecting_balls for ODT and Lloyd because it slows down the algorithm and never happens for Lloyd and ODT (experimentally tested. Maybe it can happen some day...) 2013-10-02 12:59:03 +02:00
Laurent Rineau f06d2057d6 Uniformize my uses of std::setprecision 2013-09-27 17:58:00 +02:00
Laurent Rineau 67b20e8a19 Fix the sliver perturber
- the invalidatation of caches,
- the topological check (in check_surface_mesh) was not enough.
2013-09-27 17:52:57 +02:00