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