![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
make (2 coordinate values)Boost , Chapter 1. Geometry , make
|
Тип |
Концепция |
Имя |
Описание |
---|---|---|---|
Геометрия | Любой тип, выполняющий концепцию геометрии | - | Должен быть указан |
Тип const & | числовой тип (int, double, ttmath, ...) для указания координат | с1 | Первая координата (обычно x-координата) |
Тип const & | числовой тип (int, double, ttmath, ...) для указания координат | с2 | Вторая координата (обычно Y-координата) |
Сконструированная геометрия: 2D точка
Либо
#include <boost/geometry.hpp>
Либо
#include <boost/geometry/algorithms/make.hpp>
Показывает использование макияжа в качестве общего конструктора для различных типов точек
#include <iostream> #include <boost/geometry.hpp> #include <boost/geometry/geometries/point_xy.hpp> #include <boost/geometry/geometries/register/point.hpp> #include <boost/geometry/geometries/adapted/boost_tuple.hpp> #include <boost/geometry/geometries/adapted/boost_polygon/point.hpp> BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian) struct mypoint { float _x, _y; }; BOOST_GEOMETRY_REGISTER_POINT_2D(mypoint, float, cs::cartesian, _x, _y) template <typename Point> void construct_and_display() { using boost::geometry::make; using boost::geometry::get; Point p = make<Point>(1, 2); std::cout << "x=" << get<0>(p) << " y=" << get<1>(p) << " (" << typeid(Point).name() << ")" << std::endl; } int main() { construct_and_display<boost::geometry::model::d2::point_xy<double> >(); construct_and_display<boost::geometry::model::d2::point_xy<int> >(); construct_and_display<boost::tuple<double, double> >(); construct_and_display<boost::polygon::point_data<int> >(); construct_and_display<mypoint>(); return 0; }
Выход (составлен с использованием gcc):
x=1 y=2 (N5boost8geometry5model2d28point_xyIdNS0_2cs9cartesianEEE) x=1 y=2 (N5boost8geometry5model2d28point_xyIiNS0_2cs9cartesianEEE) x=1 y=2 (N5boost6tuples5tupleIddNS0_9null_typeES2_S2_S2_S2_S2_S2_S2_EE) x=1 y=2 (N5boost7polygon10point_dataIiEE) x=1 y=2 (7mypoint)
Статья make (2 coordinate values) раздела Chapter 1. Geometry make может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |