Commit Graph

518 Commits

Author SHA1 Message Date
Aymeric PELLE d3dc9be69c Adds two compatibilty headers.
CGAL/Mesh_3/Labeled_mesh_domain_3.h
CGAL/Mesh_3/Implicit_to_labeled_function_wrapper.h

So, some branches in development using theses features won't be broken.
2014-04-16 20:05:53 +02:00
Aymeric PELLE a12fe7b728 Some classes are moved from the namespace CGAL::Mesh_3 to the namespace CGAL.
Labeled_mesh_domain_3.
Implicit_to_labeling_function_wrapper.
Implicit_vector_to_labeling_function_wrapper.
Implicit_multi_domain_to_labeling_function_wrapper.
2014-04-16 19:57:21 +02:00
Aymeric PELLE f008c28f7f The implicit wrapper had bad template parameter in test_labeled_mesh_domain_3.
Fix a warning : explicit conversion for the return value in
Implicit_multi_domain_to_labeling_function_wrapper.
2014-04-14 18:41:16 +02:00
Aymeric PELLE 30e71be043 Labeled_mesh_domain_3.h and Implicit_to_labeling_function_wrapper are moved.
These files are moved to Mesh_3/include/CGAL/ because they are documented,
so they can be used by users.
2014-04-07 19:12:30 +02:00
Aymeric PELLE 477f0a4ac1 Add a test for Implicit_multi_domain_to_labeling_function_wrapper.
Fix a bug with the constructor taking one parameter only.
2014-04-01 16:30:32 +02:00
Aymeric PELLE 0e9e80b872 Point type is deduced from the ImplicitFunction in the new wrapper.
In Implicit_multi_domain_to_labeling_function_wrapper, the point
type is deduced if ImplicitFunction is a pointer function, else it must
be a nested type of ImplicitFunction.
BGT isn't required anymore for this wrapper.
The constructor of Implicit_multi_domain_to_labeling_function_wrapper taking
only one argument has a new way for auto-making the vector of vector of
positions. In this case, the union of the components equals to the union
of the functions.
2014-03-31 18:42:47 +02:00
Aymeric PELLE c15ff1c19c New implementation of Implicit_multi_domain_to_labeling_function_wrapper.
The user can indicate more precisely which components he wants.
For each component that the user want, he must provide the matching
vector of signs. All these vector of positions must be put in a vector
passed as second parameter to the constructor of that wrapper.
Doc and examples are updated.
2014-03-26 19:02:27 +01:00
Aymeric PELLE 31767a8411 Rename ..._labeled_function_wrapper to ..._labeling_function_wrapper.
Implicit_vector_to_labeled_function_wrapper is deprecated.
Examples, tests, docs are updated.
2014-03-25 15:25:42 +01:00
Aymeric PELLE 0d1f136b85 New constructor for Implicit_multi_domain_to_labeled_function_wrapper.
This new constructor takes only one parameter : a vector of functions.
The mask will be automatically built with positive signs.
2014-03-20 16:18:18 +01:00
Aymeric PELLE 4891e7dadb Fix : Remove periodic_cuboid method in Labeled_mesh_domain_3. 2014-03-05 21:37:08 +01:00
Aymeric PELLE 3c0316e3a2 Add a new type in Implicit_multi_domain_to_labeled_function_wrapper.
Add the type definition Function_vector in the wrapper
Implicit_multi_domain_to_labeled_function_wrapper.
2014-03-04 18:30:50 +01:00
Aymeric PELLE 355ab2d8cf Fix : #include <boost/dynamic_bitset.hpp> was missing.
boost::dynamic_bitset was used in Implicit_to_labeled_function_wrapper.h,
but the header file wasn't never included.
2014-03-03 10:57:09 +01:00
Aymeric PELLE 5df506fe5b A new wrapper is added : Implicit_multi_domain_to_labeled_function_wrapper.
This wrapper allow the user to define a domain following several functions.
A point will be in the domain if the result sign of each function
matches the ones expected by the user.
2014-02-28 14:07:46 +01:00
Aymeric PELLE 1515e3bb76 The old changes in Implicit_mesh_domain_3 are obsolete.
Periodic domain isn't based on Implicit_mesh_domain_3 anymore.
So, these modifications making Implicit_mesh_domain_3 compatible with
periodic cases are obsolete.
2014-02-28 12:46:42 +01:00
Aymeric PELLE 5964ef650f Labeled_mesh_domain_3 has a new constructor taking an Iso_cuboid.
In periodic cases, we may want to pass an bouding box with exact coordinates.
But, this is impossible to do with Bbox_3 which always has double
coordinates.
2014-02-28 07:58:01 +01:00
Aymeric PELLE 922d7cd439 A new wrapper is added : Implicit_multi_domain_to_labeled_function_wrapper.
This wrapper allow the user to define a domain following several functions.
A point will be in the domain if the result sign of each function
matches the ones expected by the user.
2014-02-28 07:55:35 +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
Jane Tournois 2bbf85a79f remove useless function 2014-01-31 10:37:49 +01:00
Jane Tournois 0b1b21bbc2 reverse comparison 2014-01-31 10:32:04 +01:00
Jane Tournois 9d64447700 fix Cell_data_backup
vertex indices in Cell_from_ids should not be sorted,
otherwise, what is stored in surface_patch_index[i]
does not correspond to the right i.
Copy indices to have them :
- in the original order
- and sorted (for set::find)
2014-01-30 18:36:49 +01:00
Jane Tournois e576b213b0 move testing code to CGAL_assertion_code 2014-01-30 18:31:29 +01:00
Jane Tournois 3e395078c3 backup of cells should not be done entirely for newly created cells 2014-01-30 18:30:09 +01:00
Jane Tournois 2cf4d6fa62 complete Update_c3t3 with remove_from_complex when appropriate 2014-01-30 18:25:21 +01:00
Laurent Rineau 271ae30833 Fix a warning about an unused type 2014-01-30 17:14:19 +01:00
Jane Tournois 9ac3121293 attempts to fix the bug
- move fill_cells_backup to before computing anything
- cells backup of sliver_value only needs cache to be valid
- comment improvement
2014-01-28 09:56:35 +01:00
Jane Tournois 976b73e1e5 make assertion stronger, and code simpler 2014-01-27 14:17:14 +01:00
Jane Tournois 385090cc72 remove break statement
it should have been removed at the same time as the double loop.
Improve the use of std::set::find,
and add assertion code.
2014-01-24 15:25:24 +01:00
Jane Tournois 5096f05990 remove commented assertion 2014-01-23 10:59:43 +01:00
Jane Tournois a48a0d36b7 remove useless end of lines whitespaces 2014-01-17 17:19:51 +01:00
Jane Tournois 24a5d601aa order IDs in Cell_from_ids to improve recovery (avoid quadratic searching) 2014-01-17 16:39:03 +01:00
Jane Tournois fa21907b3d fix the use of cpp11, and warnings.
note : use a array<std::size_t,4> instead of a map<std::size_t, std::size_t>
2014-01-16 11:35:05 +01:00
Jane Tournois bae5f52c03 remove template parameter that allows not to store c3t3 info. It is actually always needed to do so 2014-01-16 11:35:05 +01:00
Jane Tournois aa61073ef5 make the assertion more precise 2014-01-16 11:35:04 +01:00