CGAL 6.0.1 - 2D Straight Skeleton and Polygon Offsetting
Loading...
Searching...
No Matches
CGAL Namespace Reference

Classes

struct  Dummy_straight_skeleton_builder_2_visitor
 The class Dummy_straight_skeleton_builder_2_visitor provides a model for the concept StraightSkeletonBuilder_2_Visitor, which is the visitor type required by the Straight_skeleton_builder_2 algorithm class. More...
 
class  Polygon_offset_builder_2
 The class Polygon_offset_builder_2 encapsulates the construction of inward offset contours of a 2D simple polygon with holes. More...
 
class  Polygon_offset_builder_traits_2
 
class  Straight_skeleton_2
 The class Straight_skeleton_2 provides a model for the StraightSkeleton_2 concept which is the class type used to represent a straight skeleton. More...
 
class  Straight_skeleton_builder_2
 The class Straight_skeleton_builder_2 encapsulates the construction of the 2D straight skeleton in the interior of a polygon with holes. More...
 
class  Straight_skeleton_builder_traits_2
 
struct  Straight_skeleton_converter_2
 The class Straight_skeleton_converter_2 converts a straight skeleton instantiated using certain traits into another straight skeleton instantiated using a different traits. More...
 
class  Straight_skeleton_face_base_2
 
class  Straight_skeleton_halfedge_base_2
 
struct  Straight_skeleton_items_converter_2
 
class  Straight_skeleton_vertex_base_2
 
class  Trisegment_2
 A straight skeleton event is the simultaneous collision of three offsetted oriented straight line segments e0*,e1*,e2* (e* denotes an offsetted edge). More...
 

Typedefs

using Trisegment_2_ptr = std::shared_ptr< Trisegment_2< K, Segment > >
 a smart pointer to a Trisegment_2 object
 

Functions

template<class K , class InputPolygonPtrIterator , class OutputPolygonWithHolesPtrIterator >
bool arrange_offset_polygons_2 (InputPolygonPtrIterator begin, InputPolygonPtrIterator end, OutputPolygonWithHolesPtrIterator out, const K &k)
 The function arrange_offset_polygons_2() arranges the sequence of 2D polygons obtained by create_offset_polygons_2() into 2D polygons with holes by determining geometric parent-hole relationships using a simple algorithm based on the particular characteristics of offset polygons.
 
template<class InputIterator , class Traits >
std::optional< typename Traits::FT > compute_outer_frame_margin (InputIterator first, InputIterator beyond, typename Traits::FT offset, const Traits &traits=Default_traits)
 computes the separation required between a polygon and the outer frame used to obtain an exterior skeleton suitable for the computation of outer offset polygons at a given distance.
 
template<typename OfKPolygon , typename FT , typename StraightSkeleton , typename OfK >
std::vector< std::shared_ptr< OfKPolygon > > create_offset_polygons_2 (FT offset, const StraightSkeleton &ss, OfK k=Exact_predicates_inexact_constructions_kernel())
 returns a container with the offset polygons at distance offset obtained from the straight skeleton ss.
 
template<typename OfKPolygon , typename FT , typename InKPolygon , typename HoleIterator , typename OfK , typename SsK >
std::vector< std::shared_ptr< OfKPolygon > > create_interior_skeleton_and_offset_polygons_2 (FT offset, const InKPolygon &outer_boundary, HoleIterator holes_begin, HoleIterator holes_end, OfK ofk=CGAL::Exact_predicates_inexact_constructions_kernel, SsK ssk=CGAL::Exact_predicates_inexact_constructions_kernel())
 returns a container with all the inner offset polygons at distance offset of a 2D polygon with holes.
 
template<typename OfKPolygon , typename FT , typename InKPolygon , typename OfK , typename SsK >
std::vector< std::shared_ptr< OfKPolygon > > create_interior_skeleton_and_offset_polygons_2 (FT offset, const InKPolygon &poly, OfK ofk=CGAL::Exact_predicates_inexact_constructions_kernel, SsK ssk=CGAL::Exact_predicates_inexact_constructions_kernel())
 returns a container with all the inner offset polygons at distance offset of the 2D polygon poly.
 
template<typename OfKPolygon , typename FT , typename InKPolygon , typename OfK , typename SsK >
std::vector< std::shared_ptr< OfKPolygon > > create_exterior_skeleton_and_offset_polygons_2 (FT offset, const InKPolygon &poly, OfK ofk=Exact_predicates_inexact_constructions_kernel(), SsK ssk=Exact_predicates_inexact_constructions_kernel())
 returns a container with all the outer offset polygons at distance offset of the 2D polygon poly.
 
template<class OfKPolygon , class FT , class InKPolygon , class OfK , class SsK >
std::vector< std::shared_ptr< OfKPolygon > > create_interior_skeleton_and_offset_polygons_with_holes_2 (FT offset, const InKPolygon &poly_with_holes, OfK ofk=CGAL::Exact_predicates_inexact_constructions_kernel, SsK ssk=CGAL::Exact_predicates_inexact_constructions_kernel)
 returns a container with all the inner offset polygons with holes at distance offset of the 2D polygon with holes poly_with_holes.
 
template<class OfKPolygon , class FT , class InKPolygon , class OfK , class SsK >
std::vector< std::shared_ptr< OfKPolygon > > create_exterior_skeleton_and_offset_polygons_with_holes_2 (FT offset, const InKPolygon &poly_with_holes, OfK ofk=Exact_predicates_inexact_constructions_kernel(), SsK ssk=Exact_predicates_inexact_constructions_kernel())
 returns a container with all the outer offset polygons with holes at distance offset of the 2D polygon poly_with_holes.
 
template<typename PointIterator , typename HoleIterator , typename SsK >
std::shared_ptr< Straight_skeleton_2< SsK > > 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())
 creates a straight skeleton in the interior of the 2D polygon with holes.
 
template<typename PointIterator , typename SsK >
std::shared_ptr< Straight_skeleton_2< SsK > > create_interior_straight_skeleton_2 (PointIterator outer_contour_vertices_begin, PointIterator outer_contour_vertices_end, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel())
 creates a straight skeleton in the interior of the 2D polygon.
 
template<typename Polygon , typename SsK >
std::shared_ptr< Straight_skeleton_2< SsK > > create_interior_straight_skeleton_2 (const Polygon &polygon, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel())
 creates a straight skeleton in the interior of the 2D polygon polygon.
 
template<typename FT , typename PointIterator , typename SsK >
std::shared_ptr< Straight_skeleton_2< SsK > > create_exterior_straight_skeleton_2 (FT max_offset, PointIterator vertices_begin, PointIterator vertices_end, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel())
 creates a straight skeleton in the exterior of a 2D polygon with holes.
 
template<typename FT , typename Polygon , typename SsK >
std::shared_ptr< Straight_skeleton_2< SsK > > create_exterior_straight_skeleton_2 (FT max_offset, const Polygon &P, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel())
 creates a straight skeleton in the exterior of a 2D polygon with holes.
 
template<typename OfKPolygon , typename FT , typename InKPolygon , typename InKWeights , typename HoleIterator , typename OfK , typename SsK >
std::vector< std::shared_ptr< OfKPolygon > > create_interior_weighted_skeleton_and_offset_polygons_2 (FT offset, const InKPolygon &outer_boundary, const InKWeights &outer_boundary_weights, HoleIterator holes_begin, HoleIterator holes_end, HoleWeightsIterator holes_weights_begin, HoleWeightsIterator holes_weights_end, OfK ofk=CGAL::Exact_predicates_inexact_constructions_kernel, SsK ssk=CGAL::Exact_predicates_inexact_constructions_kernel())
 returns a container with all the inner offset polygons at distance offset of a 2D polygon with holes.
 
template<typename OfKPolygon , typename FT , typename InKPolygon , typename InKWeights , typename OfK , typename SsK >
std::vector< std::shared_ptr< OfKPolygon > > create_interior_weighted_skeleton_and_offset_polygons_2 (FT offset, const InKPolygon &poly, const InKWeights &weights, OfK ofk=CGAL::Exact_predicates_inexact_constructions_kernel, SsK ssk=CGAL::Exact_predicates_inexact_constructions_kernel())
 returns a container with all the inner offset polygons at distance offset of the 2D polygon poly.
 
template<typename OfKPolygon , typename FT , typename InKPolygon , typename InKWeights , typename OfK , typename SsK >
std::vector< std::shared_ptr< OfKPolygon > > create_exterior_weighted_skeleton_and_offset_polygons_2 (FT offset, const InKPolygon &poly, const InKWeights &weights, OfK ofk=Exact_predicates_inexact_constructions_kernel(), SsK ssk=Exact_predicates_inexact_constructions_kernel())
 returns a container with all the outer offset polygons at distance offset of the 2D polygon poly.
 
template<class OfKPolygon , class FT , class InKPolygon , class OfK , class SsK >
std::vector< std::shared_ptr< OfKPolygon > > create_interior_weighted_skeleton_and_offset_polygons_with_holes_2 (FT offset, const InKPolygon &poly_with_holes, OfK ofk=CGAL::Exact_predicates_inexact_constructions_kernel, SsK ssk=CGAL::Exact_predicates_inexact_constructions_kernel)
 returns a container with all the inner offset polygons with holes at distance offset of the 2D polygon with holes poly_with_holes.
 
template<class OfKPolygon , class FT , class InKPolygon , class OfK , class SsK >
std::vector< std::shared_ptr< OfKPolygon > > create_exterior_weighted_skeleton_and_offset_polygons_with_holes_2 (FT offset, const InKPolygon &poly_with_holes, OfK ofk=Exact_predicates_inexact_constructions_kernel(), SsK ssk=Exact_predicates_inexact_constructions_kernel())
 returns a container with all the outer offset polygons with holes at distance offset of the 2D polygon poly_with_holes.
 
template<typename PointIterator , typename HoleIterator , typename WeightIterator , typename HoleWeightsIterator , typename SsK >
std::shared_ptr< Straight_skeleton_2< SsK > > create_interior_weighted_straight_skeleton_2 (PointIterator outer_contour_vertices_begin, PointIterator outer_contour_vertices_end, HoleIterator holes_begin, HoleIterator holes_end, WeightIterator outer_contour_weights_begin, WeightIterator outer_contour_weights_end, HoleWeightsIterator holes_weights_begin, HoleWeightsIterator holes_weights_end, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel())
 creates a weighted straight skeleton in the interior of a 2D polygon with holes.
 
template<typename PointIterator , typename WeightIterator , typename SsK >
std::shared_ptr< Straight_skeleton_2< SsK > > create_interior_weighted_straight_skeleton_2 (PointIterator outer_contour_vertices_begin, PointIterator outer_contour_vertices_end, WeightIterator outer_contour_weights_begin, WeightIterator outer_contour_weights_end, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel())
 creates a weighted straight skeleton in the interior of a 2D polygon without holes.
 
template<typename InKPolygon , typename InKWeights , typename SsK >
std::shared_ptr< Straight_skeleton_2< SsK > > create_interior_weighted_straight_skeleton_2 (const InKPolygon &polygon, const InKWeights &weights, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel())
 creates a weighted straight skeleton in the interior of a 2D polygon, possibly with holes.
 
template<typename FT , typename PointIterator , typename WeightIterator , typename SsK >
std::shared_ptr< Straight_skeleton_2< SsK > > create_exterior_weighted_straight_skeleton_2 (FT max_offset, PointIterator vertices_begin, PointIterator vertices_end, WeightIterator weights_begin, WeightIterator weights_end, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel())
 creates a weighted straight skeleton in the limited exterior of the 2D polygon P given by the point sequence [vertices_begin,vertices_end[.
 
template<typename FT , typename Polygon , typename Weights , typename SsK >
std::shared_ptr< Straight_skeleton_2< SsK > > create_exterior_weighted_straight_skeleton_2 (FT max_offset, const InKPolygon &P, const InKWeights &weights, SsK k=CGAL::Exact_predicates_inexact_constructions_kernel())
 creates a weighted straight skeleton in the exterior of a 2D polygon (with holes).
 
template<typename Polygon , typename FT , typename PolygonMesh , typename NamedParameters = parameters::Default_named_parameters>
bool extrude_skeleton (const Polygon &polygon, PolygonMesh &out, const NamedParameters &np=parameters::default_values())
 constructs the straight skeleton-based extrusion of a polygon with holes.
 
template<class Target_skeleton , class Source_skeleton , class Items_converter >
std::shared_ptr< Target_skeleton > convert_straight_skeleton_2 (Source_skeleton const &s, Items_converted const &ic=Items_converter())
 returns a new straight skeleton data structure with the same combinatorial and geometric data as s using the items converter ic to convert the geometric embedding to the types of the target skeleton.