Использование, модификация и распространение подлежат лицензии Boost Software,
Версия 1.0. (См. сопроводительный файл LICENSE_1_0.txt или копия на
http://www.boost.org/LICENSE_1_0.txt
*/
#include
#include
#include
#include
#include
#include
namespace gtl = импульс::polygon;
/Снова мы делаем использование библиотеки дженерик
// и параметризируйте его на многоугольном наборе типа
шаблон
null test_polygon_set(){
с использованием пространства имен gtl;
Polygon Настройка ps;
ps += rectangle_data(0, 0, 10, 10);
PolygonSet ps2;
ps2 += rectangle_data(5, 5, 15, 15);
PolygonSet ps3;
// Нам нужно специализировать наше картирование полигонной концепции в бульоне многоугольника
{ многоугольник пространства имен {
//Первый регистр CPolygon как тип полигон_концепции
шаблон <>
struct geo_concept{ typedef polygon_concept type;};
};
}br>
//Хорошо, наконец-то мы объявим свой собственный многоугольный набор типа
typedef std::deque CPolygonSet;
//deque не является автоматически многоугольником в библиотеке
// Потому что это стандартный контейнер, есть ярлык
/ Для отображения его на полигонную концепцию, но я сделаю это
// длинный путь, который вы используете в общем случае.
{ многоугольник пространства имен {
// Сначала мы регистрируем CPolygon Набор как многоугольный набор
шаблон <>
struct geo_concept { typedef polygon_set_concept type;
};
//Следует за тем, чтобы мы отображали понятие через черты
шаблон <>
struct polygon_set_traits br>
typedef int coordinate_type;
Типdef; CPolygonSet::const_iterator_type;
Типdef CPolygonSet Оператор_arg_type;
/ Теперь вы знаете, как картировать свой собственный тип данных
концепция многоугольного набора
Теперь вы также знаете, как сделать ваш код приложения, который работает на геометрии
// Тип данных агностик от точки через многоугольник
Статья Custom Polygon Set раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.