@@ -56,7 +56,7 @@ using namespace geos::operation::linemerge;
5656
5757#include " geometry-builder.hpp"
5858
59- typedef std::auto_ptr <Geometry> geom_ptr;
59+ typedef std::unique_ptr <Geometry> geom_ptr;
6060
6161namespace {
6262
@@ -91,7 +91,7 @@ struct polygondata_comparearea {
9191geometry_builder::maybe_wkt_t geometry_builder::get_wkt_simple (const nodelist_t &nodes, int polygon) const
9292{
9393 GeometryFactory gf;
94- std::auto_ptr <CoordinateSequence> coords (gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
94+ std::unique_ptr <CoordinateSequence> coords (gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
9595
9696 try
9797 {
@@ -102,7 +102,7 @@ geometry_builder::maybe_wkt_t geometry_builder::get_wkt_simple(const nodelist_t
102102 maybe_wkt_t wkt (new geometry_builder::wkt_t ());
103103 geom_ptr geom;
104104 if (polygon && (coords->getSize () >= 4 ) && (coords->getAt (coords->getSize () - 1 ).equals2D (coords->getAt (0 )))) {
105- std::auto_ptr <LinearRing> shell (gf.createLinearRing (coords.release ()));
105+ std::unique_ptr <LinearRing> shell (gf.createLinearRing (coords.release ()));
106106 geom = geom_ptr (gf.createPolygon (shell.release (), new std::vector<Geometry *>));
107107 if (!geom->isValid ()) {
108108 if (excludepoly) {
@@ -143,7 +143,7 @@ geometry_builder::maybe_wkt_t geometry_builder::get_wkt_simple(const nodelist_t
143143geometry_builder::maybe_wkts_t geometry_builder::get_wkt_split (const nodelist_t &nodes, int polygon, double split_at) const
144144{
145145 GeometryFactory gf;
146- std::auto_ptr <CoordinateSequence> coords (gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
146+ std::unique_ptr <CoordinateSequence> coords (gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
147147 WKTWriter writer;
148148 // TODO: use count to get some kind of hint of how much we should reserve?
149149 maybe_wkts_t wkts (new std::vector<geometry_builder::wkt_t >);
@@ -156,7 +156,7 @@ geometry_builder::maybe_wkts_t geometry_builder::get_wkt_split(const nodelist_t
156156
157157 geom_ptr geom;
158158 if (polygon && (coords->getSize () >= 4 ) && (coords->getAt (coords->getSize () - 1 ).equals2D (coords->getAt (0 )))) {
159- std::auto_ptr <LinearRing> shell (gf.createLinearRing (coords.release ()));
159+ std::unique_ptr <LinearRing> shell (gf.createLinearRing (coords.release ()));
160160 geom = geom_ptr (gf.createPolygon (shell.release (), new std::vector<Geometry *>));
161161 if (!geom->isValid ()) {
162162 if (excludepoly) {
@@ -178,8 +178,7 @@ geometry_builder::maybe_wkts_t geometry_builder::get_wkt_split(const nodelist_t
178178 throw std::runtime_error (" Excluding degenerate line." );
179179
180180 double distance = 0 ;
181- std::auto_ptr<CoordinateSequence> segment;
182- segment = std::auto_ptr<CoordinateSequence>(gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
181+ std::unique_ptr<CoordinateSequence> segment (gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
183182 segment->add (coords->getAt (0 ));
184183 for (unsigned i=1 ; i<coords->getSize (); i++) {
185184 const Coordinate this_pt = coords->getAt (i);
@@ -313,7 +312,7 @@ int geometry_builder::parse_wkt(const char * wkt, multinodelist_t &nodes, int *p
313312geometry_builder::maybe_wkts_t geometry_builder::build_polygons (const multinodelist_t &xnodes,
314313 bool enable_multi, osmid_t osm_id) const
315314{
316- std::auto_ptr <std::vector<Geometry*> > lines (new std::vector<Geometry*>);
315+ std::unique_ptr <std::vector<Geometry*> > lines (new std::vector<Geometry*>);
317316 GeometryFactory gf;
318317 geom_ptr geom;
319318 geos::geom::prep::PreparedGeometryFactory pgf;
@@ -323,7 +322,7 @@ geometry_builder::maybe_wkts_t geometry_builder::build_polygons(const multinodel
323322 try
324323 {
325324 for (multinodelist_t ::const_iterator it = xnodes.begin (); it != xnodes.end (); ++it) {
326- std::auto_ptr <CoordinateSequence> coords (gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
325+ std::unique_ptr <CoordinateSequence> coords (gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
327326 for (nodelist_t ::const_iterator node = it->begin (); node != it->end (); ++node) {
328327 Coordinate c;
329328 c.x = node->lon ;
@@ -342,7 +341,7 @@ geometry_builder::maybe_wkts_t geometry_builder::build_polygons(const multinodel
342341 LineMerger merger;
343342 // merger.add(noded.get());
344343 merger.add (mline.get ());
345- std::auto_ptr <std::vector<LineString *> > merged (merger.getMergedLineStrings ());
344+ std::unique_ptr <std::vector<LineString *> > merged (merger.getMergedLineStrings ());
346345 WKTWriter writer;
347346
348347 // Procces ways into lines or simple polygon list
@@ -351,7 +350,7 @@ geometry_builder::maybe_wkts_t geometry_builder::build_polygons(const multinodel
351350 unsigned totalpolys = 0 ;
352351 for (unsigned i=0 ;i < merged->size (); ++i)
353352 {
354- std::auto_ptr <LineString> pline ((*merged ) [i]);
353+ std::unique_ptr <LineString> pline ((*merged ) [i]);
355354 if (pline->getNumPoints () > 3 && pline->isClosed ())
356355 {
357356 polys[totalpolys].polygon = gf.createPolygon (gf.createLinearRing (pline->getCoordinates ()),0 );
@@ -426,15 +425,15 @@ geometry_builder::maybe_wkts_t geometry_builder::build_polygons(const multinodel
426425 // polys now is a list of polygons tagged with which ones are inside each other
427426
428427 // List of polygons for multipolygon
429- std::auto_ptr <std::vector<Geometry*> > polygons (new std::vector<Geometry*>);
428+ std::unique_ptr <std::vector<Geometry*> > polygons (new std::vector<Geometry*>);
430429
431430 // For each top level polygon create a new polygon including any holes
432431 for (unsigned i=0 ;i < totalpolys; ++i)
433432 {
434433 if (polys[i].iscontained != 0 ) continue ;
435434
436435 // List of holes for this top level polygon
437- std::auto_ptr <std::vector<Geometry*> > interior (new std::vector<Geometry*>);
436+ std::unique_ptr <std::vector<Geometry*> > interior (new std::vector<Geometry*>);
438437 for (unsigned j=i+1 ; j < totalpolys; ++j)
439438 {
440439 if (polys[j].iscontained == 1 && polys[j].containedbyid == i)
@@ -507,7 +506,7 @@ geometry_builder::maybe_wkts_t geometry_builder::build_polygons(const multinodel
507506
508507geometry_builder::maybe_wkt_t geometry_builder::build_multilines (const multinodelist_t &xnodes, osmid_t osm_id) const
509508{
510- std::auto_ptr <std::vector<Geometry*> > lines (new std::vector<Geometry*>);
509+ std::unique_ptr <std::vector<Geometry*> > lines (new std::vector<Geometry*>);
511510 GeometryFactory gf;
512511 geom_ptr geom;
513512
@@ -516,7 +515,7 @@ geometry_builder::maybe_wkt_t geometry_builder::build_multilines(const multinode
516515 try
517516 {
518517 for (multinodelist_t ::const_iterator it = xnodes.begin (); it != xnodes.end (); ++it) {
519- std::auto_ptr <CoordinateSequence> coords (gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
518+ std::unique_ptr <CoordinateSequence> coords (gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
520519 for (nodelist_t ::const_iterator node = it->begin (); node != it->end (); ++node) {
521520 Coordinate c;
522521 c.x = node->lon ;
@@ -552,7 +551,7 @@ geometry_builder::maybe_wkts_t geometry_builder::build_both(const multinodelist_
552551 int make_polygon, int enable_multi,
553552 double split_at, osmid_t osm_id) const
554553{
555- std::auto_ptr <std::vector<Geometry*> > lines (new std::vector<Geometry*>);
554+ std::unique_ptr <std::vector<Geometry*> > lines (new std::vector<Geometry*>);
556555 GeometryFactory gf;
557556 geom_ptr geom;
558557 geos::geom::prep::PreparedGeometryFactory pgf;
@@ -562,7 +561,7 @@ geometry_builder::maybe_wkts_t geometry_builder::build_both(const multinodelist_
562561 try
563562 {
564563 for (multinodelist_t ::const_iterator it = xnodes.begin (); it != xnodes.end (); ++it) {
565- std::auto_ptr <CoordinateSequence> coords (gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
564+ std::unique_ptr <CoordinateSequence> coords (gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
566565 for (nodelist_t ::const_iterator node = it->begin (); node != it->end (); ++node) {
567566 Coordinate c;
568567 c.x = node->lon ;
@@ -581,7 +580,7 @@ geometry_builder::maybe_wkts_t geometry_builder::build_both(const multinodelist_
581580 LineMerger merger;
582581 // merger.add(noded.get());
583582 merger.add (mline.get ());
584- std::auto_ptr <std::vector<LineString *> > merged (merger.getMergedLineStrings ());
583+ std::unique_ptr <std::vector<LineString *> > merged (merger.getMergedLineStrings ());
585584 WKTWriter writer;
586585
587586 // Procces ways into lines or simple polygon list
@@ -590,7 +589,7 @@ geometry_builder::maybe_wkts_t geometry_builder::build_both(const multinodelist_
590589 unsigned totalpolys = 0 ;
591590 for (unsigned i=0 ;i < merged->size (); ++i)
592591 {
593- std::auto_ptr <LineString> pline ((*merged ) [i]);
592+ std::unique_ptr <LineString> pline ((*merged ) [i]);
594593 if (make_polygon && pline->getNumPoints () > 3 && pline->isClosed ())
595594 {
596595 polys[totalpolys].polygon = gf.createPolygon (gf.createLinearRing (pline->getCoordinates ()),0 );
@@ -609,8 +608,8 @@ geometry_builder::maybe_wkts_t geometry_builder::build_both(const multinodelist_
609608 {
610609 // std::cerr << "polygon(" << osm_id << ") is no good: points(" << pline->getNumPoints() << "), closed(" << pline->isClosed() << "). " << writer.write(pline.get()) << std::endl;
611610 double distance = 0 ;
612- std::auto_ptr <CoordinateSequence> segment;
613- segment = std::auto_ptr <CoordinateSequence>(gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
611+ std::unique_ptr <CoordinateSequence> segment;
612+ segment = std::unique_ptr <CoordinateSequence>(gf.getCoordinateSequenceFactory ()->create ((size_t )0 , (size_t )2 ));
614613 segment->add (pline->getCoordinateN (0 ));
615614 for (unsigned i=1 ; i<pline->getNumPoints (); i++) {
616615 segment->add (pline->getCoordinateN (i));
@@ -694,15 +693,15 @@ geometry_builder::maybe_wkts_t geometry_builder::build_both(const multinodelist_
694693 // polys now is a list of polygons tagged with which ones are inside each other
695694
696695 // List of polygons for multipolygon
697- std::auto_ptr <std::vector<Geometry*> > polygons (new std::vector<Geometry*>);
696+ std::unique_ptr <std::vector<Geometry*> > polygons (new std::vector<Geometry*>);
698697
699698 // For each top level polygon create a new polygon including any holes
700699 for (unsigned i=0 ;i < totalpolys; ++i)
701700 {
702701 if (polys[i].iscontained != 0 ) continue ;
703702
704703 // List of holes for this top level polygon
705- std::auto_ptr <std::vector<Geometry*> > interior (new std::vector<Geometry*>);
704+ std::unique_ptr <std::vector<Geometry*> > interior (new std::vector<Geometry*>);
706705 for (unsigned j=i+1 ; j < totalpolys; ++j)
707706 {
708707 if (polys[j].iscontained == 1 && polys[j].containedbyid == i)
0 commit comments