diff --git a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/Straight_skeleton_builder_2.h b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/Straight_skeleton_builder_2.h
index dc4ec8c2d48d..1331edf5f388 100644
--- a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/Straight_skeleton_builder_2.h
+++ b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/Straight_skeleton_builder_2.h
@@ -190,7 +190,7 @@ Straight_skeleton_builder_2& enter_contour( InputPointIterator aBegin, InputPoin
/*!
defines the weights of the contour last entered through `enter_contour()`.
-\tparam InputPointIterator must be a model `InputIterator` whose `value_type` is `FT`.
+\tparam WeightIterator must be a model `InputIterator` whose `value_type` is `FT`.
\pre `std::distance(aBegin,aEnd)` must be equal to the number of vertices of the contour last entered.
\pre Weights are (strictly) positive.
diff --git a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_offset_polygons_2.h b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_offset_polygons_2.h
index 551215202ae7..e51856028e39 100644
--- a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_offset_polygons_2.h
+++ b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_offset_polygons_2.h
@@ -9,11 +9,11 @@ If `ss` is the interior skeleton of a polygon with holes, the offset polygons wi
in its interior. If `ss` is the outer skeleton of a polygon with holes, the offset polygons
will be generated in its exterior.
-\tparam OfK must be a model of `Kernel`. It is used to instantiate
- `Polygon_offset_builder_traits_2` for constructing the offset polygons.
+\tparam OfKPolygon is a polygon without holes type determined from `OfK`, see Section \ref SLSOffsetPolygonReturnType.
\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT`.
\tparam StraightSkeleton is an object of type `CGAL::Straight_skeleton_2`.
-\tparam OfKPolygon is a polygon without holes type determined from `OfK`, see Section \ref SLSOffsetPolygonReturnType.
+\tparam OfK must be a model of `Kernel`. It is used to instantiate
+ `Polygon_offset_builder_traits_2` for constructing the offset polygons.
\note If `SsK != OfK` the constructed straight skeleton is converted to `CGAL::Straight_skeleton_2`.
@@ -44,16 +44,16 @@ The construction of this skeleton is the most expensive operation, therefore, to
at more than one single distance, it is advised to use `create_interior_straight_skeleton_2()` to create
the skeleton only once, and then call `create_offset_polygons_2()` for each distance.
-\tparam OfK must be a model of `Kernel`. It is used to instantiate
- `Polygon_offset_builder_traits_2` for constructing the offset polygons.
-\tparam SsK must be a model of `Kernel`. It is used to instantiate
- `Straight_skeleton_builder_traits_2` for constructing the straight skeleton.
+\tparam OfKPolygon is a polygon without holes type determined from `OfK` and `InKPolygon`,
+ see Section \ref SLSOffsetPolygonReturnType.
\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
\tparam HoleIterator must be a model of `InputIterator` with value type being a model of `ConstRange`
with value type `SsK::Point_2`.
\tparam InKPolygon must be a model of `SequenceContainer` with value type `InK::Point_2` (e.g. `Polygon_2`).
-\tparam OfKPolygon is a polygon without holes type determined from `OfK` and `InKPolygon`,
- see Section \ref SLSOffsetPolygonReturnType.
+\tparam OfK must be a model of `Kernel`. It is used to instantiate
+ `Polygon_offset_builder_traits_2` for constructing the offset polygons.
+\tparam SsK must be a model of `Kernel`. It is used to instantiate
+ `Straight_skeleton_builder_traits_2` for constructing the straight skeleton.
\note If `SsK != OfK` the constructed straight skeleton is converted to `CGAL::Straight_skeleton_2`.
@@ -84,20 +84,20 @@ The construction of this skeleton is the most expensive operation, therefore, to
at more than one single distance, it is advised to use `create_interior_straight_skeleton_2()` to create
the skeleton only once, and then call `create_offset_polygons_2()` for each distance
+\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
+ see Section \ref SLSOffsetPolygonReturnType.
+\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
+\tparam InKPolygon 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`).
\tparam OfK must be a model of `Kernel`. It is used to instantiate
`Polygon_offset_builder_traits_2` for constructing the offset polygons.
\tparam SsK must be a model of `Kernel`. It is used to instantiate
`Straight_skeleton_builder_traits_2` for constructing the straight skeleton.
-\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
-\tparam InKPolygon 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`).
-\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
- see Section \ref SLSOffsetPolygonReturnType.
\note If `SsK != OfK` the constructed straight skeleton is converted to `CGAL::Straight_skeleton_2`.
\pre `offset` is positive
-\pre poly` is weakly simple, counterclockwise polygon.
+\pre `poly` is weakly simple, counterclockwise polygon.
\sa `CGAL::create_exterior_skeleton_and_offset_polygons_2()`
\sa `CGAL::create_interior_skeleton_and_offset_polygons_with_holes_2()`
@@ -125,20 +125,20 @@ to obtain the offsets. The construction of this skeleton is the most expensive o
therefore, to construct offsets at more than one single distance, use the separate functions
`create_exterior_straight_skeleton_2()` and `create_offset_polygons_2()` instead.
+\tparam OfKPolygon is a polygon without holes type determined from `OfK` and `InKPolygon`,
+ see Section \ref SLSOffsetPolygonReturnType.
+\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
+\tparam InKPolygon 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`).
\tparam OfK must be a model of `Kernel`. It is used to instantiate
`Polygon_offset_builder_traits_2` for constructing the offset polygons.
\tparam SsK must be a model of `Kernel`. It is used to instantiate
`Straight_skeleton_builder_traits_2` for constructing the straight skeleton.
-\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
-\tparam InKPolygon 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`).
-\tparam OfKPolygon is a polygon without holes type determined from `OfK` and `InKPolygon`,
- see Section \ref SLSOffsetPolygonReturnType.
\note If `SsK != OfK` the constructed straight skeleton is converted to `CGAL::Straight_skeleton_2`.
\pre `offset` is positive
-\pre poly` is weakly simple, counterclockwise polygon.
+\pre `poly` is weakly simple, counterclockwise polygon.
\sa `CGAL::create_interior_skeleton_and_offset_polygons_2()`
\sa `CGAL::create_exterior_skeleton_and_offset_polygons_with_holes_2()`
diff --git a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_offset_polygons_from_polygon_with_holes_2.h b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_offset_polygons_from_polygon_with_holes_2.h
index 839612ff6f39..e4aff14d810d 100644
--- a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_offset_polygons_from_polygon_with_holes_2.h
+++ b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_offset_polygons_from_polygon_with_holes_2.h
@@ -8,15 +8,16 @@ of the 2D polygon with holes `poly_with_holes`.
This is equivalent to `arrange_offset_polygons_2(create_interior_skeleton_and_offset_polygons_2(offset, poly_with_holes, ofk, ssk))`.
+\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
+ see Section \ref SLSOffsetPolygonReturnType.
+\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
+\tparam InKPolygon 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`).
\tparam OfK must be a model of `Kernel`. It is used to instantiate
`Polygon_offset_builder_traits_2` for constructing the offset polygons.
\tparam SsK must be a model of `Kernel`. It is used to instantiate
`Straight_skeleton_builder_traits_2` for constructing the straight skeleton.
-\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
-\tparam InKPolygon 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`).
-\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
- see Section \ref SLSOffsetPolygonReturnType.
+
\note If `SsK != OfK` the constructed straight skeleton is converted to `CGAL::Straight_skeleton_2`.
@@ -42,19 +43,19 @@ at distance `offset` of the 2D polygon `poly_with_holes`. Note that the
offset of the outer frame is ignored.
This is equivalent to a call to `CGAL::arrange_offset_polygons_2()` on the
-output of \link CGAL::create_exterior_skeleton_and_offset_polygons_2() `create_exterior_skeleton_and_offset_polygons_2(offset, poly_with_holes, ofk, ssk))` \endlink
+output of \link CGAL::create_exterior_skeleton_and_offset_polygons_2() `create_exterior_skeleton_and_offset_polygons_2(offset, poly_with_holes, ofk, ssk)` \endlink
after having filtered out the polygon corresponding to the offset of the outer frame and
having reversed the orientation of all other polygons.
+\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
+ see Section \ref SLSOffsetPolygonReturnType.
+\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
+\tparam InKPolygon 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`).
\tparam OfK must be a model of `Kernel`. It is used to instantiate
`Polygon_offset_builder_traits_2` for constructing the offset polygons.
\tparam SsK must be a model of `Kernel`. It is used to instantiate
`Straight_skeleton_builder_traits_2` for constructing the straight skeleton.
-\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
-\tparam InKPolygon 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`).
-\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
- see Section \ref SLSOffsetPolygonReturnType.
\note If `SsK != OfK` the constructed straight skeleton is converted to `CGAL::Straight_skeleton_2`.
diff --git a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_offset_polygons_2.h b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_offset_polygons_2.h
index e08f4d7b1d29..cdc19eb8ffb6 100644
--- a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_offset_polygons_2.h
+++ b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_offset_polygons_2.h
@@ -20,19 +20,19 @@ The construction of this skeleton is the most expensive operation, therefore, to
at more than one single distance, it is advised to use the separate functions `create_interior_straight_skeleton_2()`
and `create_offset_polygons_2()` instead.
-\tparam OfK must be a model of `Kernel`. It is used to instantiate
- `Polygon_offset_builder_traits_2` for constructing the offset polygons.
-\tparam SsK must be a model of `Kernel`. It is used to instantiate
- `Straight_skeleton_builder_traits_2` for constructing the straight skeleton.
+\tparam OfKPolygon is a polygon without holes type determined from `OfK` and `InKPolygon`,
+ see Section \ref SLSOffsetPolygonReturnType.
\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
\tparam InKPolygon must be a model of `SequenceContainer` with value type `InK::Point_2` (e.g. `Polygon_2`).
-\tparam InKWeights must be a model of `Range` with value type `InK::FT`.
\tparam HoleIterator must be a model of `InputIterator` with value type being a model of `ConstRange`
with value type `SsK::Point_2`.
-\tparam HoleWeightsIterator must be a model of `InputIterator` with value type being a model of `ConstRange`
+\tparam InKWeights must be a model of `SequenceContainer` whose value type is `InK::FT`.
+\tparam HoleWeightsIterator must be a model of `InputIterator` with value type being a model of `SequenceContainer`
with value type `InK::FT`.
-\tparam OfKPolygon is a polygon without holes type determined from `OfK` and `InKPolygon`,
- see Section \ref SLSOffsetPolygonReturnType.
+\tparam OfK must be a model of `Kernel`. It is used to instantiate
+ `Polygon_offset_builder_traits_2` for constructing the offset polygons.
+\tparam SsK must be a model of `Kernel`. It is used to instantiate
+ `Straight_skeleton_builder_traits_2` for constructing the straight skeleton.
\note If `SsK != OfK` the constructed straight skeleton is converted to `CGAL::Straight_skeleton_2`.
@@ -45,9 +45,9 @@ template >
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,
+ const InKWeights& outer_boundary_weights,
HoleWeightsIterator holes_weights_begin,
HoleWeightsIterator holes_weights_end,
OfK ofk = CGAL::Exact_predicates_inexact_constructions_kernel,
@@ -66,16 +66,16 @@ The construction of this skeleton is the most expensive operation, therefore, to
at more than one single distance, use the separate functions `create_interior_straight_skeleton_2()`
and `create_offset_polygons_2()` instead.
+\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
+ see Section \ref SLSOffsetPolygonReturnType.
+\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
+\tparam InKPolygon 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`).
+\tparam InKWeights must be a model of `SequenceContainer` whose value type is itself a model of `SequenceContainer` with value type `InK::FT`.
\tparam OfK must be a model of `Kernel`. It is used to instantiate
`Polygon_offset_builder_traits_2` for constructing the offset polygons.
\tparam SsK must be a model of `Kernel`. It is used to instantiate
`Straight_skeleton_builder_traits_2` for constructing the straight skeleton.
-\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
-\tparam InKPolygon 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`).
-\tparam InKWeights must be a model of `Range` with value type `InK::FT`.
-\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
- see Section \ref SLSOffsetPolygonReturnType.
\note If `SsK != OfK` the constructed straight skeleton is converted to `CGAL::Straight_skeleton_2`.
@@ -109,21 +109,21 @@ to obtain the offsets. The construction of this skeleton is the most expensive o
therefore, to construct offsets at more than one single distance, use the separate functions
`create_exterior_straight_skeleton_2()` and `create_offset_polygons_2()` instead.
+\tparam OfKPolygon is a polygon without holes type determined from `OfK` and `InKPolygon`,
+ see Section \ref SLSOffsetPolygonReturnType.
+\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
+\tparam InKPolygon 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`).
+\tparam InKWeights must be a model of `SequenceContainer` whose value type is itself a model of `SequenceContainer` with value type `InK::FT`.
\tparam OfK must be a model of `Kernel`. It is used to instantiate
`Polygon_offset_builder_traits_2` for constructing the offset polygons.
\tparam SsK must be a model of `Kernel`. It is used to instantiate
`Straight_skeleton_builder_traits_2` for constructing the straight skeleton.
-\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
-\tparam InKPolygon 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`).
-\tparam InKWeights must be a model of `Range` with value type `InK::FT`.
-\tparam OfKPolygon is a polygon without holes type determined from `OfK` and `InKPolygon`,
- see Section \ref SLSOffsetPolygonReturnType.
\note If `SsK != OfK` the constructed straight skeleton is converted to `CGAL::Straight_skeleton_2`.
\pre `offset` is positive
-\pre poly` is weakly simple, counterclockwise polygon.
+\pre `poly` is weakly simple, counterclockwise polygon.
\sa `CGAL::create_interior_skeleton_and_offset_polygons_2()`
\sa `CGAL::create_exterior_skeleton_and_offset_polygons_with_holes_2()`
diff --git a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_offset_polygons_from_polygon_with_holes_2.h b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_offset_polygons_from_polygon_with_holes_2.h
index e2f4f1096481..7e05b15bc406 100644
--- a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_offset_polygons_from_polygon_with_holes_2.h
+++ b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_offset_polygons_from_polygon_with_holes_2.h
@@ -1,22 +1,23 @@
namespace CGAL {
/*!
-\ingroup PkgStraightSkeleton2OffsetFunctions
+\ingroup PkgStraightSkeleton2WeightedOffsetFunctions
\brief returns a container with all the inner offset polygons with holes at distance `offset`
of the 2D polygon with holes `poly_with_holes`.
This is equivalent to `arrange_offset_polygons_2(create_interior_weighted_skeleton_and_offset_polygons_2(offset, poly_with_holes, ofk, ssk))`.
+\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
+ see Section \ref SLSOffsetPolygonReturnType.
+\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
+\tparam InKPolygon 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`).
+\tparam InKWeights must be a model of `SequenceContainer` whose value type is itself a model of `SequenceContainer` with value type `InK::FT`.
\tparam OfK must be a model of `Kernel`. It is used to instantiate
`Polygon_offset_builder_traits_2` for constructing the offset polygons.
\tparam SsK must be a model of `Kernel`. It is used to instantiate
`Straight_skeleton_builder_traits_2` for constructing the weighted straight skeleton.
-\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
-\tparam InKPolygon 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`).
-\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
- see Section \ref SLSOffsetPolygonReturnType.
\note If `SsK != OfK` the constructed weighted straight skeleton is converted to `CGAL::Straight_skeleton_2`.
@@ -35,26 +36,27 @@ create_interior_weighted_skeleton_and_offset_polygons_with_holes_2(FT offset,
// ---------------------------------------------- EXTERIOR -----------------------------------------
/*!
-\ingroup PkgStraightSkeleton2OffsetFunctions
+\ingroup PkgStraightSkeleton2WeightedOffsetFunctions
\brief returns a container with all the outer offset polygons with holes
at distance `offset` of the 2D polygon `poly_with_holes`. Note that the
offset of the outer frame is ignored.
This is equivalent to a call to `CGAL::arrange_offset_polygons_2()` on the
-output of \link CGAL::create_exterior_weighted_skeleton_and_offset_polygons_2() `create_exterior_weighted_skeleton_and_offset_polygons_2(offset, poly_with_holes, ofk, ssk))` \endlink
+output of \link CGAL::create_exterior_weighted_skeleton_and_offset_polygons_2() `create_exterior_weighted_skeleton_and_offset_polygons_2(offset, poly_with_holes, ofk, ssk)` \endlink
after having filtered out the polygon corresponding to the offset of the outer frame and
having reversed the orientation of all other polygons.
+\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
+ see Section \ref SLSOffsetPolygonReturnType.
+\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
+\tparam InKPolygon 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`).
+\tparam InKWeights must be a model of `SequenceContainer` whose value type is itself a model of `SequenceContainer` with value type `InK::FT`.
\tparam OfK must be a model of `Kernel`. It is used to instantiate
`Polygon_offset_builder_traits_2` for constructing the offset polygons.
\tparam SsK must be a model of `Kernel`. It is used to instantiate
`Straight_skeleton_builder_traits_2` for constructing the straight skeleton.
-\tparam FT must be a model of `FieldNumberType` convertible to `OfK::FT` and `SsK::FT`.
-\tparam InKPolygon 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`).
-\tparam OfKPolygon is a polygon without holes type determined by `OfK` and `InKPolygon`,
- see Section \ref SLSOffsetPolygonReturnType.
\note If `SsK != OfK` the constructed weighted straight skeleton is converted to `CGAL::Straight_skeleton_2`.
@@ -65,7 +67,9 @@ having reversed the orientation of all other polygons.
template
std::vector >
create_exterior_weighted_skeleton_and_offset_polygons_with_holes_2(FT offset,
- const InKPolygon& poly_with_holes,
+ const InKPolygon&
+ poly_with_holes,
+ const InKWeights& weights,
OfK ofk = Exact_predicates_inexact_constructions_kernel(),
SsK ssk = Exact_predicates_inexact_constructions_kernel());
diff --git a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_straight_skeleton_2.h b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_straight_skeleton_2.h
index f036609721fc..aeb39576705d 100644
--- a/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_straight_skeleton_2.h
+++ b/Straight_skeleton_2/doc/Straight_skeleton_2/CGAL/create_weighted_straight_skeleton_2.h
@@ -87,14 +87,14 @@ create_interior_weighted_straight_skeleton_2(PointIterator outer_contour_vertice
\brief creates a weighted straight skeleton in the interior of a 2D polygon, possibly with holes.
-Range of weights `weights` must be provided in the same order as the contours (i.e., first
+Weights must be provided in the same order as the contours (i.e., first
the weights of the outer boundary, and then the weights of the holes, if there are any).
Within each range of weights, the weights must be given in the same order as the vertices of the contour:
the `i`-th weight in the range is associated to the contour edge between the `i-1`-th and `i`-th vertices.
\tparam InKPolygon 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`).
-\tparam InKWeights must be a model of `Range` whose value type is itself a model of `Range` with value type `InK::FT`.
+\tparam InKWeights must be a model of `SequenceContainer` whose value type is itself a model of `SequenceContainer` with value type `InK::FT`.
\tparam SsK must be a model of `Kernel`.
\note `Cartesian_converter` and `NT_converter` are used to convert objects from `InK` to `SsK`,
@@ -177,7 +177,7 @@ is associated to the contour edge between the `i-1`-th and `i`-th vertices.
\tparam FT must be a model of `FieldNumberType` convertible to `SsK::FT`.
\tparam InKPolygon 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`).
-\tparam InKWeights must be a model of `Range` whose value type is itself a model of `Range` with value type `InK::FT`.
+\tparam InKWeights must be a model of `SequenceContainer` whose value type is itself a model of `SequenceContainer` with value type `InK::FT`.
\note `Cartesian_converter` and `NT_converter` are used to convert objects from `InK` to `SsK`,
if they differ.
diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h
index 30b1e25de59a..102f4552a085 100644
--- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h
+++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h
@@ -17,6 +17,8 @@
#include
#include
+#include
+#include
#include
#include
@@ -193,8 +195,8 @@ struct Default_return_polygon_type // Polygon type supports holes
typename Kernel_traits::type>::Kernel,
OfK>::value,
- typename Polygon::Polygon_2, // correct kernel
- CGAL::Polygon_2 /*incorrect kernel*/ >::type type;
+ typename Polygon::Polygon_2, // same kernel
+ CGAL::Polygon_2 /*different kernel*/ >::type type;
};
template
@@ -203,10 +205,14 @@ struct Default_return_polygon_type // Polygon type does NOT
typedef typename std::conditional::type>::Kernel,
OfK>::value,
- Polygon, // correct kernel
- CGAL::Polygon_2 /*incorrect kernel*/ >::type type;
+ Polygon, // same kernel
+ CGAL::Polygon_2 /*different kernel*/ >::type type;
};
+template
+using Polygon_return_type = typename CGAL::Default::Get::type>::type;
+
// The return type of create_interior/exterior_skeleton_and_offset_polygons_with_holes_2:
// - if polygon input is a model of 'GeneralPolygonWithHoles_2', the return type should be the same
// - if polygon input is just a sequence container of points (e.g. Polygon_2), then use
@@ -234,6 +240,10 @@ struct Default_return_polygon_with_holes_type // Polygon ty
CGAL::Polygon_with_holes_2 /*incorrect kernel*/ >::type type;
};
+template
+using Polygon_with_holes_return_type = typename CGAL::Default::Get::type>::type;
+
} // namespace CGAL_SS_i
} // namespace CGAL
diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_2.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_2.h
index 90110820a369..ffe8eaaba491 100644
--- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_2.h
+++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_2.h
@@ -1454,10 +1454,10 @@ private :
CGAL_assertion(fit != mSSkel->SSkel::Base::faces_end());
Halfedge_handle lBorder = fit->halfedge();
- FT lWeight = *aWeightsBegin;
CGAL_assertion(lBorder->opposite()->is_border());
- CGAL_STSKEL_BUILDER_TRACE(4, "Assign " << lWeight << " cvt to " << cvt(lWeight) << " to E" << lBorder->id());
- lBorder->set_weight(cvt(lWeight));
+ FT lWeight = cvt(*aWeightsBegin);
+ CGAL_STSKEL_BUILDER_TRACE(4, "Assign " << *aWeightsBegin << " (converted to " << cvt(lWeight) << ") to E" << lBorder->id());
+ lBorder->set_weight(lWeight);
}
return *this;
diff --git a/Straight_skeleton_2/include/CGAL/arrange_offset_polygons_2.h b/Straight_skeleton_2/include/CGAL/arrange_offset_polygons_2.h
index cd63666e9e7e..2899fa00ed0c 100644
--- a/Straight_skeleton_2/include/CGAL/arrange_offset_polygons_2.h
+++ b/Straight_skeleton_2/include/CGAL/arrange_offset_polygons_2.h
@@ -20,11 +20,11 @@
#include
#include
-#include
#include
#include
#include
+#include
#include
namespace CGAL {
@@ -48,7 +48,9 @@ bool arrange_offset_polygons_2 ( InputPolygonPtrIterator aBegin
{
typedef typename std::iterator_traits::difference_type difference_type ;
typedef typename std::iterator_traits::value_type PolygonPtr ;
+ typedef typename Kernel_traits::type>::Kernel OfK;
+ typedef typename PolygonWithHoles::Polygon_2 Inner_polygon;
typedef std::shared_ptr PolygonWithHolesPtr ;
difference_type lSize = std::distance(aBegin,aEnd);
@@ -61,14 +63,16 @@ bool arrange_offset_polygons_2 ( InputPolygonPtrIterator aBegin
const PolygonPtr lPoly = *it ;
- Orientation lOrient = CGAL::Polygon::internal::orientation_2_no_precondition(lPoly->vertices().begin(),
- lPoly->vertices().end(),
- lPoly->traits_member());
+ Orientation lOrient = CGAL::Polygon::internal::orientation_2_no_precondition(
+ CGAL_SS_i::vertices_begin(lPoly), CGAL_SS_i::vertices_end(lPoly),
+ OfK() /*lPoly->traits_member()*/);
// It's an outer boundary
if ( lOrient == COUNTERCLOCKWISE )
{
- PolygonWithHolesPtr lOuter( new PolygonWithHoles(*lPoly) );
+ PolygonWithHolesPtr lOuter = std::make_shared(
+ Inner_polygon(CGAL_SS_i::vertices_begin(lPoly),
+ CGAL_SS_i::vertices_end(lPoly)));
*rOut ++ = lOuter ;
lTable[lIdx] = lOuter ;
}
@@ -100,7 +104,7 @@ bool arrange_offset_polygons_2 ( InputPolygonPtrIterator aBegin
if (lParent == nullptr)
return false;
- lParent->add_hole(*lPoly);
+ lParent->add_hole(Inner_polygon(CGAL_SS_i::vertices_begin(lPoly), CGAL_SS_i::vertices_end(lPoly)));
}
}
diff --git a/Straight_skeleton_2/include/CGAL/create_offset_polygons_2.h b/Straight_skeleton_2/include/CGAL/create_offset_polygons_2.h
index bbdf0d158534..139675d28082 100644
--- a/Straight_skeleton_2/include/CGAL/create_offset_polygons_2.h
+++ b/Straight_skeleton_2/include/CGAL/create_offset_polygons_2.h
@@ -24,9 +24,8 @@
#include
#include
+#include
#include
-#include
-#include
#include
#include
@@ -129,7 +128,7 @@ create_partial_exterior_straight_skeleton_2 ( FT const& aMaxOffset
std::vector holes ;
holes.push_back(lPoly) ;
- rSkeleton = create_partial_interior_straight_skeleton_2(aMaxOffset,frame, frame+4, holes.begin(), holes.end(), k ) ;
+ rSkeleton = create_partial_interior_straight_skeleton_2(aMaxOffset, frame, frame+4, holes.begin(), holes.end(), k ) ;
}
return rSkeleton ;
@@ -142,7 +141,9 @@ template
std::vector< std::shared_ptr >
create_offset_polygons_2 ( FT const& aOffset, Skeleton const& aSs, K const& , Tag_false )
{
- typedef std::shared_ptr OutPolygonPtr ;
+ static_assert(!(std::is_same::value));
+
+ typedef std::shared_ptr OutPolygonPtr ;
typedef std::vector OutPolygonPtrVector ;
typedef Straight_skeleton_2 OfSkeleton ;
@@ -166,16 +167,18 @@ template
std::vector< std::shared_ptr >
create_offset_polygons_2 ( FT const& aOffset, Skeleton const& aSs, K const& /*k*/, Tag_true )
{
- typedef std::shared_ptr OutPolygonPtr ;
+ static_assert(!(std::is_same::value));
+
+ typedef std::shared_ptr OutPolygonPtr ;
typedef std::vector OutPolygonPtrVector ;
typedef Polygon_offset_builder_traits_2 OffsetBuilderTraits;
typedef Polygon_offset_builder_2 OffsetBuilder;
- OutPolygonPtrVector rR ;
-
OffsetBuilder ob(aSs);
- ob.construct_offset_contours(aOffset, std::back_inserter(rR) ) ;
+ typename K::FT lOffset = aOffset;
+ OutPolygonPtrVector rR ;
+ ob.construct_offset_contours(lOffset, std::back_inserter(rR) ) ;
return rR ;
}
@@ -190,43 +193,39 @@ Skeleton const& dereference ( std::shared_ptr const& ss )
} // namespace CGAL_SS_i
-template
-std::vector< std::shared_ptr >
+template
+std::vector >
inline
create_offset_polygons_2(const FT& aOffset,
const Skeleton& aSs,
- const K& k)
+ const K& k = K())
{
typename CGAL_SS_i::Is_same_type::type same_kernel;
return CGAL_SS_i::create_offset_polygons_2(aOffset, aSs, k, same_kernel);
}
-template,
- class FT, class Skeleton>
-std::vector< std::shared_ptr >
-inline
-create_offset_polygons_2(const FT& aOffset,
- const Skeleton& aSs)
-{
- return create_offset_polygons_2(aOffset, aSs, Exact_predicates_inexact_constructions_kernel());
-}
-
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
/// INTERIOR
-template::type>
-std::vector< std::shared_ptr >
+template
+std::vector > >
inline
create_interior_skeleton_and_offset_polygons_2(const FT& aOffset,
const APolygon& aOuterBoundary,
HoleIterator aHolesBegin,
HoleIterator aHolesEnd,
- const OfK& ofk,
- const SsK& ssk)
+ const OfK& ofk = OfK(),
+ const SsK& ssk = SsK(),
+ std::enable_if_t::value>* = 0)
{
+ using OutPolygon = CGAL_SS_i::Polygon_return_type;
+
return create_offset_polygons_2(
aOffset,
CGAL_SS_i::dereference(
@@ -240,63 +239,26 @@ create_interior_skeleton_and_offset_polygons_2(const FT& aOffset,
ofk);
}
-template::type>
-std::vector< std::shared_ptr >
-inline
-create_interior_skeleton_and_offset_polygons_2(const FT& aOffset,
- const APolygon& aOuterBoundary,
- HoleIterator aHolesBegin,
- HoleIterator aHolesEnd,
- const OfK& ofk)
-{
- return create_interior_skeleton_and_offset_polygons_2(aOffset, aOuterBoundary,
- aHolesBegin, aHolesEnd,
- ofk,
- Exact_predicates_inexact_constructions_kernel());
-}
-
-// Overload where Polygon actually is a simple polygon (no holes)
-template::type>
-std::vector< std::shared_ptr >
+// Overload where APolygon is a simple polygon (no holes)
+template
+std::vector > >
inline
create_interior_skeleton_and_offset_polygons_2(const FT& aOffset,
const APolygon& aPoly,
- const OfK& ofk,
- const SsK& ssk,
+ const OfK& ofk = OfK(),
+ const SsK& ssk = SsK(),
std::enable_if_t<
! CGAL_SS_i::has_Hole_const_iterator::value>* = nullptr)
{
- std::vector no_holes;
- return create_interior_skeleton_and_offset_polygons_2(aOffset, aPoly,
- no_holes.begin(), no_holes.end(),
- ofk, ssk);
-}
-
-// Overloads common to both polygons with and without holes, a simple polygon is returned in any case
-template::type>
-std::vector >
-inline
-create_interior_skeleton_and_offset_polygons_2(const FT& aOffset,
- const APolygon& aPoly,
- const OfK& ofk)
-{
- return create_interior_skeleton_and_offset_polygons_2(aOffset, aPoly, ofk,
- Exact_predicates_inexact_constructions_kernel());
-}
+ using OutPolygon = CGAL_SS_i::Polygon_return_type;
-template::type>
-std::vector >
-inline
-create_interior_skeleton_and_offset_polygons_2(const FT& aOffset,
- const APolygon& aPoly)
-{
- return create_interior_skeleton_and_offset_polygons_2(aOffset, aPoly,
- Exact_predicates_inexact_constructions_kernel());
+ std::vector no_holes;
+ return create_interior_skeleton_and_offset_polygons_2(aOffset, aPoly,
+ no_holes.begin(), no_holes.end(),
+ ofk, ssk);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -307,17 +269,21 @@ create_interior_skeleton_and_offset_polygons_2(const FT& aOffset,
/*! create_exterior_skeleton_and_offset_polygons_2 (no sorting of the result) */
// Overload where Polygon actually is a simple polygon (no holes)
-template::type>
-std::vector< std::shared_ptr >
+template
+std::vector > >
inline
create_exterior_skeleton_and_offset_polygons_2(const FT& aOffset,
const APolygon& aPoly,
- const OfK& ofk,
- const SsK& ssk,
+ const OfK& ofk = OfK(),
+ const SsK& ssk = SsK(),
std::enable_if_t<
! CGAL_SS_i::has_Hole_const_iterator::value>* = nullptr)
{
+ using OutPolygon = CGAL_SS_i::Polygon_return_type;
+
return create_offset_polygons_2(
aOffset,
CGAL_SS_i::dereference(
@@ -329,31 +295,6 @@ create_exterior_skeleton_and_offset_polygons_2(const FT& aOffset,
ofk);
}
-// Overloads common to both polygons with and without holes, a simple polygons is returned in any case
-template::type>
-std::vector< std::shared_ptr >
-inline
-create_exterior_skeleton_and_offset_polygons_2(const FT& aOffset,
- const APolygon& aPoly,
- const OfK& ofk)
-{
- return create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly, ofk,
- Exact_predicates_inexact_constructions_kernel());
-}
-
-template::type>
-std::vector< std::shared_ptr >
-inline
-create_exterior_skeleton_and_offset_polygons_2(const FT& aOffset,
- const APolygon& aPoly)
-{
- return create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly,
- Exact_predicates_inexact_constructions_kernel());
-}
-
} // namespace CGAL
#endif // CGAL_CREATE_OFFSET_POLYGONS_2_H
diff --git a/Straight_skeleton_2/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h b/Straight_skeleton_2/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h
index ccedabda0b55..f22c3a8eea71 100644
--- a/Straight_skeleton_2/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h
+++ b/Straight_skeleton_2/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h
@@ -14,10 +14,9 @@
#include
+#include
#include
#include
-#include
-#include
#include
@@ -36,60 +35,45 @@ namespace CGAL {
/*! create_interior_skeleton_and_offset_polygons_2 (no sorting of the result) */
// overload where PolygonWithHoles actually is a type of Polygon that supports holes
-template::type> // Hole-less polygon type
-std::vector >
+template
+std::vector > >
inline
create_interior_skeleton_and_offset_polygons_2(const FT& aOffset,
const PolygonWithHoles& aPoly,
- const OfK& ofk,
- const SsK& ssk,
+ const OfK& ofk = OfK(),
+ const SsK& ssk = SsK(),
std::enable_if_t<
CGAL_SS_i::has_Hole_const_iterator::value>* = nullptr)
{
- return create_interior_skeleton_and_offset_polygons_2(aOffset, aPoly.outer_boundary(),
- aPoly.holes_begin(), aPoly.holes_end(),
- ofk, ssk);
+ using OutPolygon = CGAL_SS_i::Polygon_return_type;
+
+ return create_interior_skeleton_and_offset_polygons_2(aOffset, aPoly.outer_boundary(),
+ aPoly.holes_begin(), aPoly.holes_end(),
+ ofk, ssk);
}
/*! create_interior_skeleton_and_offset_polygons_with_holes_2 (orders the resulting polygons) */
-// Polygon might be a Polygon with holes or not, but it returns a Polygon with holes
-template::type>
-std::vector >
-inline
-create_interior_skeleton_and_offset_polygons_with_holes_2(const FT& aOffset,
- const Polygon& aPoly,
- const OfK& ofk,
- const SsK& ssk)
-{
- return arrange_offset_polygons_2(
- create_interior_skeleton_and_offset_polygons_2(aOffset, aPoly, ofk, ssk));
-}
-
-template::type>
-std::vector >
+// 'Polygon' might be a polygon with holes or not, but it returns a polygon with holes
+template
+std::vector > >
inline
create_interior_skeleton_and_offset_polygons_with_holes_2(const FT& aOffset,
const Polygon& aPoly,
- const OfK& ofk)
+ const OfK& ofk = OfK(),
+ const SsK& ssk = SsK())
{
- return create_interior_skeleton_and_offset_polygons_with_holes_2(aOffset, aPoly, ofk,
- Exact_predicates_inexact_constructions_kernel());
-}
+ using OutPolygon = typename CGAL_SS_i::Default_return_polygon_type::type;
+ using OutPolygonWithHoles = CGAL_SS_i::Polygon_with_holes_return_type;
-template::type>
-std::vector >
-inline
-create_interior_skeleton_and_offset_polygons_with_holes_2(const FT& aOffset,
- const Polygon& aPoly)
-{
- return create_interior_skeleton_and_offset_polygons_with_holes_2(aOffset, aPoly,
- Exact_predicates_inexact_constructions_kernel());
+ return arrange_offset_polygons_2(
+ create_interior_skeleton_and_offset_polygons_2(aOffset, aPoly, ofk, ssk));
}
////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -100,25 +84,34 @@ create_interior_skeleton_and_offset_polygons_with_holes_2(const FT& aOffset,
/*! create_exterior_skeleton_and_offset_polygons_with_holes_2 (orders the resulting polygons) */
// Polygon might be a Polygon with holes or not, but it returns a Polygon with holes
-template::type>
-std::vector >
+template
+std::vector > >
inline
create_exterior_skeleton_and_offset_polygons_with_holes_2(const FT& aOffset,
const Polygon& aPoly,
- const OfK& ofk,
- const SsK& ssk)
+ const OfK& ofk = OfK(),
+ const SsK& ssk = SsK())
{
- typedef typename CGAL_SS_i::Default_return_polygon_type::type Polygon_;
- std::vector > raw_output =
- create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly, ofk, ssk);
+ using OutPolygon = typename CGAL_SS_i::Default_return_polygon_type::type;
+ using OutPolygonWithHoles = CGAL_SS_i::Polygon_with_holes_return_type;
+
+ std::vector > raw_output =
+ create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly, ofk, ssk);
// filter offset of the outer frame
std::swap(raw_output[0], raw_output.back());
raw_output.pop_back();
- for (std::shared_ptr ptr : raw_output)
- ptr->reverse_orientation();
+ for (std::shared_ptr ptr : raw_output) {
+ if (ptr->size() > 1) {
+ // keep the first in place is just to get the same behavior as for Polygon_2
+ auto first = std::next(ptr->begin());
+ std::reverse(first, ptr->end());
+ }
+ }
return arrange_offset_polygons_2(raw_output);
}
@@ -126,58 +119,38 @@ create_exterior_skeleton_and_offset_polygons_with_holes_2(const FT& aOffset,
/*! create_interior_skeleton_and_offset_polygons_2 with a polygon with holes */
// overload where PolygonWithHoles actually is a type of Polygon that supports holes
-template::type>
-std::vector >
+template
+std::vector > >
inline
create_exterior_skeleton_and_offset_polygons_2(const FT& aOffset,
const PolygonWithHoles& aPoly,
- const OfK& ofk,
- const SsK& ssk,
+ const OfK& ofk = OfK(),
+ const SsK& ssk = SsK(),
std::enable_if_t<
CGAL_SS_i::has_Hole_const_iterator::value>* = nullptr)
{
+ using OutPolygon = CGAL_SS_i::Polygon_return_type;
+
std::vector > polygons =
- create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly.outer_boundary(), ofk, ssk);
+ create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly.outer_boundary(), ofk, ssk);
for (typename PolygonWithHoles::Hole_const_iterator hit=aPoly.holes_begin(); hit!=aPoly.holes_end(); ++hit)
{
typename PolygonWithHoles::Polygon_2 hole = *hit;
hole.reverse_orientation();
std::vector > hole_polygons =
- create_interior_skeleton_and_offset_polygons_2(aOffset,
- hole,
- ofk,ssk);
+ create_interior_skeleton_and_offset_polygons_2(aOffset,
+ hole,
+ ofk, ssk);
polygons.insert(polygons.end(), hole_polygons.begin(), hole_polygons.end());
}
return polygons;
}
-template::type>
-std::vector >
-inline
-create_exterior_skeleton_and_offset_polygons_with_holes_2(const FT& aOffset,
- const Polygon& aPoly,
- const OfK& ofk)
-{
- return create_exterior_skeleton_and_offset_polygons_with_holes_2(aOffset, aPoly, ofk,
- Exact_predicates_inexact_constructions_kernel());
-}
-
-template::type>
-std::vector >
-inline
-create_exterior_skeleton_and_offset_polygons_with_holes_2(const FT& aOffset,
- const Polygon& aPoly)
-{
- return create_exterior_skeleton_and_offset_polygons_with_holes_2(aOffset, aPoly,
- Exact_predicates_inexact_constructions_kernel());
-}
-
} // namespace CGAL
#endif // CGAL_CREATE_OFFSET_POLYGONS_FROM_POLYGON_WITH_HOLES_2_H
diff --git a/Straight_skeleton_2/include/CGAL/create_straight_skeleton_2.h b/Straight_skeleton_2/include/CGAL/create_straight_skeleton_2.h
index c65e61ffc8ce..5a2371e395f3 100644
--- a/Straight_skeleton_2/include/CGAL/create_straight_skeleton_2.h
+++ b/Straight_skeleton_2/include/CGAL/create_straight_skeleton_2.h
@@ -32,14 +32,14 @@
namespace CGAL {
-template
+template
std::shared_ptr< Straight_skeleton_2 >
create_interior_straight_skeleton_2 ( PointIterator aOuterContour_VerticesBegin
, PointIterator aOuterContour_VerticesEnd
, HoleIterator aHolesBegin
, HoleIterator aHolesEnd
- , K const&
- )
+ , const K& = K())
{
typedef Straight_skeleton_2 Ss ;
@@ -62,30 +62,13 @@ create_interior_straight_skeleton_2 ( PointIterator aOuterContour_VerticesBegin
return ssb.construct_skeleton();
}
-template
-std::shared_ptr< Straight_skeleton_2< Exact_predicates_inexact_constructions_kernel > >
-inline
-create_interior_straight_skeleton_2 ( PointIterator aOuterContour_VerticesBegin
- , PointIterator aOuterContour_VerticesEnd
- , HoleIterator aHolesBegin
- , HoleIterator aHolesEnd
- )
-{
- return create_interior_straight_skeleton_2(aOuterContour_VerticesBegin
- ,aOuterContour_VerticesEnd
- ,aHolesBegin
- ,aHolesEnd
- ,Exact_predicates_inexact_constructions_kernel()
- );
-}
-
-template
+template
std::shared_ptr< Straight_skeleton_2 >
inline
create_interior_straight_skeleton_2 ( PointIterator aOuterContour_VerticesBegin
, PointIterator aOuterContour_VerticesEnd
- , K const& k
- )
+ , const K& k = K())
{
typedef typename std::iterator_traits::value_type InputPoint ;
typedef typename Kernel_traits::Kernel InputKernel ;
@@ -99,24 +82,12 @@ create_interior_straight_skeleton_2 ( PointIterator aOuterContour_VerticesBegin
);
}
-template
-std::shared_ptr< Straight_skeleton_2 >
-inline
-create_interior_straight_skeleton_2 ( PointIterator aOuterContour_VerticesBegin
- , PointIterator aOuterContour_VerticesEnd
- )
-{
- return create_interior_straight_skeleton_2(aOuterContour_VerticesBegin
- ,aOuterContour_VerticesEnd
- ,Exact_predicates_inexact_constructions_kernel()
- );
-}
-
-template
+template
std::shared_ptr< Straight_skeleton_2 >
inline
-create_interior_straight_skeleton_2 ( Polygon const& aOutContour,
- K const& k,
+create_interior_straight_skeleton_2 ( const Polygon& aOutContour,
+ const K& k = K(),
std::enable_if_t<
! CGAL_SS_i::has_Hole_const_iterator::value>* = nullptr)
{
@@ -126,26 +97,18 @@ create_interior_straight_skeleton_2 ( Polygon const& aOutContour,
);
}
-template
-std::shared_ptr< Straight_skeleton_2< Exact_predicates_inexact_constructions_kernel > >
-inline
-create_interior_straight_skeleton_2 ( Polygon const& aOutContour )
-{
- return create_interior_straight_skeleton_2(aOutContour, Exact_predicates_inexact_constructions_kernel() );
-}
-
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
/// EXTERIOR
-template
+template
std::shared_ptr< Straight_skeleton_2 >
create_exterior_straight_skeleton_2 ( FT const& aMaxOffset
, PointIterator aVerticesBegin
, PointIterator aVerticesEnd
- , K const& k
- )
+ , const K& k = K())
{
CGAL_precondition( aMaxOffset > 0 ) ;
@@ -195,25 +158,13 @@ create_exterior_straight_skeleton_2 ( FT const& aMaxOffset
return rSkeleton ;
}
-template
-std::shared_ptr< Straight_skeleton_2