void operator() (mapnik::geometry::polygon<T> const& p1, mapnik::geometry::polygon<T> const& p2) { if (p1.size() != p2.size()) { REQUIRE(false); } for (auto const& p : zip_crange(p1, p2)) { (*this)(p.template get<0>(), p.template get<1>()); } }
static ring_const_type get(mapnik::geometry::polygon<CoordinateType> const& p) { if (p.empty()) throw std::runtime_error("Exterior ring must be initialized!"); return p[0]; }
static ring_mutable_type get(mapnik::geometry::polygon<CoordinateType> & p) { if (p.empty()) p.resize(1); return p[0]; }
bool operator() (mapnik::geometry::polygon<double> const& geom) const { return geom.empty(); }