1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef K::Point_2 Point;
typedef CGAL::Polygon_2<K> Polygon;
typedef CGAL::Polygon_with_holes_2<K> Polygon_with_holes;
typedef boost::shared_ptr<Polygon> PolygonPtr;
typedef std::vector<PolygonPtr> PolygonSequence ;
typedef CGAL::Straight_skeleton_2<K> Ss;
typedef boost::shared_ptr<Ss> SsPtr;
typedef CGAL::Polygon_offset_builder_traits_2<K> OffsetBuilderTraits;
typedef CGAL::Polygon_offset_builder_2<Ss,OffsetBuilderTraits,Polygon> OffsetBuilder;
Polygon outer;
outer.push_back(Point(0.,0.));
outer.push_back(Point(0.,10.));
outer.push_back(Point(10.,10.));
outer.push_back(Point(10.,0.));
Polygon_with_holes poly(outer);
Polygon inner;
inner.push_back(Point(2.5, 2.5));
inner.push_back(Point(2.5, 7.5));
inner.push_back(Point(7.5, 7.5));
inner.push_back(Point(7.5, 2.5));
poly.add_hole(inner);
SsPtr iss = CGAL::create_interior_straight_skeleton_2(poly);
OffsetBuilder ob(*iss);
PolygonSequence polygons;
ob.construct_offset_contours(3., std::back_inserter(polygons)); |
Partager