From 3b1c7308cc157a799c021280895843cdc876e25f Mon Sep 17 00:00:00 2001 From: artemp Date: Mon, 27 Jun 2016 10:23:13 +0100 Subject: [PATCH] make mapnik::geometry::line_string an alias to mapbox::geometry::line_string --- benchmark/test_polygon_clipping.cpp | 28 +-- include/mapnik/geometry/line_string.hpp | 19 +- include/mapnik/hit_test_filter.hpp | 4 +- include/mapnik/json/topojson_utils.hpp | 10 +- plugins/input/ogr/ogr_converter.cpp | 2 +- plugins/input/shape/shape_io.cpp | 4 +- test/unit/geometry/centroid.cpp | 70 +++--- test/unit/geometry/geometry_envelope_test.cpp | 58 ++--- test/unit/geometry/geometry_hit_test.cpp | 53 +++-- test/unit/geometry/geometry_is_simple.cpp | 204 +++++++++--------- test/unit/geometry/geometry_is_valid.cpp | 194 ++++++++--------- test/unit/geometry/has_empty.cpp | 28 +-- test/unit/geometry/is_empty.cpp | 22 +- test/unit/geometry/remove_empty.cpp | 17 +- test/unit/vertex_adapter/vertex_adapter.cpp | 39 ++-- 15 files changed, 368 insertions(+), 384 deletions(-) diff --git a/benchmark/test_polygon_clipping.cpp b/benchmark/test_polygon_clipping.cpp index b189a0443..b9ded3eea 100644 --- a/benchmark/test_polygon_clipping.cpp +++ b/benchmark/test_polygon_clipping.cpp @@ -123,10 +123,10 @@ public: if (cmd == mapnik::SEG_CLOSE) { - ring.add_coord(x0, y0); + ring.emplace_back(x0, y0); break; } - ring.add_coord(x,y); + ring.emplace_back(x,y); } poly2.set_exterior_ring(std::move(ring)); // interior rings @@ -139,12 +139,12 @@ public: } else if (cmd == mapnik::SEG_CLOSE) { - ring.add_coord(x0,y0); + ring.emplace_back(x0,y0); poly2.add_hole(std::move(ring)); ring.clear(); continue; } - ring.add_coord(x,y); + ring.emplace_back(x,y); } std::string expect = expected_+".png"; @@ -243,11 +243,11 @@ public: mapnik::geometry::correct(poly); mapnik::geometry::linear_ring bbox; - bbox.add_coord(extent_.minx(), extent_.miny()); - bbox.add_coord(extent_.minx(), extent_.maxy()); - bbox.add_coord(extent_.maxx(), extent_.maxy()); - bbox.add_coord(extent_.maxx(), extent_.miny()); - bbox.add_coord(extent_.minx(), extent_.miny()); + bbox.emplace_back(extent_.minx(), extent_.miny()); + bbox.emplace_back(extent_.minx(), extent_.maxy()); + bbox.emplace_back(extent_.maxx(), extent_.maxy()); + bbox.emplace_back(extent_.maxx(), extent_.miny()); + bbox.emplace_back(extent_.minx(), extent_.miny()); std::deque > result; boost::geometry::intersection(bbox, poly, result); @@ -291,11 +291,11 @@ public: mapnik::geometry::correct(poly); mapnik::geometry::linear_ring bbox; - bbox.add_coord(extent_.minx(), extent_.miny()); - bbox.add_coord(extent_.minx(), extent_.maxy()); - bbox.add_coord(extent_.maxx(), extent_.maxy()); - bbox.add_coord(extent_.maxx(), extent_.miny()); - bbox.add_coord(extent_.minx(), extent_.miny()); + bbox.emplace_back(extent_.minx(), extent_.miny()); + bbox.emplace_back(extent_.minx(), extent_.maxy()); + bbox.emplace_back(extent_.maxx(), extent_.maxy()); + bbox.emplace_back(extent_.maxx(), extent_.miny()); + bbox.emplace_back(extent_.minx(), extent_.miny()); bool valid = true; for (unsigned i=0;i -// stl -#include +#include namespace mapnik { namespace geometry { -template class Cont = std::vector> -struct line_string : Cont > -{ - using coordinate_type = T; - using point_type = point; - using container_type = Cont; - line_string() = default; - explicit line_string(std::size_t size) - : container_type(size) {} - inline std::size_t num_points() const { return container_type::size(); } - inline void add_coord(coordinate_type x, coordinate_type y) { container_type::template emplace_back(x,y);} -}; - +template +using line_string = mapbox::geometry::line_string; }} #endif // MAPNIK_GEOMETRY_LINE_STRING_HPP diff --git a/include/mapnik/hit_test_filter.hpp b/include/mapnik/hit_test_filter.hpp index 4d960ce34..a74910e70 100644 --- a/include/mapnik/hit_test_filter.hpp +++ b/include/mapnik/hit_test_filter.hpp @@ -68,7 +68,7 @@ struct hit_test_visitor } bool operator() (geometry::line_string const& geom) const { - std::size_t num_points = geom.num_points(); + std::size_t num_points = geom.size(); if (num_points > 1) { for (std::size_t i = 1; i < num_points; ++i) @@ -92,7 +92,7 @@ struct hit_test_visitor bool operator() (geometry::polygon const& geom) const { auto const& exterior = geom.exterior_ring; - std::size_t num_points = exterior.num_points(); + std::size_t num_points = exterior.size(); if (num_points < 4) return false; bool inside = false; for (std::size_t i = 1; i < num_points; ++i) diff --git a/include/mapnik/json/topojson_utils.hpp b/include/mapnik/json/topojson_utils.hpp index 40a2c91ff..0ff3262e9 100644 --- a/include/mapnik/json/topojson_utils.hpp +++ b/include/mapnik/json/topojson_utils.hpp @@ -313,7 +313,7 @@ struct feature_generator x = x * (*topo_.tr).scale_x + (*topo_.tr).translate_x; y = y * (*topo_.tr).scale_y + (*topo_.tr).translate_y; } - multi_point.add_coord(x, y); + multi_point.emplace_back(x, y); } feature->set_geometry(std::move(multi_point)); assign_properties(*feature, multi_pt, tr_); @@ -344,7 +344,7 @@ struct feature_generator x = (px += x) * (*topo_.tr).scale_x + (*topo_.tr).translate_x; y = (py += y) * (*topo_.tr).scale_y + (*topo_.tr).translate_y; } - line_string.add_coord(x,y); + line_string.emplace_back(x,y); } } } @@ -383,7 +383,7 @@ struct feature_generator x = (px += x) * (*topo_.tr).scale_x + (*topo_.tr).translate_x; y = (py += y) * (*topo_.tr).scale_y + (*topo_.tr).translate_y; } - line_string.add_coord(x, y); + line_string.emplace_back(x, y); } } @@ -524,14 +524,14 @@ struct feature_generator { for (auto const& c : (processed_coords | reversed)) { - linear_ring.add_coord(c.x, c.y); + linear_ring.emplace_back(c.x, c.y); } } else { for (auto const& c : processed_coords) { - linear_ring.add_coord(c.x, c.y); + linear_ring.emplace_back(c.x, c.y); } } } diff --git a/plugins/input/ogr/ogr_converter.cpp b/plugins/input/ogr/ogr_converter.cpp index 207c0e1e4..1a9d58738 100644 --- a/plugins/input/ogr/ogr_converter.cpp +++ b/plugins/input/ogr/ogr_converter.cpp @@ -98,7 +98,7 @@ mapnik::geometry::line_string ogr_converter::convert_linestring(OGRLineS geom.reserve(num_points); for (int i = 0; i < num_points; ++i) { - geom.add_coord(ogr_geom->getX(i), ogr_geom->getY(i)); + geom.emplace_back(ogr_geom->getX(i), ogr_geom->getY(i)); } return geom; } diff --git a/plugins/input/shape/shape_io.cpp b/plugins/input/shape/shape_io.cpp index 5dd591996..bbd53a408 100644 --- a/plugins/input/shape/shape_io.cpp +++ b/plugins/input/shape/shape_io.cpp @@ -114,7 +114,7 @@ mapnik::geometry::geometry shape_io::read_polyline(shape_file::record_ty { double x = record.read_double(); double y = record.read_double(); - line.add_coord(x, y); + line.emplace_back(x, y); } geom = std::move(line); } @@ -144,7 +144,7 @@ mapnik::geometry::geometry shape_io::read_polyline(shape_file::record_ty { double x = record.read_double(); double y = record.read_double(); - line.add_coord(x, y); + line.emplace_back(x, y); } multi_line.push_back(std::move(line)); } diff --git a/test/unit/geometry/centroid.cpp b/test/unit/geometry/centroid.cpp index 9d0741d52..f867cd74c 100644 --- a/test/unit/geometry/centroid.cpp +++ b/test/unit/geometry/centroid.cpp @@ -30,9 +30,9 @@ SECTION("point") { SECTION("linestring") { mapnik::geometry::line_string line; - line.add_coord(0, 0); - line.add_coord(25, 25); - line.add_coord(50, 50); + line.emplace_back(0, 0); + line.emplace_back(25, 25); + line.emplace_back(50, 50); mapnik::geometry::point centroid; REQUIRE(mapnik::geometry::centroid(line, centroid)); REQUIRE(centroid.x == 25); @@ -50,11 +50,11 @@ SECTION("polygon") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0, 0); - ring.add_coord(1, 0); - ring.add_coord(1, 1); - ring.add_coord(0, 1); - ring.add_coord(0, 0); + ring.emplace_back(0, 0); + ring.emplace_back(1, 0); + ring.emplace_back(1, 1); + ring.emplace_back(0, 1); + ring.emplace_back(0, 0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::point centroid; @@ -83,9 +83,9 @@ SECTION("empty polygon") { SECTION("multi-point") { mapnik::geometry::multi_point geom; - geom.add_coord(0, 0); - geom.add_coord(25, 25); - geom.add_coord(50, 50); + geom.emplace_back(0, 0); + geom.emplace_back(25, 25); + geom.emplace_back(50, 50); mapnik::geometry::point centroid; REQUIRE(mapnik::geometry::centroid(geom, centroid)); REQUIRE(centroid.x == 25); @@ -104,16 +104,16 @@ SECTION("multi-linestring") { mapnik::geometry::multi_line_string geom; { mapnik::geometry::line_string line; - line.add_coord(0, 0); - line.add_coord(0, 25); - line.add_coord(0, 50); + line.emplace_back(0, 0); + line.emplace_back(0, 25); + line.emplace_back(0, 50); geom.emplace_back(std::move(line)); } { mapnik::geometry::line_string line; - line.add_coord(0, 0); - line.add_coord(25, 0); - line.add_coord(50, 0); + line.emplace_back(0, 0); + line.emplace_back(25, 0); + line.emplace_back(50, 0); geom.emplace_back(std::move(line)); } mapnik::geometry::point centroid; @@ -126,9 +126,9 @@ SECTION("multi-linestring: one component empty") { mapnik::geometry::multi_line_string geom; mapnik::geometry::line_string line; - line.add_coord(0, 0); - line.add_coord(0, 25); - line.add_coord(0, 50); + line.emplace_back(0, 0); + line.emplace_back(0, 25); + line.emplace_back(0, 50); geom.emplace_back(std::move(line)); geom.emplace_back(); mapnik::geometry::point centroid; @@ -150,22 +150,22 @@ SECTION("multi-polygon") { { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0, 0); - ring.add_coord(1, 0); - ring.add_coord(1, 1); - ring.add_coord(0, 1); - ring.add_coord(0, 0); + ring.emplace_back(0, 0); + ring.emplace_back(1, 0); + ring.emplace_back(1, 1); + ring.emplace_back(0, 1); + ring.emplace_back(0, 0); poly.set_exterior_ring(std::move(ring)); geom.emplace_back(std::move(poly)); } { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(1, 1); - ring.add_coord(2, 1); - ring.add_coord(2, 2); - ring.add_coord(1, 2); - ring.add_coord(1, 1); + ring.emplace_back(1, 1); + ring.emplace_back(2, 1); + ring.emplace_back(2, 2); + ring.emplace_back(1, 2); + ring.emplace_back(1, 1); poly.set_exterior_ring(std::move(ring)); geom.emplace_back(std::move(poly)); } @@ -181,11 +181,11 @@ SECTION("multi-polygon: one component empty") { mapnik::geometry::multi_polygon geom; mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0, 0); - ring.add_coord(1, 0); - ring.add_coord(1, 1); - ring.add_coord(0, 1); - ring.add_coord(0, 0); + ring.emplace_back(0, 0); + ring.emplace_back(1, 0); + ring.emplace_back(1, 1); + ring.emplace_back(0, 1); + ring.emplace_back(0, 0); poly.set_exterior_ring(std::move(ring)); geom.emplace_back(std::move(poly)); geom.emplace_back(); diff --git a/test/unit/geometry/geometry_envelope_test.cpp b/test/unit/geometry/geometry_envelope_test.cpp index d8904dd5f..77c2e2b85 100644 --- a/test/unit/geometry/geometry_envelope_test.cpp +++ b/test/unit/geometry/geometry_envelope_test.cpp @@ -27,9 +27,9 @@ void envelope_test() } { line_string line; - line.add_coord(0,0); - line.add_coord(1,1); - line.add_coord(2,2); + line.emplace_back(0,0); + line.emplace_back(1,1); + line.emplace_back(2,2); geometry geom(line); mapnik::box2d bbox = mapnik::geometry::envelope(geom); REQUIRE( bbox.minx() == 0 ); @@ -39,13 +39,13 @@ void envelope_test() } { line_string line; - line.add_coord(0,0); - line.add_coord(1,1); - line.add_coord(2,2); + line.emplace_back(0,0); + line.emplace_back(1,1); + line.emplace_back(2,2); line_string line2; - line2.add_coord(0,0); - line2.add_coord(-1,-1); - line2.add_coord(-2,-2); + line2.emplace_back(0,0); + line2.emplace_back(-1,-1); + line2.emplace_back(-2,-2); multi_line_string multi_line; multi_line.emplace_back(std::move(line)); multi_line.emplace_back(std::move(line2)); @@ -59,11 +59,11 @@ void envelope_test() { polygon poly; linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(-10,0); - ring.add_coord(-10,10); - ring.add_coord(0,10); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(-10,0); + ring.emplace_back(-10,10); + ring.emplace_back(0,10); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); geometry geom(poly); mapnik::box2d bbox = mapnik::geometry::envelope(geom); @@ -102,18 +102,18 @@ void envelope_test() // polygon with hole polygon poly; linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(-10,0); - ring.add_coord(-10,10); - ring.add_coord(0,10); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(-10,0); + ring.emplace_back(-10,10); + ring.emplace_back(0,10); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); linear_ring hole; - hole.add_coord(-7,7); - hole.add_coord(-7,3); - hole.add_coord(-3,3); - hole.add_coord(-3,7); - hole.add_coord(-7,7); + hole.emplace_back(-7,7); + hole.emplace_back(-7,3); + hole.emplace_back(-3,3); + hole.emplace_back(-3,7); + hole.emplace_back(-7,7); poly.add_hole(std::move(hole)); geometry geom(poly); mapnik::box2d bbox = mapnik::geometry::envelope(poly); @@ -124,11 +124,11 @@ void envelope_test() // add another hole inside the first hole // which should be considered a hit linear_ring fill; - fill.add_coord(-6,4); - fill.add_coord(-6,6); - fill.add_coord(-4,6); - fill.add_coord(-4,4); - fill.add_coord(-6,4); + fill.emplace_back(-6,4); + fill.emplace_back(-6,6); + fill.emplace_back(-4,6); + fill.emplace_back(-4,4); + fill.emplace_back(-6,4); poly.add_hole(std::move(fill)); bbox = mapnik::geometry::envelope(poly); REQUIRE( bbox.minx() == -10 ); diff --git a/test/unit/geometry/geometry_hit_test.cpp b/test/unit/geometry/geometry_hit_test.cpp index 3b21407f6..72695d849 100644 --- a/test/unit/geometry/geometry_hit_test.cpp +++ b/test/unit/geometry/geometry_hit_test.cpp @@ -1,4 +1,3 @@ - #include "catch.hpp" #include @@ -27,17 +26,17 @@ SECTION("hit_test_filter - double") { } { line_string line; - line.add_coord(0,0); - line.add_coord(1,1); - line.add_coord(2,2); + line.emplace_back(0,0); + line.emplace_back(1,1); + line.emplace_back(2,2); geometry geom(line); REQUIRE( mapnik::hit_test(geom,0,0,1.5) ); } { line_string line; - line.add_coord(0,0); - line.add_coord(1,1); - line.add_coord(2,2); + line.emplace_back(0,0); + line.emplace_back(1,1); + line.emplace_back(2,2); multi_line_string multi_line; multi_line.emplace_back(std::move(line)); geometry geom(multi_line); @@ -46,11 +45,11 @@ SECTION("hit_test_filter - double") { { polygon poly; linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(-10,0); - ring.add_coord(-10,10); - ring.add_coord(0,10); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(-10,0); + ring.emplace_back(-10,10); + ring.emplace_back(0,10); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); geometry geom(poly); REQUIRE( mapnik::hit_test(geom,-5,5,0) ); @@ -78,29 +77,29 @@ SECTION("hit_test_filter - double") { // polygon with hole polygon poly; linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(-10,0); - ring.add_coord(-10,10); - ring.add_coord(0,10); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(-10,0); + ring.emplace_back(-10,10); + ring.emplace_back(0,10); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); linear_ring hole; - hole.add_coord(-7,7); - hole.add_coord(-7,3); - hole.add_coord(-3,3); - hole.add_coord(-3,7); - hole.add_coord(-7,7); + hole.emplace_back(-7,7); + hole.emplace_back(-7,3); + hole.emplace_back(-3,3); + hole.emplace_back(-3,7); + hole.emplace_back(-7,7); poly.add_hole(std::move(hole)); geometry geom(poly); REQUIRE( !mapnik::hit_test(geom,-5,5,0) ); // add another hole inside the first hole // which should be considered a hit linear_ring fill; - fill.add_coord(-6,4); - fill.add_coord(-6,6); - fill.add_coord(-4,6); - fill.add_coord(-4,4); - fill.add_coord(-6,4); + fill.emplace_back(-6,4); + fill.emplace_back(-6,6); + fill.emplace_back(-4,6); + fill.emplace_back(-4,4); + fill.emplace_back(-6,4); poly.add_hole(std::move(fill)); REQUIRE( mapnik::hit_test(geometry(poly),-5,5,0) ); } diff --git a/test/unit/geometry/geometry_is_simple.cpp b/test/unit/geometry/geometry_is_simple.cpp index 6522866b5..2177dea68 100644 --- a/test/unit/geometry/geometry_is_simple.cpp +++ b/test/unit/geometry/geometry_is_simple.cpp @@ -52,8 +52,8 @@ SECTION("point Infinity") { SECTION("multi point") { mapnik::geometry::multi_point mpt; - mpt.add_coord(0,0); - mpt.add_coord(1,1); + mpt.emplace_back(0,0); + mpt.emplace_back(1,1); CHECK( mapnik::geometry::is_simple(mpt) ); } @@ -64,18 +64,18 @@ SECTION("multi point empty") { SECTION("line_string") { mapnik::geometry::line_string line; - line.add_coord(0,0); - line.add_coord(1,1); + line.emplace_back(0,0); + line.emplace_back(1,1); CHECK( mapnik::geometry::is_simple(line) ); } // This fails while is_valid will not fail! SECTION("line_string repeated points") { mapnik::geometry::line_string line; - line.add_coord(0,0); - line.add_coord(1,1); - line.add_coord(1,1); - line.add_coord(2,2); + line.emplace_back(0,0); + line.emplace_back(1,1); + line.emplace_back(1,1); + line.emplace_back(2,2); CHECK( !mapnik::geometry::is_simple(line) ); } @@ -86,11 +86,11 @@ SECTION("line_string empty") { SECTION("multi_line_string") { mapnik::geometry::line_string line1; - line1.add_coord(0,0); - line1.add_coord(1,1); + line1.emplace_back(0,0); + line1.emplace_back(1,1); mapnik::geometry::line_string line2; - line2.add_coord(0,1); - line2.add_coord(1,2); + line2.emplace_back(0,1); + line2.emplace_back(1,2); mapnik::geometry::multi_line_string lines; lines.emplace_back(line1); lines.emplace_back(line2); @@ -112,11 +112,11 @@ SECTION("multi_line_string empty") { SECTION("polygon") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); CHECK( mapnik::geometry::is_simple(poly) ); } @@ -124,11 +124,11 @@ SECTION("polygon") { SECTION("polygon invalid winding order") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(0,1); - ring.add_coord(1,1); - ring.add_coord(1,0); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(0,1); + ring.emplace_back(1,1); + ring.emplace_back(1,0); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); CHECK( mapnik::geometry::is_simple(poly) ); } @@ -138,12 +138,12 @@ SECTION("polygon invalid winding order") { SECTION("polygon 2 repeated points") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); CHECK( !mapnik::geometry::is_simple(poly) ); } @@ -152,13 +152,13 @@ SECTION("polygon 2 repeated points") { SECTION("polygon 3 repeated points") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(1,1); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(1,1); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); CHECK( !mapnik::geometry::is_simple(poly) ); } @@ -180,11 +180,11 @@ SECTION("polygon that has empty exterior ring") { SECTION("polygon that has empty interior ring") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::linear_ring ring2; poly.add_hole(std::move(ring2)); @@ -208,11 +208,11 @@ SECTION("polygon that has empty exterior ring") { SECTION("polygon that has empty interior ring") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::linear_ring ring2; poly.add_hole(std::move(ring2)); @@ -225,13 +225,13 @@ SECTION("polygon that has empty interior ring") { SECTION("polygon with spike") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(2,2); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(2,2); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); CHECK( mapnik::geometry::is_simple(poly) ); } @@ -239,18 +239,18 @@ SECTION("polygon with spike") { SECTION("polygon with hole") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(3,0); - ring.add_coord(3,3); - ring.add_coord(0,3); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(3,0); + ring.emplace_back(3,3); + ring.emplace_back(0,3); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::linear_ring hole; - hole.add_coord(1,1); - hole.add_coord(1,2); - hole.add_coord(2,2); - hole.add_coord(2,1); - hole.add_coord(1,1); + hole.emplace_back(1,1); + hole.emplace_back(1,2); + hole.emplace_back(2,2); + hole.emplace_back(2,1); + hole.emplace_back(1,1); poly.add_hole(std::move(hole)); CHECK( mapnik::geometry::is_simple(poly) ); } @@ -259,18 +259,18 @@ SECTION("polygon with hole") { SECTION("polygon with hole with invalid winding order") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(3,0); - ring.add_coord(3,3); - ring.add_coord(0,3); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(3,0); + ring.emplace_back(3,3); + ring.emplace_back(0,3); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::linear_ring hole; - hole.add_coord(1,1); - hole.add_coord(2,1); - hole.add_coord(2,2); - hole.add_coord(1,2); - hole.add_coord(1,1); + hole.emplace_back(1,1); + hole.emplace_back(2,1); + hole.emplace_back(2,2); + hole.emplace_back(1,2); + hole.emplace_back(1,1); poly.add_hole(std::move(hole)); CHECK( mapnik::geometry::is_simple(poly) ); } @@ -279,19 +279,19 @@ SECTION("multi polygon") { mapnik::geometry::multi_polygon mp; mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::polygon poly2; mapnik::geometry::linear_ring ring2; - ring2.add_coord(0,0); - ring2.add_coord(-1,0); - ring2.add_coord(-1,-1); - ring2.add_coord(0,-1); - ring2.add_coord(0,0); + ring2.emplace_back(0,0); + ring2.emplace_back(-1,0); + ring2.emplace_back(-1,-1); + ring2.emplace_back(0,-1); + ring2.emplace_back(0,0); poly2.set_exterior_ring(std::move(ring2)); mp.emplace_back(poly); mp.emplace_back(poly2); @@ -302,33 +302,33 @@ SECTION("multi polygon with hole") { mapnik::geometry::multi_polygon mp; mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(3,0); - ring.add_coord(3,3); - ring.add_coord(0,3); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(3,0); + ring.emplace_back(3,3); + ring.emplace_back(0,3); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::linear_ring hole; - hole.add_coord(1,1); - hole.add_coord(1,2); - hole.add_coord(2,2); - hole.add_coord(2,1); - hole.add_coord(1,1); + hole.emplace_back(1,1); + hole.emplace_back(1,2); + hole.emplace_back(2,2); + hole.emplace_back(2,1); + hole.emplace_back(1,1); poly.add_hole(std::move(hole)); mapnik::geometry::polygon poly2; mapnik::geometry::linear_ring ring2; - ring2.add_coord(0,0); - ring2.add_coord(-3,0); - ring2.add_coord(-3,-3); - ring2.add_coord(0,-3); - ring2.add_coord(0,0); + ring2.emplace_back(0,0); + ring2.emplace_back(-3,0); + ring2.emplace_back(-3,-3); + ring2.emplace_back(0,-3); + ring2.emplace_back(0,0); poly2.set_exterior_ring(std::move(ring2)); mapnik::geometry::linear_ring hole2; - hole2.add_coord(-1,-1); - hole2.add_coord(-1,-2); - hole2.add_coord(-2,-2); - hole2.add_coord(-2,-1); - hole2.add_coord(-1,-1); + hole2.emplace_back(-1,-1); + hole2.emplace_back(-1,-2); + hole2.emplace_back(-2,-2); + hole2.emplace_back(-2,-1); + hole2.emplace_back(-1,-1); poly2.add_hole(std::move(hole2)); mp.emplace_back(poly); mp.emplace_back(poly2); diff --git a/test/unit/geometry/geometry_is_valid.cpp b/test/unit/geometry/geometry_is_valid.cpp index e64ee30ad..63c2f348b 100644 --- a/test/unit/geometry/geometry_is_valid.cpp +++ b/test/unit/geometry/geometry_is_valid.cpp @@ -123,8 +123,8 @@ SECTION("point Infinity") { SECTION("multi point") { mapnik::geometry::multi_point mpt; - mpt.add_coord(0,0); - mpt.add_coord(1,1); + mpt.emplace_back(0,0); + mpt.emplace_back(1,1); CHECK( mapnik::geometry::is_valid(mpt) ); std::string message; CHECK( mapnik::geometry::is_valid(mpt, message) ); @@ -148,8 +148,8 @@ SECTION("multi point empty") { SECTION("line_string") { mapnik::geometry::line_string line; - line.add_coord(0,0); - line.add_coord(1,1); + line.emplace_back(0,0); + line.emplace_back(1,1); CHECK( mapnik::geometry::is_valid(line) ); std::string message; CHECK( mapnik::geometry::is_valid(line, message) ); @@ -162,10 +162,10 @@ SECTION("line_string") { // This shouldn't fail -- test added in case logic ever changes SECTION("line_string repeated points") { mapnik::geometry::line_string line; - line.add_coord(0,0); - line.add_coord(1,1); - line.add_coord(1,1); - line.add_coord(2,2); + line.emplace_back(0,0); + line.emplace_back(1,1); + line.emplace_back(1,1); + line.emplace_back(2,2); CHECK( mapnik::geometry::is_valid(line) ); std::string message; CHECK( mapnik::geometry::is_valid(line, message) ); @@ -188,11 +188,11 @@ SECTION("line_string empty") { SECTION("multi_line_string") { mapnik::geometry::line_string line1; - line1.add_coord(0,0); - line1.add_coord(1,1); + line1.emplace_back(0,0); + line1.emplace_back(1,1); mapnik::geometry::line_string line2; - line2.add_coord(0,1); - line2.add_coord(1,2); + line2.emplace_back(0,1); + line2.emplace_back(1,2); mapnik::geometry::multi_line_string lines; lines.emplace_back(line1); lines.emplace_back(line2); @@ -219,11 +219,11 @@ SECTION("multi_line_string empty") { SECTION("polygon") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); CHECK( mapnik::geometry::is_valid(poly) ); std::string message; @@ -237,11 +237,11 @@ SECTION("polygon") { SECTION("polygon invalid winding order") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(0,1); - ring.add_coord(1,1); - ring.add_coord(1,0); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(0,1); + ring.emplace_back(1,1); + ring.emplace_back(1,0); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); CHECK( !mapnik::geometry::is_valid(poly) ); std::string message; @@ -256,12 +256,12 @@ SECTION("polygon invalid winding order") { SECTION("polygon 2 repeated points") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); CHECK( mapnik::geometry::is_valid(poly) ); std::string message; @@ -275,13 +275,13 @@ SECTION("polygon 2 repeated points") { SECTION("polygon 3 repeated points") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(1,1); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(1,1); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); CHECK( mapnik::geometry::is_valid(poly) ); std::string message; @@ -306,13 +306,13 @@ SECTION("polygon that is empty") { SECTION("polygon with spike") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(2,2); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(2,2); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); CHECK( !mapnik::geometry::is_valid(poly) ); std::string message; @@ -326,18 +326,18 @@ SECTION("polygon with spike") { SECTION("polygon with hole") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(3,0); - ring.add_coord(3,3); - ring.add_coord(0,3); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(3,0); + ring.emplace_back(3,3); + ring.emplace_back(0,3); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::linear_ring hole; - hole.add_coord(1,1); - hole.add_coord(1,2); - hole.add_coord(2,2); - hole.add_coord(2,1); - hole.add_coord(1,1); + hole.emplace_back(1,1); + hole.emplace_back(1,2); + hole.emplace_back(2,2); + hole.emplace_back(2,1); + hole.emplace_back(1,1); poly.add_hole(std::move(hole)); CHECK( mapnik::geometry::is_valid(poly) ); std::string message; @@ -351,11 +351,11 @@ SECTION("polygon with hole") { SECTION("polygon with empty hole") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(3,0); - ring.add_coord(3,3); - ring.add_coord(0,3); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(3,0); + ring.emplace_back(3,3); + ring.emplace_back(0,3); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::linear_ring hole; poly.add_hole(std::move(hole)); @@ -372,18 +372,18 @@ SECTION("polygon with empty hole") { SECTION("polygon with hole with invalid winding order") { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(3,0); - ring.add_coord(3,3); - ring.add_coord(0,3); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(3,0); + ring.emplace_back(3,3); + ring.emplace_back(0,3); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::linear_ring hole; - hole.add_coord(1,1); - hole.add_coord(2,1); - hole.add_coord(2,2); - hole.add_coord(1,2); - hole.add_coord(1,1); + hole.emplace_back(1,1); + hole.emplace_back(2,1); + hole.emplace_back(2,2); + hole.emplace_back(1,2); + hole.emplace_back(1,1); poly.add_hole(std::move(hole)); CHECK( !mapnik::geometry::is_valid(poly) ); std::string message; @@ -398,19 +398,19 @@ SECTION("multi polygon") { mapnik::geometry::multi_polygon mp; mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(1,0); - ring.add_coord(1,1); - ring.add_coord(0,1); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(1,0); + ring.emplace_back(1,1); + ring.emplace_back(0,1); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::polygon poly2; mapnik::geometry::linear_ring ring2; - ring2.add_coord(0,0); - ring2.add_coord(-1,0); - ring2.add_coord(-1,-1); - ring2.add_coord(0,-1); - ring2.add_coord(0,0); + ring2.emplace_back(0,0); + ring2.emplace_back(-1,0); + ring2.emplace_back(-1,-1); + ring2.emplace_back(0,-1); + ring2.emplace_back(0,0); poly2.set_exterior_ring(std::move(ring2)); mp.emplace_back(poly); mp.emplace_back(poly2); @@ -427,33 +427,33 @@ SECTION("multi polygon with hole") { mapnik::geometry::multi_polygon mp; mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0,0); - ring.add_coord(3,0); - ring.add_coord(3,3); - ring.add_coord(0,3); - ring.add_coord(0,0); + ring.emplace_back(0,0); + ring.emplace_back(3,0); + ring.emplace_back(3,3); + ring.emplace_back(0,3); + ring.emplace_back(0,0); poly.set_exterior_ring(std::move(ring)); mapnik::geometry::linear_ring hole; - hole.add_coord(1,1); - hole.add_coord(1,2); - hole.add_coord(2,2); - hole.add_coord(2,1); - hole.add_coord(1,1); + hole.emplace_back(1,1); + hole.emplace_back(1,2); + hole.emplace_back(2,2); + hole.emplace_back(2,1); + hole.emplace_back(1,1); poly.add_hole(std::move(hole)); mapnik::geometry::polygon poly2; mapnik::geometry::linear_ring ring2; - ring2.add_coord(0,0); - ring2.add_coord(-3,0); - ring2.add_coord(-3,-3); - ring2.add_coord(0,-3); - ring2.add_coord(0,0); + ring2.emplace_back(0,0); + ring2.emplace_back(-3,0); + ring2.emplace_back(-3,-3); + ring2.emplace_back(0,-3); + ring2.emplace_back(0,0); poly2.set_exterior_ring(std::move(ring2)); mapnik::geometry::linear_ring hole2; - hole2.add_coord(-1,-1); - hole2.add_coord(-1,-2); - hole2.add_coord(-2,-2); - hole2.add_coord(-2,-1); - hole2.add_coord(-1,-1); + hole2.emplace_back(-1,-1); + hole2.emplace_back(-1,-2); + hole2.emplace_back(-2,-2); + hole2.emplace_back(-2,-1); + hole2.emplace_back(-1,-1); poly2.add_hole(std::move(hole2)); mp.emplace_back(poly); mp.emplace_back(poly2); diff --git a/test/unit/geometry/has_empty.cpp b/test/unit/geometry/has_empty.cpp index 06fe1afd9..669081d57 100644 --- a/test/unit/geometry/has_empty.cpp +++ b/test/unit/geometry/has_empty.cpp @@ -34,7 +34,7 @@ SECTION("geometry collection") { mapnik::geometry::geometry_collection geom; mapnik::geometry::multi_line_string mls; mapnik::geometry::line_string line; - line.add_coord(0, 0); + line.emplace_back(0, 0); mls.emplace_back(std::move(line)); geom.emplace_back(std::move(mls)); REQUIRE(!mapnik::geometry::has_empty(geom)); @@ -55,9 +55,9 @@ SECTION("linestring") { } { mapnik::geometry::line_string line; - line.add_coord(0, 0); - line.add_coord(25, 25); - line.add_coord(50, 50); + line.emplace_back(0, 0); + line.emplace_back(25, 25); + line.emplace_back(50, 50); REQUIRE(!mapnik::geometry::has_empty(line)); } } @@ -77,11 +77,11 @@ SECTION("polygon") { { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0, 0); - ring.add_coord(1, 0); - ring.add_coord(1, 1); - ring.add_coord(0, 1); - ring.add_coord(0, 0); + ring.emplace_back(0, 0); + ring.emplace_back(1, 0); + ring.emplace_back(1, 1); + ring.emplace_back(0, 1); + ring.emplace_back(0, 0); poly.set_exterior_ring(std::move(ring)); REQUIRE(!mapnik::geometry::has_empty(poly)); } @@ -95,9 +95,9 @@ SECTION("multi-point") { } { mapnik::geometry::multi_point geom; - geom.add_coord(0, 0); - geom.add_coord(25, 25); - geom.add_coord(50, 50); + geom.emplace_back(0, 0); + geom.emplace_back(25, 25); + geom.emplace_back(50, 50); REQUIRE(!mapnik::geometry::has_empty(geom)); } } @@ -117,7 +117,7 @@ SECTION("multi-linestring") { { mapnik::geometry::multi_line_string geom; mapnik::geometry::line_string line; - line.add_coord(0, 0); + line.emplace_back(0, 0); geom.emplace_back(std::move(line)); REQUIRE(!mapnik::geometry::has_empty(geom)); } @@ -141,7 +141,7 @@ SECTION("multi-polygon") { mapnik::geometry::multi_polygon geom; mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0, 0); + ring.emplace_back(0, 0); poly.set_exterior_ring(std::move(ring)); geom.emplace_back(std::move(poly)); REQUIRE(!mapnik::geometry::has_empty(geom)); diff --git a/test/unit/geometry/is_empty.cpp b/test/unit/geometry/is_empty.cpp index af67fe21a..2a440ecfa 100644 --- a/test/unit/geometry/is_empty.cpp +++ b/test/unit/geometry/is_empty.cpp @@ -38,9 +38,9 @@ SECTION("linestring") { } { mapnik::geometry::line_string line; - line.add_coord(0, 0); - line.add_coord(25, 25); - line.add_coord(50, 50); + line.emplace_back(0, 0); + line.emplace_back(25, 25); + line.emplace_back(50, 50); REQUIRE(!mapnik::geometry::is_empty(line)); } } @@ -60,11 +60,11 @@ SECTION("polygon") { { mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0, 0); - ring.add_coord(1, 0); - ring.add_coord(1, 1); - ring.add_coord(0, 1); - ring.add_coord(0, 0); + ring.emplace_back(0, 0); + ring.emplace_back(1, 0); + ring.emplace_back(1, 1); + ring.emplace_back(0, 1); + ring.emplace_back(0, 0); poly.set_exterior_ring(std::move(ring)); REQUIRE(!mapnik::geometry::is_empty(poly)); } @@ -78,9 +78,9 @@ SECTION("multi-point") { } { mapnik::geometry::multi_point geom; - geom.add_coord(0, 0); - geom.add_coord(25, 25); - geom.add_coord(50, 50); + geom.emplace_back(0, 0); + geom.emplace_back(25, 25); + geom.emplace_back(50, 50); REQUIRE(!mapnik::geometry::is_empty(geom)); } } diff --git a/test/unit/geometry/remove_empty.cpp b/test/unit/geometry/remove_empty.cpp index 93881c854..9f277ef95 100644 --- a/test/unit/geometry/remove_empty.cpp +++ b/test/unit/geometry/remove_empty.cpp @@ -1,4 +1,3 @@ - #include "catch.hpp" #include @@ -19,9 +18,9 @@ SECTION("multi-linestring") { using geom_type = mapnik::geometry::multi_line_string; geom_type geom; mapnik::geometry::line_string line; - line.add_coord(0, 0); - line.add_coord(0, 25); - line.add_coord(0, 50); + line.emplace_back(0, 0); + line.emplace_back(0, 25); + line.emplace_back(0, 50); geom.emplace_back(std::move(line)); geom.emplace_back(); @@ -37,11 +36,11 @@ SECTION("multi-polygon") { geom_type geom; mapnik::geometry::polygon poly; mapnik::geometry::linear_ring ring; - ring.add_coord(0, 0); - ring.add_coord(1, 0); - ring.add_coord(1, 1); - ring.add_coord(0, 1); - ring.add_coord(0, 0); + ring.emplace_back(0, 0); + ring.emplace_back(1, 0); + ring.emplace_back(1, 1); + ring.emplace_back(0, 1); + ring.emplace_back(0, 0); poly.set_exterior_ring(std::move(ring)); geom.emplace_back(std::move(poly)); geom.emplace_back(); diff --git a/test/unit/vertex_adapter/vertex_adapter.cpp b/test/unit/vertex_adapter/vertex_adapter.cpp index da3e815fa..53acdd7a0 100644 --- a/test/unit/vertex_adapter/vertex_adapter.cpp +++ b/test/unit/vertex_adapter/vertex_adapter.cpp @@ -1,4 +1,3 @@ - #include "catch.hpp" #include @@ -8,10 +7,10 @@ TEST_CASE("vertex_adapters") { SECTION("polygon") { mapnik::geometry::polygon g; - g.exterior_ring.add_coord(1,1); - g.exterior_ring.add_coord(2,2); - g.exterior_ring.add_coord(100,100); - g.exterior_ring.add_coord(1,1); + g.exterior_ring.emplace_back(1,1); + g.exterior_ring.emplace_back(2,2); + g.exterior_ring.emplace_back(100,100); + g.exterior_ring.emplace_back(1,1); mapnik::geometry::polygon_vertex_adapter va(g); double x,y; @@ -47,26 +46,26 @@ SECTION("polygon") { SECTION("polygon with hole") { mapnik::geometry::polygon g; - g.exterior_ring.add_coord(0,0); - g.exterior_ring.add_coord(-10,0); - g.exterior_ring.add_coord(-10,10); - g.exterior_ring.add_coord(0,10); - g.exterior_ring.add_coord(0,0); + g.exterior_ring.emplace_back(0,0); + g.exterior_ring.emplace_back(-10,0); + g.exterior_ring.emplace_back(-10,10); + g.exterior_ring.emplace_back(0,10); + g.exterior_ring.emplace_back(0,0); std::vector > interior_rings; mapnik::geometry::linear_ring hole; - hole.add_coord(-7,7); - hole.add_coord(-7,3); - hole.add_coord(-3,3); - hole.add_coord(-3,7); - hole.add_coord(-7,7); + hole.emplace_back(-7,7); + hole.emplace_back(-7,3); + hole.emplace_back(-3,3); + hole.emplace_back(-3,7); + hole.emplace_back(-7,7); g.add_hole(std::move(hole)); mapnik::geometry::linear_ring hole_in_hole; - hole_in_hole.add_coord(-6,4); - hole_in_hole.add_coord(-6,6); - hole_in_hole.add_coord(-4,6); - hole_in_hole.add_coord(-4,4); - hole_in_hole.add_coord(-6,4); + hole_in_hole.emplace_back(-6,4); + hole_in_hole.emplace_back(-6,6); + hole_in_hole.emplace_back(-4,6); + hole_in_hole.emplace_back(-4,4); + hole_in_hole.emplace_back(-6,4); g.add_hole(std::move(hole_in_hole)); mapnik::geometry::polygon_vertex_adapter va(g);