void operator() (multi_line_string<T> const& mls1, multi_line_string<T> const& mls2) const { if (mls1.size() != mls2.size()) { REQUIRE(false); } for (auto const& ls : zip_crange(mls1, mls2)) { (*this)(ls.template get<0>(),ls.template get<1>()); } }
multi_line_string<T> reproject_internal(multi_line_string<T> const & mls, proj_transform const& proj_trans, unsigned int & n_err) { multi_line_string<T> new_mls; new_mls.reserve(mls.size()); for (auto const& ls : mls) { line_string<T> new_ls = reproject_internal(ls, proj_trans, n_err); if (!new_ls.empty()) { new_mls.emplace_back(std::move(new_ls)); } } return new_mls; }
result_type operator() (multi_line_string<T> const& multi_line) const { if (multi_line.empty()) { // This return is due to bug in boost geometry once it is fixed it can be removed // https://svn.boost.org/trac/boost/ticket/11710 return true; } for (auto const& line : multi_line) { if (!(*this)(line)) return false; } return true; }