Polygon Sponsor |
Connectivity Extraction Алгоритм извлечения соединения конструирует граф подключения, где наборы входных полигонов моделируются как узлы графа и назначенные идентификаторы узлов, а перекрытие / касание между наборами входных полигонов моделируется как края графа. Одним из поддерживаемых форматов графов является std::vector > где индекс идентификаторов узла в вектор и наборы целых чисел в каждом индексе являются идентификаторами узлов, для которых в графе существует край. Требуется, чтобы такой вектор предварительно распределил достаточные элементы для хранения графа, генерируемого алгоритмом, потому что только оператор [] используется внутренне для доступа к графу::map >, с которым немного легче работать, но потенциально дороже. Улучшение интерфейса для поддержки более общих концепций графов откладывается до будущей работы. Ниже приводится декларация алгоритма извлечения связи. template class connectivity_extraction; Пример кода connectivity_extraction_usage.cpp демонстрирует использование алгоритма извлечения соединения для построения графа подключения по геометрии. Member Functions
connectivity_extraction() |
Конструктор по умолчанию. |
connectivity_extraction(
const connectivity_extraction& that) |
Копировать конструкцию. |
unsigned int
insert(const
polygon_set_data<coordinate_type>& ps) |
I вставляет многоугольный набор графовых узлов, возвращаемое значение является идентификатором графового узла. |
template <class GeoObjT>
unsigned int insert(const GeoObjT& geoObj) |
Вставьте объект геометрии, который является уточнением многоугольника, установленного как графовый узел, обратное значение является идентификатором графового узла. |
template <class GraphT>
void extract(GraphT& graph) |
Принимает графовый объект, который соответствует ожиданиям, определенным выше. Выполняет извлечение соединения и заполняет графовый объект. |
|