expand()は、他の図形でBoxを拡張していくアルゴリズムです。
第2引数の図形で、第1引数のBoxを拡張します。
expand()は、envelope()の実装などで使われます。
#include <iostream> #include <boost/geometry.hpp> #include <boost/geometry/geometries/point_xy.hpp> #include <boost/geometry/geometries/box.hpp> namespace bg = boost::geometry; typedef bg::model::d2::point_xy<double> point; typedef bg::model::box<point> box; int main() { box bx = bg::make_inverse<box>(); bg::expand(bx, point(1, 1)); std::cout << "1: " << bg::dsv(bx) << std::endl; bg::expand(bx, point(0, 0)); std::cout << "2: " << bg::dsv(bx) << std::endl; bg::expand(bx, point(3, 3)); std::cout << "3: " << bg::dsv(bx) << std::endl; bg::expand(bx, point(2, 5)); std::cout << "4: " << bg::dsv(bx) << std::endl; }
1: ((1, 1), (1, 1)) 2: ((0, 0), (1, 1)) 3: ((0, 0), (3, 3)) 4: ((0, 0), (3, 5))
ちなみに、make_inverse()は、逆無限座標の図形を生成するヘルパ関数です。
拡張する図形の初期値として使用できます。
参照:
expand algorithm