CGAL 5.2.1 - 2D Straight Skeleton and Polygon Offsetting
Straight Skeleton Construction Functions

Functions

template<class FT , class PointIterator , class SsK >
boost::shared_ptr< Straight_skeleton_2< SsK > > CGAL::create_exterior_straight_skeleton_2 (FT max_offset, PointIterator vertices_begin, PointIterator vertices_end, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel)
 The function create_exterior_straight_skeleton_2() creates a straight skeleton in the exterior of a 2D polygon with holes. More...
 
template<class FT , class Polygon , class SsK >
boost::shared_ptr< Straight_skeleton_2< SsK > > CGAL::create_exterior_straight_skeleton_2 (FT max_offset, const Polygon &P, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel)
 The function create_exterior_straight_skeleton_2() creates a straight skeleton in the exterior of a 2D polygon with holes. More...
 
template<class PointIterator , class HoleIterator , class SsK >
boost::shared_ptr< Straight_skeleton_2< SsK > > CGAL::create_interior_straight_skeleton_2 (PointIterator outer_contour_vertices_begin, PointIterator outer_contour_vertices_end, HoleIterator holes_begin, HoleIterator holes_end, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel)
 returns a new Straight_skeleton_2<SsK> in the interior of the 2D polygon with holes whose outer boundary is given by the point sequence [outer_contour_vertices_begin,outer_contour_vertices_end] and its holes given by [holes_begin,holes_end]. More...
 
template<class PointIterator , class SsK >
boost::shared_ptr< Straight_skeleton_2< SsK > > CGAL::create_interior_straight_skeleton_2 (PointIterator outer_contour_vertices_begin, PointIterator outer_contour_vertices_end, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel)
 returns a new Straight_skeleton_2<SsK> in the interior of the 2D polygon whose outer boundary is given by the point sequence [outer_contour_vertices_begin,outer_contour_vertices_end]. More...
 
template<class Polygon , class SsK >
boost::shared_ptr< Straight_skeleton_2< SsK > > CGAL::create_interior_straight_skeleton_2 (const Polygon &outer_contour, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel)
 returns a new Straight_skeleton_2<SsK> in the interior of the 2D polygon outer_contour. More...
 

Function Documentation

◆ create_exterior_straight_skeleton_2() [1/2]

template<class FT , class PointIterator , class SsK >
boost::shared_ptr< Straight_skeleton_2<SsK> > CGAL::create_exterior_straight_skeleton_2 ( FT  max_offset,
PointIterator  vertices_begin,
PointIterator  vertices_end,
SsK  k = CGAL::Exact_predicates_inexact_constructions_kernel 
)

#include <CGAL/create_straight_skeleton_2.h>

The function create_exterior_straight_skeleton_2() creates a straight skeleton in the exterior of a 2D polygon with holes.

The function returns a new Straight_skeleton_2<SsK> in the limited exterior of the 2D polygon P given by the point sequence [vertices_begin,vertices_end]. The skeleton in the limited exterior of P is the skeleton in the interior of a polygon Q with P as its hole and a rectangular frame F as outer boundary. The outer boundary F is constructed by enlarging the bounding box of P a distance d. d is a margin sufficiently large to allow an outer offset at distance max_offset to be obtained from this exterior skeleton, as computed by the function compute_outer_frame_margin().

Template Parameters
SsKmust be a model of Kernel.
FTmust be a model of FieldNumberType convertible to SsK::FT.
PointIteratormust be a model of InputIterator with value type InK::Point_2.
Note
Cartesian_converter is used to convert from InK::Point_2 to SsK::Point_2, if they differ.
See also
create_interior_straight_skeleton_2()
CGAL::Straight_skeleton_builder_2<Traits,Ss,Visitor>
Examples:
Straight_skeleton_2/Create_straight_skeleton_2.cpp.

◆ create_exterior_straight_skeleton_2() [2/2]

template<class FT , class Polygon , class SsK >
boost::shared_ptr< Straight_skeleton_2<SsK> > CGAL::create_exterior_straight_skeleton_2 ( FT  max_offset,
const Polygon &  P,
SsK  k = CGAL::Exact_predicates_inexact_constructions_kernel 
)

#include <CGAL/create_straight_skeleton_2.h>

The function create_exterior_straight_skeleton_2() creates a straight skeleton in the exterior of a 2D polygon with holes.

The function returns a new Straight_skeleton_2<SsK> in the limited exterior of the 2D polygon P. The skeleton in the limited exterior of P is the skeleton in the interior of a polygon Q with P as its hole and a rectangular frame F as outer boundary. The outer boundary F is constructed by enlarging the bounding box of P a distance d. d is a margin sufficiently large to allow an outer offset at distance max_offset to be obtained from this exterior skeleton, as computed by the function compute_outer_frame_margin().

Template Parameters
FTmust be a model of FieldNumberType convertible to SsK::FT.
SsKmust be a model of Kernel.
Polygonmust be a model of SequenceContainer with value type InK::Point_2 (e.g. Polygon_2<InK>) or a model of GeneralPolygonWithHoles_2 (e.g. Polygon_with_holes_2<InK>).
Note
Cartesian_converter is used to convert from InK::Point_2 to SsK::Point_2, if they differ.
See also
create_interior_straight_skeleton_2()
CGAL::Straight_skeleton_builder_2<Traits,Ss,Visitor>

◆ create_interior_straight_skeleton_2() [1/3]

template<class PointIterator , class HoleIterator , class SsK >
boost::shared_ptr< Straight_skeleton_2<SsK> > CGAL::create_interior_straight_skeleton_2 ( PointIterator  outer_contour_vertices_begin,
PointIterator  outer_contour_vertices_end,
HoleIterator  holes_begin,
HoleIterator  holes_end,
SsK  k = CGAL::Exact_predicates_inexact_constructions_kernel 
)

#include <CGAL/create_straight_skeleton_2.h>

returns a new Straight_skeleton_2<SsK> in the interior of the 2D polygon with holes whose outer boundary is given by the point sequence [outer_contour_vertices_begin,outer_contour_vertices_end] and its holes given by [holes_begin,holes_end].

Template Parameters
SsKmust be a model of Kernel.
PointIteratormust be a model of InputIterator with value type InK::Point_2.
HoleIteratormust be a model of InputIterator with value_type a model of SequenceContainer with value type InK::Point_2.
Note
Cartesian_converter is used to convert from InK::Point_2 to SsK::Point_2, if they differ.
See also
create_exterior_straight_skeleton_2()
CGAL::Straight_skeleton_builder_2<Traits,Ss,Visitor>
Examples:
Straight_skeleton_2/Create_offset_polygons_2.cpp, Straight_skeleton_2/Create_straight_skeleton_2.cpp, Straight_skeleton_2/Create_straight_skeleton_from_polygon_with_holes_2.cpp, and Straight_skeleton_2/Show_straight_skeleton.cpp.

◆ create_interior_straight_skeleton_2() [2/3]

template<class PointIterator , class SsK >
boost::shared_ptr< Straight_skeleton_2<SsK> > CGAL::create_interior_straight_skeleton_2 ( PointIterator  outer_contour_vertices_begin,
PointIterator  outer_contour_vertices_end,
SsK  k = CGAL::Exact_predicates_inexact_constructions_kernel 
)

#include <CGAL/create_straight_skeleton_2.h>

returns a new Straight_skeleton_2<SsK> in the interior of the 2D polygon whose outer boundary is given by the point sequence [outer_contour_vertices_begin,outer_contour_vertices_end].

Template Parameters
SsKmust be a model of Kernel.
PointIteratormust be a model of InputIterator with value type InK::Point_2.
Note
Cartesian_converter is used to convert from InK::Point_2 to SsK::Point_2, if they differ.
See also
create_exterior_straight_skeleton_2()
CGAL::Straight_skeleton_builder_2<Traits,Ss,Visitor>

◆ create_interior_straight_skeleton_2() [3/3]

template<class Polygon , class SsK >
boost::shared_ptr< Straight_skeleton_2<SsK> > CGAL::create_interior_straight_skeleton_2 ( const Polygon &  outer_contour,
SsK  k = CGAL::Exact_predicates_inexact_constructions_kernel 
)

#include <CGAL/create_straight_skeleton_2.h>

returns a new Straight_skeleton_2<SsK> in the interior of the 2D polygon outer_contour.

Template Parameters
SsKmust be a model of Kernel.
Polygonmust be a model of SequenceContainer with value type InK::Point_2 (e.g. Polygon_2<InK>) or a model of GeneralPolygonWithHoles_2 (e.g. Polygon_with_holes_2<InK>).
Note
Cartesian_converter is used to convert from InK::Point_2 to SsK::Point_2, if they differ.
See also
create_exterior_straight_skeleton_2()
CGAL::Straight_skeleton_builder_2<Traits,Ss,Visitor>