CGAL::y_monotone_partition_is_valid_2
Definition
Function that determines if a given set of polygons represents
a valid
y-monotone partitioning for a given sequence of points that
define a simple, counterclockwise-oriented polygon.
A valid partition is one in
which the polygons are nonoverlapping and the union of the polygons is the
same as the original polygon and each polygon is
y-monotone
#include <CGAL/partition_is_valid_2.h>
template<class InputIterator, class ForwardIterator, class Traits>
|
bool
|
y_monotone_partition_is_valid_2 ( |
InputIterator point_first,
InputIterator point_beyond,
ForwardIterator poly_first,
ForwardIterator poly_beyond,
Traits traits = Default_traits) |
|
| |
determines if the polygons in the range [poly_first, poly_beyond)
define a valid y-monotone partition of the polygon represented by the points
in the range [point_first, point_beyond).
The function returns true iff the partition is valid and otherwise
returns false.
Precondition: | Points in the range [point_first, point_beyond) define
a simple, counterclockwise-oriented polygon. |
|
Requirements
- Traits is a model of the concept
YMonotonePartitionIsValidTraits_2
.
- InputIterator::value_type should be Traits::Point_2,
which should also be the type of the points stored in an object
of type Traits::Polygon_2.
- ForwardIterator::value_type should be
Traits::Polygon_2.
The default traits class Default_traits is Partition_traits_2,
with the representation type determined by InputIterator::value_type.
See Also
CGAL::y_monotone_partition_2
CGAL::is_y_monotone_2
CGAL::partition_is_valid_2
CGAL::Partition_is_valid_traits_2<Traits, PolygonIsValid>
Implementation
This function uses the function partition_is_valid_2 together with
the function object Is_y_monotone_2 to determine if each polygon
is y-monotone or not. Thus the time required is O(n log n + e log e)
where n is the total number of vertices of the partition polygons and
e is the total number of edges.
Example
See the example presented with the function y_monotone_partition_2
for an illustration of the use of this function.