Commit Graph

547 Commits

Author SHA1 Message Date
Aymeric PELLE 9f11f46077 Merge branch 'Periodic_3_mesh_3-Extended_mesh_3-MBogdanov'
This small feature adds a new constructor in Labeled_mesh_domain_3 and
a new function wrapper. A Labeled_mesh_domain_3 can be built from an
Iso_cuboid_3 now.
(cf. https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/New_constructor_in_Label_mesh_domain_3_and_new_function_wrapper)
The new wrapper, Implicit_multi_domain_to_labeling_function_wrapper, is a
helping class to get a function with integer values labeling the
components of a multi-domain. This small feature was successfully tested in
the internal release CGAL-4.5-Ic-45.
Approved by the Release Manager.

Conflicts:
	Installation/changes.html
2014-05-21 18:01:42 +02:00
Aymeric PELLE 566ad109eb Use CGAL macros for indicating deprecated headers. 2014-05-16 13:40:49 +02:00
Laurent Rineau 1ec6cd429a Be able to deal with Patch_id=pair<int,int>
So far, the files
  <CGAL/Mesh_3/Detect_features_in_polyhedra.h>
  <CGAL/Mesh_polyhedron_3.h>
were assuming that the Patch_id was an integral type. Now they assumes
that it is either an integral type, or a pair of integral types.
2014-05-15 10:57:03 +02:00
Aymeric PELLE 09e56c5bfd Fix some warnings for Windows.
In the deprecated class Implicit_vector_to_labeled_function_wrapper,
an implicit conversion from an unsigned int to a signed int caused a warning.
On windows, pragma message needs parenthesis.
2014-05-14 19:42:04 +02:00
Aymeric PELLE 0fd7474b06 Add two pragmas because the warning macro isn't available with all platforms. 2014-05-13 19:47:08 +02:00
Jane Tournois e97506adb7 Merge branch 'Triangulation_3-regular_cell_base_with_circumcenter-GF'
Resolve conflicts in Mesh_3/include/CGAL/Mesh_3/config.h

This branch implements the small feature described here :
https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/circumcenter%28%29_in_RT3_cell_base

It makes consistent implementations of dual(cell) in RT3 and DT3 :
they both return cell->circumcenter(gt) now

Approved by the release manager
2014-05-13 14:52:13 +02:00
Laurent Rineau 80ec1ff80b Merge branch 'Mesh_3-fix_Mesh_3_CGAL_4.3-lrineau'
Fix bugs introduced in CGAL-4.3.

Tested in CGAL-4.5-Ic-35

Approved by the release manager
2014-05-12 14:42:40 +02:00
Laurent Rineau cd94d98168 Revert "Revert an incorrect push I did"
This reverts commit 33cb60cc29.
2014-05-07 15:24:25 +02:00
Laurent Rineau 33cb60cc29 Revert an incorrect push I did 2014-05-07 15:18:53 +02:00
Laurent Rineau bcefbcb8bd Merge remote-tracking branch 'origin/Periodic_3_mesh_3-Extended_mesh_3-MBogdanov' into Periodic_3_mesh_3-Extended_mesh_3-MBogdanov 2014-05-07 13:56:27 +02:00
Laurent Rineau 68c367a2df Revert "Revert "Merge branch 'Periodic_3_mesh_3-Extended_mesh_3-MBogdanov'""
This reverts commit 2e58135751.
2014-05-07 13:56:20 +02:00
Laurent Rineau 57050c3470 Fix another bug introduced in CGAL-4.3
An assertion was added, but that assertion cannot work if the set of
initial points is collinear (dimension 1).
2014-05-07 12:05:43 +02:00
Laurent Rineau de44fdf27e Fix a bug introduced in CGAL-4.3
The Mesh_3 experimental feature "PROTECTION_NON_LINEAR" was not
correctly disabled when the development branch of Mesh_3 was merged into
CGAL-4.3.
2014-05-07 12:05:43 +02:00
Aymeric PELLE 0264e0a14c Add tests for old versions of Labeled_mesh_domain_3 and Implicit_vector_to_labeled_function_wrapper. 2014-04-29 19:44:09 +02:00
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
Laurent Rineau 2e58135751 Revert "Merge branch 'Periodic_3_mesh_3-Extended_mesh_3-MBogdanov'"
This reverts commit 2ec2fb3c8e, reversing
changes made to 2ed7784521.
2014-04-16 17:37:04 +02:00
Aymeric PELLE 2ec2fb3c8e Merge branch 'Periodic_3_mesh_3-Extended_mesh_3-MBogdanov'
- This small feature adds a method to locate point with inexact predicates in
  Periodic_3_triangulation_3.
  (cf. https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Add_inexact_locate_in_Periodic_3_triangulation_3)
- Tested in CGAL-4.5-Ic-12
- Approved by the Release Manager.
2014-04-16 16:22:31 +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
Laurent Rineau 60016bec63 Remove an extra ';', added by error in previous commits 2014-04-14 14:13:11 +02:00
Laurent Rineau e8134e5f25 Merge branch 'Mesh_3-fix_warnings-lrineau'
Fix warnings about unused variables/parameters

Use pragmas, when that is needed (for Boost named parameters)

Tested in CGAL-4.5-Ic-7.

Approved by the Release Manager.
2014-04-11 11:33:11 +02:00
Laurent Rineau cf5d6e041e Use pragmas to fix warnings 2014-04-10 20:06:04 +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
Laurent Rineau 6649036c80 Fix a bug in Mesh_3
Benjamin Kehlet reported on CGAL-discuss (Tue, 25 Mar 2014 13:45:24
+0100) that Mesh_3 was not able to mesh the simple following OFF:

OFF
4 4 0

0 0 0
0 0 1
0 1 0
1 0 0
3  3 1 2
3  0 1 3
3  0 3 2
3  0 2 1

The unit tetrahedron!!

The bug was in the robust weighted circumcenter traits. The traits
checks that the circumcenter of four points is at least in the circum
sphere of the four points. But for weighted points, that is
"power_test" that must be tested, instead of "side_of_oriented_sphere".
2014-03-31 15:44:59 +02:00
Jane Tournois 673d1f03cd Merge branch 'Mesh_3-fix_set_facet_surface_center-jtournois'
This branch fixes a potential bug, that the facet surface center
is sometimes not updated properly in mirror_facet(f) when it is in f.

Tested in testsuite CGAL-4.4-Ic-155

Approved by the release manager
2014-03-27 11:16:36 +01: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
Andreas Fabri 5c5aa5d702 Workaround for an ICE with VC12
The return type optional<tuple...> leads to the crash
One workaround had been to move the body of the function
into the class.
As the function is private I instead return through a reference instead.
2014-03-21 10:27:59 +01:00
Andreas Fabri e4b2e1997e Workaround for VC12' new (and not yet well understood) problem with 'using' 2014-03-21 10:26:51 +01:00
Andreas Fabri b80f5f6ef4 Move the default constructor in the section with hand written variadic templates 2014-03-21 10:24:27 +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
Jane Tournois ea1c29e9d3 bug fix : set_facet_surface_center needs to be done in mirror_facet too 2014-03-20 10:16:22 +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 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 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