Commit Graph

534 Commits

Author SHA1 Message Date
Jane Tournois 1c1b65ae39 replace CGAL::Random& by mutable CGAL::Random for member variable type
and make use of const everywhere else
2014-03-25 11:39:12 +01:00
Jane Tournois 6792a899de fix compilation of Polyhedral_mesh_domain_with_features_3
when a random generator which does not have the default value is chosen
2014-03-24 17:25:10 +01:00
Jane Tournois 6566c592c2 remove new template parameter RNG
using CGAL::Random everywhere is simpler and definitely enough
note we are using CGAL::Random& as in Random_generator_base
(see CGAL/generators.h)
2014-03-24 12:50:18 +01:00
Jane Tournois 61c245e0ea add a random number generator (RNG) template parameter to mesh domains
a default value (CGAL::Random(0)) is given to avoid non-determinism
2014-03-21 10:35:01 +01:00
Jane Tournois 9f67ee99c7 Revert "sort facets and tetrahedra with indices, to get always the same file for the same mesh"
This reverts commit 2ab45a8514.
It is not needed anymore because cells and vertices come in deterministic order
2014-03-18 16:45:23 +01:00
Jane Tournois 1fd86adab6 remove useless include 2014-03-18 15:37:47 +01:00
Jane Tournois 8e3bef2e87 remove useless sort (and useless diff with master) 2014-03-18 15:32:05 +01:00
Jane Tournois c515a414e6 get verbose stuff back (it was a mistake to commit this) 2014-03-18 15:27:46 +01:00
Laurent Rineau 0554bfc6e8 Fix compilation on Linux
Template explicit specialization cannot be nested in a class.

http://stackoverflow.com/questions/3052579/explicit-specialization-in-non-namespace-scope
2014-03-14 14:46:14 +01:00
Jane Tournois 6b141cc848 replace hashing function when time_stamp is available
it used to be computed in the address of the Vertex_handle
--> not deterministic
2014-03-11 17:56:28 +01:00
Jane Tournois 11ecfe7943 these sorts are not needed anymore
because everything else is deterministic
2014-02-25 17:48:45 +01:00
Jane Tournois 6c0ee83719 remove more useless diffs with integration 2014-02-24 16:20:56 +01:00
Jane Tournois bf03d6964d remove useless diff with integration 2014-02-24 14:37:20 +01:00
Jane Tournois 4a83e56066 remove compare.h. It is not needed anymore 2014-02-21 17:29:55 +01:00
Jane Tournois 4212eb5cf7 fix warnings about ordering variables in constructor 2014-02-21 17:19:08 +01:00
Jane Tournois d16f83ab97 output_to_medit : write in a ostream instead of ofstream (more general) 2014-02-21 16:40:39 +01:00
Jane Tournois 28f68bbfe9 add a default time_stamp_
to Mesh_vertex_base_3, Mesh_cell_base_3 and Compact_mesh_cell_base_3
2014-02-21 14:35:37 +01:00
Jane Tournois 22153ac273 make private the time_stamp_ variable
and add time_stamp() and set_time_stamp() methods everywhere
2014-02-20 16:18:49 +01:00
Jane Tournois 0740b3652f add class Has_timestamp not to modify the API of Compact_container
- use the Has_timestamp operator in Compact_container
- add partial specialization to classes that need the time stamp (i.e.
Mesh_vertex_base, Compact_mesh_cell_base_3 and Mesh_cell_base_3)
- remove "ts" from classes where they were actually needed for compilation
purpose only (i.e. Kd_tree_node and Triangulation_ds_cell_base_3)
- rename "ts" to time_stamp_
2014-02-20 15:53:36 +01:00
Jane Tournois c7eabc4f64 rename ts to time_stamp_ 2014-02-20 15:46:10 +01:00
Jane Tournois 3ec781ccd2 remove useless cout's 2014-02-14 17:18:11 +01:00
Jane Tournois 2034529d10 remove useless cout 2014-02-14 17:16:50 +01:00
Jane Tournois 6f88ef05c0 get perturbers back 2014-02-14 17:16:18 +01:00
Jane Tournois 0e7ddc7fe7 make ts local 2014-02-14 13:12:59 +01:00
Jane Tournois 5d40dcfd4a remove cout 2014-02-14 12:54:13 +01:00
Andreas Fabri 422c7b87f7 debug printouts 2014-02-13 19:46:40 +01:00
Andreas Fabri 1fb697f162 Add compare.h 2014-02-13 19:46:39 +01:00
Jane Tournois 723281d3ec make facet dual segment orientation deterministic, to compute always exactly the same intersection with domain 2014-02-13 19:46:37 +01:00
Jane Tournois 44fa8f7a93 compute distances in a canonical order to make ODT deterministic 2014-02-13 19:46:36 +01:00
Jane Tournois f4ae054d81 compute volume and centroid of cell by taking the points always in the same order to improve consistency 2014-02-13 19:46:35 +01:00
Andreas Fabri 83546c53b1 Add a time stamp in vertices and cells of triangulations and polyhedra
and use this for operator< of handles in order to make mesh generation
 deterministic
2014-02-13 19:46:34 +01:00
Jane Tournois 2ab45a8514 sort facets and tetrahedra with indices, to get always the same file for the same mesh 2014-02-13 19:46:30 +01:00
Jane Tournois 4d47194a7b Merge branch 'Mesh_3-fix_perturber_slivers_empty_bug-GF-rebased'
This branch fixes a bug in the sliver perturber.
It introduces some new data structures to backup the metadata
stored in cells before each perturbation. This allows to
recover these data without recomputing them in case the move
is reverted.

The bug fix comes from the fact that rec-omputed values might
have been different after the move from what they were before the
move, in a tetrahedron which is the same but for which the
Cell_handle is new.

Approved by the release manager.
2014-02-06 11:24:41 +01:00
Laurent Rineau bfbe63275a Define macros to 1 instead of empty values
In <CGAL/Mesh_3/config.h>, the macro are defined to 1, and no longer
defined to empty values.
2014-02-04 14:31:28 +01:00
Laurent Rineau 874e96a553 Fix a bug of the bissection oracle (Labeled_mesh_domain_3)
In CGAL-4.2 and previous, when a facet f was between finite cells c1,
and c2, with different subdomain indices, the surface patch index of f
was the pair { c1->subdomain_index(), c2->subdomain_index() }, say the
pair (1, 2). Since CGAL-4.3, with
CGAL_MESH_3_NO_LONGER_CALLS_DO_INTERSECT_3, the Do_intersect functor of
the domain is no longer called, and only Construct_intersection. If the
bissection eventually found out that the bissection ended up between the
volumes labeled 1 and 3, then the returned surface patch index was
{1,3}, instead of {1,2}. That commit fixes that "bug", and restores
the behavior of CGAL-4.2.
2014-02-04 12:33:59 +01:00
Laurent Rineau 2a86c88732 Add an assertion 2014-02-03 18:18:05 +01:00
Laurent Rineau 777b7e8800 Fix whitespace, in three lines 2014-02-03 17:44:27 +01:00
Laurent Rineau 2189f6e3d3 Fix a warning (unused local typedef) 2014-02-03 17:43:48 +01:00
Laurent Rineau 9fd6f2c539 Fix a compilation error
When CGAL_MESH_3_NO_LONGER_CALLS_DO_INTERSECT_3 is not defined (it is
defined by default by <CGAL/Mesh_3/config.h>), there was a compilation
error.
2014-02-03 17:40:41 +01:00
Jane Tournois f0b11abe87 Merge branch 'Mesh_3-fix_perturber_slivers_empty_bug-GF-rebased' of ssh://scm.cgal.org/var/git/cgal into Mesh_3-fix_perturber_slivers_empty_bug-GF-rebased 2014-01-31 17:33:43 +01:00
Jane Tournois 136f0ef1d1 avoid removing cells and facets twice from c3t3
these will be removed by move_point_topo_change_conflict_zone_known
anyway
2014-01-31 17:32:17 +01:00
Jane Tournois c0423f1da0 remove a function which has become useless 2014-01-31 17:24:33 +01:00
Laurent Rineau 652347ba8d Better version of verify_surface()
It now checks if the surface patch index of a facet has changed. And it
only call the checker once per facet, instead of two.
2014-01-31 16:47:13 +01:00
Laurent Rineau 680e0bfe49 New options and result types for Update_c3t3::operator()
- Update_c3t3::operator()(Cell_handle) returns a
  boost::optional<Subdomain_index> instead of a Boolean.

- Update_c3t3::operator()(Facet) returns a
  boost::optional<Surface_patch_index> instead of a Boolean.

- Update_c3t3::operator()(Facet) gets a new option that allows to update
  the facet surface center, without updating the c3t3 itself.
2014-01-31 16:39:08 +01:00
Laurent Rineau c833ffc2e1 Additional assertion in restore_from_cells_backup
When restore_from_cells_backup() is called, one verifies that all the
backuped values are used.
2014-01-31 14:43:18 +01:00
Laurent Rineau 7b9a9ce50c Merge remote-tracking branch 'origin/Mesh_3-fix_perturber_slivers_empty_bug-GF-rebased' into Mesh_3-fix_perturber_slivers_empty_bug-GF-rebased
Conflicts:
	Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h
2014-01-31 14:29:38 +01:00
Jane Tournois 53b5ea0a27 complete Update_c3t3 with remove_from_complex when appropriate 2014-01-31 14:27:57 +01:00
Laurent Rineau d497281da1 Rename a variable 'vertex' to 'old_vertex' for consistency 2014-01-31 14:27:52 +01:00
Jane Tournois 93d89ed8c4 complete update of c3t3
using Update_c3t3 or restore_from_cells_backup, allow updaters
to remove cells and facets from the c3t3
2014-01-31 11:41:27 +01:00
Jane Tournois c2d55d967e fix update_mesh_no_topo_change
valid_move(c3t3_cells(conflict_cells)) was computed using the outdated
c3t3-ness of cells
Now c3t3 update is done iff the surface has not been broken, and
new sliver_criterion values are computed on updated cells
2014-01-31 11:31:01 +01:00