Повышаю. Трубопроводы с арифметическими элементами можно использовать в качестве точек внутри Boost. Геометрия
Повышаю. Коллекции фиксированных размеров, такие как boost::tuple, (необязательно) адаптированы к Boost. Понятие точки геометрии.
Повышаю. Трубные пары или тройки могут иметь взаимно разные типы, такие как:tuple . Повышаю. Геометрия сообщает первый тип как его координат_тип.
Повышаю. Поддержка геометрии Повышаю. Трубные пары, тройки, четверки и т.д. до кортежей с 10 элементами (хотя большинство алгоритмов не поддерживают так много измерений).
Кортеж может быть точечным типом, используемым моделями струн, полигона, сегмента, коробки и кольца
Point Concept
#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
Стандартный заголовок boost/геометрия.hpp
не включает этот заголовок.
Как использовать Boost. Трубные точки в бусте. Геометрия
Работа с Boost. Трубы на подъеме. Геометрия проста и показана в различных других примерах.
#include <iostream>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/polygon.hpp>
#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
int main()
{
boost::geometry::model::polygon<boost::tuple<double, double> > poly;
poly.outer().push_back(boost::make_tuple(1.0, 2.0));
poly.outer().push_back(boost::make_tuple(6.0, 4.0));
poly.outer().push_back(boost::make_tuple(5.0, 1.0));
poly.outer().push_back(boost::make_tuple(1.0, 2.0));
std::cout << "Area: " << boost::geometry::area(poly) << std::endl;
std::cout << "Contains (1.5, 2.5): "
<< std::boolalpha
<< boost::geometry::within(boost::make_tuple(1.5, 2.5), poly)
<< std::endl;
return 0;
}
Результат:
Area: 6.5
Contains (1.5, 2.5): false