overlaps()アルゴリズムは、2つのジオメトリが重なっているかどうかを判定する関数です。
disjoint()の逆と考えていいと思いますが、overlaps()はboxに最適化された実装になっていて、1.47.0時点ではboxしか使えないようです。
#include <boost/assert.hpp> #include <boost/geometry.hpp> #include <boost/geometry/geometries/point_xy.hpp> #include <boost/geometry/geometries/box.hpp> namespace bg = boost::geometry; int main() { typedef bg::model::d2::point_xy<double> point; typedef bg::model::box<point> box; // overlap // a // +------+ // | b | // | +--+---+ // +---+--+ | // | | // +------+ { const box a(point(0, 0), point(3, 3)); const box b(point(2, 2), point(5, 5)); const bool result = bg::overlaps(a, b); BOOST_ASSERT(result); } // not overlap // a // +------+ // | | // | | // +------+ b // +------+ // | | // | | // +------+ { const box a(point(0, 0), point(3, 3)); const box b(point(4, 4), point(7, 7)); const bool result = boost::overlaps(a, b); BOOST_ASSERT(!result); } }