template<class ConicTraits, class Container>

typename Gps_traits_2<ConicTraits>::Polygon_with_holes_2


offset_polygon_2 ( 
Polygon_2<typename ConicTraits::Rat_kernel, Container> P,
typename ConicTraits::Rat_kernel::FT r,
ConicTraits traits) 

 
Computes the offset of the given polygon P by a given radius
r  namely, the function computes the Minkowski sum
P ⊕ B_{r}, where B_{r} is a disc of radius r centered at the
origin.
Note that as the input polygon may not be convex, its offset may not be a
simple polygon. The result is therefore represented as a generalized
polygon with holes, such that the edges of the polygon correspond to
line segments and circular arcs, both are special types of conic arcs,
as represented by the traits class.
Precondition:  P is a simple polygon. 


template<class ConicTraits, class Container>

typename Gps_traits_2<ConicTraits>::Polygon_with_holes_2


offset_polygon_2 ( 
Polygon_with_holes_2<typename ConicTraits::Rat_kernel, Container> pwh,
typename ConicTraits::Rat_kernel::FT r,
ConicTraits traits) 

 
Computes the offset of the given polygon with holes pwh by a given
radius r. It does so by offsetting outer boundary of pwh and
insetting its holes.
The result is represented as a generalized polygon with holes, such that the
edges of the polygon correspond to line segments and circular arcs, both are
special types of conic arcs, as represented by the traits class.
Precondition:  pwh is not unbounded (it has a valid outer boundary). 


template<class ConicTraits, class Container, class DecompositionStrategy>

typename Gps_traits_2<ConicTraits>::Polygon_with_holes_2


offset_polygon_2 ( 
Polygon_2<typename ConicTraits::Rat_kernel, Container> P,
typename ConicTraits::Rat_kernel::FT r,
DecompositionStrategy decomp,
ConicTraits traits) 

 
Computes the exact representation of the offset of the given polygon
P by a radius r, as described above.
If P is not convex, the function decomposes it into convex
subpolygons P_{1}, … , P_{k} and computes the union of suboffsets
(namely ∪_{i}(P_{i} ⊕ B_{r})).
The decomposition is performed using the given decomposition strategy
decomp, which must be an instance of a class that models the
concept PolygonConvexDecomposition.
Precondition:  P is a simple polygon. 
