The previous implementation of `get_least_square_surface_plane` and
`project_on_surface`, in `C3T3_helpers`, was using uninitialized
values. Now, it uses `boost::optional`.
The MSVC is confused by the name `Function` being at the same time a
template parameter and a typedef of the base class.
```
...\include\CGAL/Implicit_mesh_domain_3.h(73): error C2248: 'CGAL::Labeled_mesh_domain_3<BGT,int,std::pair<int,int>>::Function': cannot access private typedef declared in class 'CGAL::Labeled_mesh_domain_3<BGT,int,std::pair<int,int>>'
with
[
BGT=K
]
```
However, one cannot store a function type directly, but only *pointers* to
function types. So I used Boost MPL to discriminate between function types
and other callable (such as lambdas or functors, that can be copied).
'corners_incidence_map_' was a map<point, surface_patch_index>.
'corners_indidences_' is a map<Corner_index, surface_patch_index>.
The first map was only used in Lipschitz_sizing, at a place where
we are given a point and a MeshDomain::Index.
The first map was filled in 'insert_edge()', which calls
'compute_corners_incidences()' (which fills 'corners_incidences').
Thus, we can simply grab the Corner_index and use the second map
immediately.
'corners_incidence_map_' was a map<point, surface_patch_index>.
'corners_indidences_' is a map<Corner_index, surface_patch_index>.
The first map was only used in Lipschitz_sizing, at a place where
we are given a point and a MeshDomain::Index.
The first map was filled in 'insert_edge()', which calls
'compute_corners_incidences()' (which fills 'corners_incidences').
Thus, we can simply grab the Corner_index and use the second map
immediately.
TriangulationCellBase_3 does not request a circumcenter;
DelaunayTriangulationCellBase_3 does.
Delaunay_triangulation_3 only compiled because
Triangulation_cell_base_3 (and Triangulation_ds_cell_base_3 !)
provided circumcenter() operators and DT3 inherited T3's TDS.
- The circumcenter() functions are removed where they shouldn't exist
- DT3 uses DT_cell_base_3 as cell base instead of T_cell_base_3
- Concepts/Classes that supposedly only required TriangulationCellBase_3
and then built Delaunay triangulations with that (Alpha Shapes, etc.)
are upgraded to request DelaunayTriangulationCellBase_3 (anyway, it
wouldn't compile if you actually provided a model of
TriangulationCellBase_3)
- Fixed various wrong templates in classes/concepts such as
MeshVertexBase_3 not refining RegularTriangulationVertexBase_3
and (only in the doc) defaulting to Triangulation_vertex_base_3
- Removed the deprecated class (for 4+ years) T_cell_base_with_circumcenter
```
[ 50%] Building CXX object CMakeFiles/generic_random_test.dir/generic_random_test.cpp.o
/usr/local/bin/c++ -DCGAL_TEST_SUITE=1 -DCGAL_USE_GMP -DCGAL_USE_MPFR -I/home/cgal_tester/build/src/cmake/platforms/Ubuntu-latest-GCC6-CXX1z/test/Generator/../../include -isystem /usr/include/x86_64-linux-gnu -I/home/cgal_tester/build/src/cmake/platforms/Ubuntu-latest-GCC6-CXX1z/test/Generator -I/home/cgal_tester/build/src/cmake/platforms/Ubuntu-latest-GCC6-CXX1z/include -I/mnt/testsuite/include -DDONT_USE_BOOST_PROGRAM_OPTIONS -Wall -Wextra -std=c++1z -frounding-math -Wall -frounding-math -o CMakeFiles/generic_random_test.dir/generic_random_test.cpp.o -c /home/cgal_tester/build/src/cmake/platforms/Ubuntu-latest-GCC6-CXX1z/test/Generator/generic_random_test.cpp
In file included from /mnt/testsuite/include/CGAL/Mesh_3/vertex_perturbation.h:35,
from /mnt/testsuite/include/CGAL/Mesh_3/Sliver_perturber.h:48,
from /mnt/testsuite/include/CGAL/perturb_mesh_3.h:35,
from /mnt/testsuite/include/CGAL/optimize_mesh_3.h:32,
from /mnt/testsuite/include/CGAL/refine_mesh_3.h:39,
from /mnt/testsuite/include/CGAL/make_mesh_3.h:35,
from /home/cgal_tester/build/src/cmake/platforms/Ubuntu-latest-GCC6-CXX1z/test/Generator/generic_random_test.cpp:9:
/mnt/testsuite/include/CGAL/Mesh_3/C3T3_helpers.h: In member function 'void CGAL::Mesh_3::C3T3_helpers<C3T3, MeshDomain>::Cell_data_backup::backup_finite_cell(const Cell_handle&)':
/mnt/testsuite/include/CGAL/Mesh_3/C3T3_helpers.h:1431:48: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
const int ii = static_cast<const int>(i);//avoid warnings
^
```
https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-4.12-Ic-186/Generator/TestReport_lrineau_Ubuntu-latest-GCC6-CXX1z.gz