@@ -236,6 +236,9 @@ class GEOS_DLL GeometryFactory {
236236 std::unique_ptr<LinearRing> createLinearRing (
237237 std::unique_ptr<CoordinateSequence> && newCoords) const ;
238238
239+ std::unique_ptr<LinearRing> createLinearRing (
240+ const std::shared_ptr<const CoordinateSequence>& newCoords) const ;
241+
239242 // / Construct a LinearRing with a deep-copy of given arguments
240243 std::unique_ptr<LinearRing> createLinearRing (
241244 const CoordinateSequence& coordinates) const ;
@@ -312,6 +315,10 @@ class GEOS_DLL GeometryFactory {
312315 std::unique_ptr<LineString> createLineString (
313316 const CoordinateSequence& coordinates) const ;
314317
318+ // / Construct a LineString with a reference to shared coordinates
319+ std::unique_ptr<LineString> createLineString (
320+ const std::shared_ptr<const CoordinateSequence>&) const ;
321+
315322 // / Construct an EMPTY CircularString
316323 std::unique_ptr<CircularString> createCircularString (bool hasZ, bool hasM) const ;
317324
@@ -322,6 +329,10 @@ class GEOS_DLL GeometryFactory {
322329 std::unique_ptr<CircularString> createCircularString (
323330 std::unique_ptr<CoordinateSequence> && coordinates) const ;
324331
332+ // / Construct a CircularStrign with a reference to shared coordinates
333+ std::unique_ptr<CircularString> createCircularString (
334+ const std::shared_ptr<const CoordinateSequence>& coordinates) const ;
335+
325336 // / Construct a CircularString with a deep-copy of given argument
326337 std::unique_ptr<CircularString> createCircularString (
327338 const CoordinateSequence& coordinates) const ;
0 commit comments