Повышаю. Конструкции или классы, адаптированные для синтеза, адаптированы к Boost. Концепция точки геометрии
Повышаю. Фьюжн-адаптированные структуры (необязательно) адаптированы к Boost. Понятие точки геометрии. Поэтому их можно использовать во многих местах. Алгоритмы геометрии.
Point Concept
#include <boost/geometry/geometries/adapted/boost_fusion.hpp>
Стандартный заголовок<boost/geometry.hpp
>не включает этот заголовок.
Показывает, как совместить рост. Слияние с Boost. Геометрия
#include <iostream>
#include <boost/fusion/include/adapt_struct_named.hpp>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/adapted/boost_fusion.hpp>
struct sample_point
{
double x, y, z;
};
BOOST_FUSION_ADAPT_STRUCT(sample_point, (double, x) (double, y) (double, z))
BOOST_GEOMETRY_REGISTER_BOOST_FUSION_CS(cs::cartesian)
int main()
{
sample_point a, b, c;
boost::geometry::assign_values(a, 3, 2, 1);
boost::fusion::at_c<0>(b) = 6;
boost::fusion::at_c<1>(b) = 5;
boost::fusion::at_c<2>(b) = 4;
c.x = 9;
c.y = 8;
c.z = 7;
std::cout << "Distance a-b: " << boost::geometry::distance(a, b) << std::endl;
std::cout << "Distance a-c: " << boost::geometry::distance(a, c) << std::endl;
return 0;
}
Результат:
Distance a-b: 5.19615
Distance a-c: 10.3923