Use an additional optional parameter (SDGLx) in the segment
Delaunay hierarchy template to be able to change the segment
Delaunay graph class that is used per level of the hierarchy.
Since this is the last optional parameter, there is no change
for users of the L2 segment Delaunau graph and hierarchy.
This parameter is necessary to support the Linf segment Delaunay
graph and hierarchy. Again, it is intended that the user of the
Linf classes does not have to be aware of this parameter.
Some additional classes are declared as friends of
Segment_Delaunay_graph_2.
If construction templates for bisectors (line, segment, ray)
exist in the traits, then use them, otherwise, use the L2 traits.
The check is implemented by a type Has_bisector_constructions_type
that might be included in the traits and using the
"Substitution failure is not an error" (SFINAE) principle.
The oriented_side predicate is used with a face corresponding to
the interior of a segment that is split by a vertex contained in
the segment. For an infinite such face the code has to become more
general in order to accomodate the Linf case. For example, in L2
the number of such infinite faces is 0, 2, or 4, whereas in Linf,
it can be any even non-negative integer.
Moreover, the existing code for infinite faces is L2 specific and
ignores the interior of the segment for its decision. In Linf the
interior of the segment is important. For this reason, there is a
new case of the predicate that is general enough to also
accomodate Linf:
// computes the oriented side of the Voronoi vertex of s1, s2, inf
// wrt the line that passes through the point p and its direction
// is the direction of the supporting line of s, rotated by 90
// degrees counterclockwise.
Oriented_side operator()(const Site_2& s1, const Site_2& s2,
const Site_2& s, const Site_2& p) const
The Oriented_side_C2 class is also adapted for L2 to use the new
form of the predicate, which internally calls the old form.
Use vertex conflict instead of orientation in insert_third for
the case of three points. This change is to make SDG more L2
agnostic.
Given are three point sites s1, s2, s3.
The orientation of (s1,s2,s3) is not collinear if and only if the
two vertex conflict quadruples (s1,s2,inf,s3) and (s2,s1,inf,s3)
are of opposite signs.
The orientation of (s1,s2,s3) is right turn if and only if the
vertex conflict quadruple (s2,s1,inf,s3) is NEGATIVE.
Successfully test in CGAL-4.3-Ic-102
This commit fixes a few issues in the doxygen documentation and in particular
the figure for the generation of latex doc.
Approved by the interim release manager
xplain why this merge is necessary,
this happens if you have an empty line or the text directly after /!*
to find them in the generated documentation, grep for "pre class=\"fragment\""
(a few of them are legitimate however)
This commit also updates the respective mock-headers when the
corresponding .tex documentation has changed. This has been the case for:
AABB_tree/doc_tex/AABB_tree_ref/AABBGeomTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABBTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABB_traits.tex
Mesh_3/doc_tex/Mesh_3_ref/parameters_features.tex
Mesh_3/doc_tex/Mesh_3_ref/parameters_no_features.tex
Number_types/doc_tex/NumberTypeSupport_ref/Interval_nt.tex
Number_types/doc_tex/NumberTypeSupport_ref/Lazy_exact_nt.tex
Spatial_searching/doc_tex/Spatial_searching_ref/Search_traits_2.tex
Spatial_searching/doc_tex/Spatial_searching_ref/Search_traits_3.tex
Triangulation_2/doc_tex/Triangulation_2_ref/Constrained_Delaunay_triangulation_2.tex
That is a followup-to my commit last year:
| ------------------------------------------------------------------------
| r63198 | lrineau | 2011-04-28 19:45:22 +0200 (Thu, 28 Apr 2011) | 5 lines
|
| Try to fix my last revision about cmake_policy, with CMake-2.6.x
|
| CMake gives an error if one tries to use cmake_policy(VERSION x.y.z) if
| x.y.z is greater than the current CMake version.
|
| ------------------------------------------------------------------------
The following check:
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" VERSION_GREATER 2.6)
is useless just after a call to:
cmake_minimum_required(VERSION 2.6.2)
The script used to fix that was:
#!/usr/bin/env perl
$replacement=<<'END';
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER 2.8.3)
cmake_policy(VERSION 2.8.4)
else()
cmake_policy(VERSION 2.6)
endif()
END
while(<>) {
if(/if\("\${CMAKE_MAJOR_VERSION}.\${CMAKE_MINOR_VERSION}" VERSION_GREATER 2.6\)/) {
while(<>) {
if(/^endif\(\)/) {
print "$replacement";
while(<>) {
print;
}
exit 0
}
}
}
print;
}