That is a followup of the following two commits. The "polyline CDT" has
been branched from CDT before those patches were in CGAL:
| commit 49404f75f5
| Author: Laurent Rineau <Laurent.Rineau__CGAL@normalesup.org>
| Date: Thu Jun 28 09:16:23 2012 +0000
|
| Improved patch
|
| The Constraint_hierarchy is now templated by T, an anonymous type (that is
| a Vertex_handle when the constraint hierarchy is used in Ct_plus_2), and a
| Compare operator, that have a comparison member function:
| bool operator()(T, T);
|
| In Ct_plus_2, the Compare operator passed to the Constraint_hierarchy
| compares the vertices with a Less_xy_2, implemented by Less_x_2, and
| Less_y_2.
|
| The test test/Triangulation_2/include/CGAL/_test_cls_hierarchy_2.h has been
| tweaked, to check that the type T passed in the hierarchy no longer needs
| to have a point() member function, as it was before May 2010 (when GF has
| determinized the Cdt_plus_2 using too simple patch).
|
| Notes:
| r70132 branches/features/Triangulation_2_UseTraitsInHierarchy-GF
| commit 7cb640d05d
| Author: Andreas Fabri <Andreas.Fabri@geometryfactory.com>
| Date: Mon Jun 25 10:11:56 2012 +0000
|
| The Constraint_hierarchy_2 gets an additional LessXY_2 functor as template argument so that it no longer applies operator<(Point,Point)
|
| Notes:
| r70018 branches/features/Triangulation_2_UseTraitsInHierarchy-GF
to do so, use the Dispatch_output_iterator
- Constrained Voronoi diagram is now a class that has a pointer to a CDT
as member. We don't need an extra CDT anymore
- update examples
- also update the CDT 2 demo to see Voronoi cells, that are only valid when the
triangulation is Delaunay (constrained or not)
- in DT2, it returns the Voronoi cell as a Polygon_2
- in CDT2, it returns the - possibly clipped - "bounded Voronoi cell"
see Seidel1988 or http://hal.inria.fr/docs/00/54/68/79/PDF/centroidal-vd.pdf
also add an example that computes the full BVD
To avoid cascading the intersection is done with endpoints of segment constraints
For polyline constraints we cannot take the endpoints of the polyline
but must find input points of the polyline.
With g++48, with -Wall -O3, there was the following warning:
include/CGAL/Weighted_point.h:137:5: warning: '*((void*)& p +8)' may be used uninitialized in this function [-Wmaybe-uninitialized]
wp = Weighted_point<Point,Weight>(p,w);
^
include/CGAL/Weighted_point.h:130:9: note: '*((void*)& p +8)' was declared here
Point p;
^
include/CGAL/Weighted_point.h:137:5: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
wp = Weighted_point<Point,Weight>(p,w);
^
Trivial bug-fix for master.