Functions to round segments or polygons safely.
|
| template<class Traits , class InputIterator , class OutputContainer > |
| void | CGAL::snap_rounding_2 (InputIterator begin, InputIterator end, OutputContainer &output_container, typename Traits::NT pixel_size, bool do_isr=true, bool int_output=true, unsigned int number_of_kd_trees=1) |
| |
| template<class SegmentRange , class OutputPolylineIterator , class NamedParameters = parameters::Default_named_parameters> |
| OutputPolylineIterator | CGAL::snap_rounding_2 (const SegmentRange &segments, OutputPolylineIterator out, const NamedParameters &np=parameters::default_values()) |
| | subdivides and rounds a range of segments so that they are pairwise disjoint in their interiors.
|
| |
| template<class SegmentRange , class OutputSegmentIterator , class NamedParameters = parameters::Default_named_parameters> |
| OutputSegmentIterator | CGAL::snap_rounding_2 (const SegmentRange &segments, OutputSegmentIterator out, const NamedParameters &np=parameters::default_values()) |
| | subdivides and rounds a range of segments so that they are pairwise disjoint in their interiors.
|
| |
| template<class PolygonRange , class OutputPolygonIterator , class NamedParameters = parameters::Default_named_parameters> |
| OutputPolygonIterator | CGAL::snap_rounding_2 (const PolygonRange &polygons, OutputPolygonIterator out, const NamedParameters &np=parameters::default_values()) |
| | subdivides and rounds a range of polygons so that their boundary segments are pairwise disjoint in their interiors.
|
| |
◆ snap_rounding_2() [1/4]
template<class PolygonRange , class OutputPolygonIterator , class NamedParameters = parameters::Default_named_parameters>
| OutputPolygonIterator CGAL::snap_rounding_2 |
( |
const PolygonRange & |
polygons, |
|
|
OutputPolygonIterator |
out, |
|
|
const NamedParameters & |
np = parameters::default_values() |
|
) |
| |
#include <CGAL/Snap_rounding_2.h>
subdivides and rounds a range of polygons so that their boundary segments are pairwise disjoint in their interiors.
If the input polygons are disjoint, the output polygons remain non-overlapping, although they may share vertices or edges. Each output polygon is free of self-intersections but may present pinched sections.
By default, this function rounds on double precision coordinates using CGAL::vertical_slab_snap_rounding_2(). Other rounding schemes or methods can be used by providing a geom_traits that is model of VerticalSlabSnapRoundingTraits_2 or HotPixelSnapRoundingTraits_2.
- Template Parameters
-
- Parameters
-
| polygons | the range of input polygons |
| out | the output inserter |
| np | an optional sequence of Named Parameters including the one listed below |
- Optional Named Parameters
-
- Warning
- a convex input polygon might no longer be convex after rounding.
◆ snap_rounding_2() [2/4]
template<class SegmentRange , class OutputPolylineIterator , class NamedParameters = parameters::Default_named_parameters>
| OutputPolylineIterator CGAL::snap_rounding_2 |
( |
const SegmentRange & |
segments, |
|
|
OutputPolylineIterator |
out, |
|
|
const NamedParameters & |
np = parameters::default_values() |
|
) |
| |
#include <CGAL/Snap_rounding_2.h>
subdivides and rounds a range of segments so that they are pairwise disjoint in their interiors.
The output is a sequence of polylines, where each polyline corresponds to an input segment.
Per default, this function rounds on double precision coordinates using CGAL::vertical_slab_snap_rounding_2(). Other rounding schemes or methods can be used by providing a geom_traits that is model of VerticalSlabSnapRoundingTraits_2 or HotPixelSnapRoundingTraits_2.
- Template Parameters
-
| SegmentRange | model of a ConstRange whose iterator is model of ForwardIterator and whose value_type is geom_traits::Segment_2, where the type of geom_traits is detailed by np::geom_traits. |
| OutputPolylineIterator | model of OutputIterator defining a container_type, where container_type::value_type must be a type that provides a push_back(Point_2) function. |
| NamedParameters | a sequence of Named Parameters |
- Parameters
-
| segments | the input segment range |
| out | the output inserter |
| np | an optional sequence of Named Parameters including the one listed below |
- Optional Named Parameters
-
◆ snap_rounding_2() [3/4]
template<class SegmentRange , class OutputSegmentIterator , class NamedParameters = parameters::Default_named_parameters>
| OutputSegmentIterator CGAL::snap_rounding_2 |
( |
const SegmentRange & |
segments, |
|
|
OutputSegmentIterator |
out, |
|
|
const NamedParameters & |
np = parameters::default_values() |
|
) |
| |
#include <CGAL/Snap_rounding_2.h>
subdivides and rounds a range of segments so that they are pairwise disjoint in their interiors.
The output is a sequence of segments.
Per default, this function rounds on double precision coordinates using CGAL::vertical_slab_snap_rounding_2(). Other rounding schemes or methods can be used by providing a geom_traits that is model of VerticalSlabSnapRoundingTraits_2 or HotPixelSnapRoundingTraits_2.
- Template Parameters
-
| SegmentRange | model of a ConstRange whose iterator is model of ForwardIterator and whose value_type is geom_traits::Segment_2, where the type of geom_traits is detailed by np::geom_traits. |
| OutputSegmentIterator | model of OutputIterator defining a container_type, where container_type::value_type is geom_traits::Segment_2. |
| NamedParameters | a sequence of Named Parameters |
- Parameters
-
| segments | the input segment range |
| out | the output inserter |
| np | an optional sequence of Named Parameters including the one listed below |
- Optional Named Parameters
-
◆ snap_rounding_2() [4/4]
template<class Traits , class
InputIterator , class OutputContainer >
| void CGAL::snap_rounding_2 |
( |
InputIterator |
begin, |
|
|
InputIterator |
end, |
|
|
OutputContainer & |
output_container, |
|
|
typename Traits::NT |
pixel_size, |
|
|
bool |
do_isr = true, |
|
|
bool |
int_output = true, |
|
|
unsigned int |
number_of_kd_trees = 1 |
|
) |
| |
#include <CGAL/Snap_rounding_2.h>
- Deprecated:
- This function is deprecated since CGAL 6.2, use newer API of
CGAL::snap_rounding_2() or CGAL::hot_pixel_snap_rounding_2()
- Template Parameters
-
| Traits | must be a model of HotPixelSnapRoundingTraits_2. |
| InputIterator | must be an iterator with value type Traits::Segment_2. |
| OutputContainer | must be a container with a method push_back(const OutputContainer::value_type& c), where OutputContainer::value_type must be a container with a method push_back(const Traits::Point_2& p) |
- Parameters
-
| begin,end | denote the iterator range of the input segments. |
| output_container | is a reference to a container of the output polylines. Since a polyline is composed of a sequence of points, a polyline is a container itself. |
| pixel_size | denotes the pixel size w. The plane will be tiled with square pixels of width w such that the origin is the center of a pixel. pixel_size must have a positive value. |
| do_isr | determines whether to apply ISR or SR. |
| int_output | If set to true, the output coordinates are expressed in the integer grid (pixel indices). Otherwise, they are given in the input coordinate system. |
| number_of_kd_trees | The seventh parameter is briefly described later on this page; for a detailed description see [3]. |
- Examples
- Snap_rounding_2/snap_rounding_to_double.cpp.