Не могу найти описание возвращаемого значения boost::geometry::intersection
в форсированной документации. Поэтому я не понимаю, что это значит. Вот минимальный пример:
// main.cpp
#include <boost/geometry/algorithms/intersection.hpp>
#include <boost/geometry/geometries/box.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/ring.hpp>
#include <boost/geometry/views/box_view.hpp>
#include <cstdlib>
#include <iostream>
#include <list>
int main() {
namespace geometry = boost::geometry;
using Point = geometry::model::d2::point_xy<int>;
using Box = geometry::model::box<Point>;
using Ring = geometry::model::ring<Point>;
Box box1{Point{0, 0}, Point{10, 10}};
Box box2{Point{20, 20}, Point{30, 30}};
std::list<Ring> intersections;
bool s = geometry::intersection(
geometry::box_view{box1}, geometry::box_view{box2}, intersections);
bool s1 =
geometry::intersects(geometry::box_view{box1}, geometry::box_view{box2});
std::cout << std::boolalpha << s << std::endl;
std::cout << std::boolalpha << s1 << std::endl;
std::cout << intersections.size() << std::endl;
return EXIT_SUCCESS;
}
Произошел следующий вывод:
true
false
0
Почему intersection
возвращает true
, даже если две геометрии не пересекаются? Почему ретваль intersection
и intersects
отличается? Что это значит?
Спасибо