it collects edges incident to the internal facets of the conflict zone,
that are restricted to the surface.
For each such edge :
- if it appears once, we keep it
- if it appears twice, we don't consider it
- if it appears more than twice, we are in a non-manifold configuration,
and the move (pump) is canceled
Fix a bug in Mesh_3, when timestamps are used to compare Vertex_handle
and Cell_handle. The bug was in the class
Protect_edges_sizing_field. Once a vertex is removed from a
triangulation, the timestamp of the Vertex can change. That means that
it invalidates any future use of the original Vertex_handle.
Bug-fix for CGAL-4.5, approved by the Release Manager.
Revert "Add longer tests, with other data"
Revert "Verbose testsuite. Should be reverted later."
This reverts commit 0f592d8e0a.
This reverts commit a8e6764c97.
The implementation of the class template Protect_edges_sizing_field was
not correct when time stamps are used for Vertex_handle. The issue is
that the time stamp of a vertex change when one do:
tr.remove(v);
v = tr.insert(point);
The vertex pointed by 'v' is re-used by the TDS, but the time stamp of
the vertex does change.
we still don't backup infinite cells because the infinite vertex does not have
a proper vertex ID (i.e. meshing_info())
However the facet data should be restored in Delaunay-restricted facets that
belong to an infinite cell (i.e. mirror facets of restricted facets that
belong to the convex hull)
All non-ASCII files should be encoded in UTF-8. So far, the ZSH script
`Scripts/developer_scripts/detect_wrong_encoding` detects wrong encoding
in source/header files of include/, src/, and doc/.
Create an integration branch for 'Mesh_3-compare_index-GF': a new branch
created from 'master', where I merged the previous version of
'Mesh_3-compare_index-GF'.
There was a conflict with two features recently merged into 'master' for
CGAL-4.5:
- the move of two files from include/CGAL/Mesh_3/ to include/CGAL/. See
the small feature:
http://cgal.org/wiki/Features/Small_Features/New_constructor_in_Label_mesh_domain_3_and_new_function_wrapper
- parallelism for Triangulation_3 and Mesh_3:
http://cgal.org/wiki/Features/Parallel_Mesh_3
Conflicts:
Combinatorial_map/include/CGAL/Cell_attribute.h
Mesh_3/include/CGAL/Implicit_mesh_domain_3.h
Mesh_3/include/CGAL/Labeled_image_mesh_domain_3.h
Mesh_3/include/CGAL/Mesh_3/Sliver_perturber.h
Mesh_3/include/CGAL/Polyhedral_mesh_domain_3.h
Mesh_3/test/Mesh_3/test_meshing_3D_image.cpp
Mesh_3/test/Mesh_3/test_meshing_polyhedron.cpp
Mesh_3/test/Mesh_3/test_meshing_polyhedron_with_features.cpp
Polyhedron/demo/Polyhedron/Polyhedron_type.h
STL_Extension/include/CGAL/Compact_container.h
STL_Extension/test/STL_Extension/test_Compact_container.cpp
I also modified the following files during the conflict resolution:
Linear_cell_complex/include/CGAL/Cell_attribute_with_point.h
Mesh_3/include/CGAL/Labeled_mesh_domain_3.h
Mesh_3/include/CGAL/Polyhedral_mesh_domain_with_features_3.h
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
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.
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.
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.
In some rare cases, we need to switch to exact computation for the circumcenter.
Some code for this computation is now moved from RT3 to Refine_facets.
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.
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.
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".
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
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.
it avoids using temporary CGAL::Random(0) that would be deleted
as soon as we get out of the constructor
+ make examples deterministic and tests not (all but test_meshing_determinism)
This reverts commit 1c1b65ae39.
The random generator member variable should be a CGAL::Random&, as in generators.h and
in the STL.
Also fix two constructors
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.