std::int32_t x = 0; std::int32_t y = 0; std::string feature_str; protozero::pbf_writer feature_writer(feature_str); vector_tile::Tile_Feature feature; REQUIRE(mapnik::vector_tile_impl::encode_geometry_pbf(p0, feature_writer, x, y)); feature.ParseFromString(feature_str); REQUIRE(feature.type() == vector_tile::Tile_GeomType_POLYGON); // MoveTo, ParameterInteger, ParameterInteger // LineTo, ParameterInteger, ParameterInteger, ParameterInteger, ParameterInteger, ParameterInteger, ParameterInteger // Close // 3 commands + 8 Params = 11 REQUIRE(feature.geometry_size() == 11); // MoveTo(0,0) CHECK(feature.geometry(0) == ((1 << 3) | 1u)); // 9 CHECK(feature.geometry(1) == 0); CHECK(feature.geometry(2) == 0); // LineTo(0,10) CHECK(feature.geometry(3) == ((3 << 3) | 2u)); CHECK(feature.geometry(4) == 0); CHECK(feature.geometry(5) == 20); // LineTo(-10,10) CHECK(feature.geometry(6) == 19); CHECK(feature.geometry(7) == 0); // LineTo(-10,0) CHECK(feature.geometry(8) == 0); CHECK(feature.geometry(9) == 19); // Close CHECK(feature.geometry(10) == 15); }