CGAL 5.5 - 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...

## ◆ create_exterior_straight_skeleton_2() [1/2]

template<class FT , class PointIterator , class SsK >
 boost::shared_ptr< Straight_skeleton_2 > 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
 SsK must be a model of Kernel. FT must be a model of FieldNumberType convertible to SsK::FT. PointIterator must 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.
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 > 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
 FT must be a model of FieldNumberType convertible to SsK::FT. SsK must be a model of Kernel. Polygon must be a model of SequenceContainer with value type InK::Point_2 (e.g. Polygon_2) or a model of GeneralPolygonWithHoles_2 (e.g. Polygon_with_holes_2).
Note
Cartesian_converter is used to convert from InK::Point_2 to SsK::Point_2, if they differ.
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 > 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
 SsK must be a model of Kernel. PointIterator must be a model of InputIterator with value type InK::Point_2. HoleIterator must 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.
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 > 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
 SsK must be a model of Kernel. PointIterator must 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.
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 > 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
 SsK must be a model of Kernel. Polygon must be a model of SequenceContainer with value type InK::Point_2 (e.g. Polygon_2) or a model of GeneralPolygonWithHoles_2 (e.g. Polygon_with_holes_2).
Note
Cartesian_converter is used to convert from InK::Point_2 to SsK::Point_2, if they differ.
create_exterior_straight_skeleton_2()
CGAL::Straight_skeleton_builder_2<Traits,Ss,Visitor>