Property Merge 90 Ниже приведена декларация алгоритма слияния свойств. template class property_merge_90; Алгоритм свойств вычисляет наложение n-слойной карты входных многоугольников. Каждая входная геометрия вставляется вместе со значением свойства. Тип свойств может быть любым, подходящим для использования в качестве элемента std::set. Объекты множественной геометрии могут быть отдельно вставлены с одинаковым значением свойств. Для хранения результата этой операции требуется достаточно сложный контейнер. Полученные геометрии связаны с уникальными подмножествами значений свойств входной геометрии. Два подходящих контейнера для хранения результата операции по слиянию свойств: std::map polygon_90_set_data > std::map polygon_90_set_data > Примерный код property_merge_usage.cpp демонстрирует использование n-слойного алгоритма наложения карты на полигон 90 данных. Member Functions
property_merge_90() |
Конструктор по умолчанию. |
property_merge_90(const property_merge_90& that) |
Копировать конструкцию. |
void
insert(const
polygon_90_set_data<coordinate_type>& ps,
const property_type& property) |
Iвставьте набор многоугольников с соответствующим свойством. Линейные вершины вставлены. |
template <class GeoObjT>
void insert(const GeoObjT& geoObj,
const property_type& property) |
Вставьте объект геометрии, который представляет собой уточнение полигона 90, установленного с соответствующим свойством. Вставлены линейные вершины wrt. |
template <typename result_type>
void merge(result_type& result) |
Принимает контейнерный объект, который соответствует ожиданиям, определенным выше. выполняет слияние свойств и населяет контейнерный объект. O(n log n) runtime wrt. вершины + пересечения. |
|