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