Пример #1
0
    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;
}
Пример #3
0
 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;
 }