//Эта функция работает как с 90, так и с 45 версиями //альгроитма извлечения соединения шаблон void test_ce() { // Сначала мы создаем объект для извлечения соединения ce_type ce;
//создать некоторые тестовые данные std::vector test_data; test_data(10, 10, 90, 90)); test_data(0, 0, 20, 20)); test_data(80, 0, 100, 20)); test_data(0, 80, 20, 100)); test_data(80, 80, 100, 100); //Есть один большой квадрат и четыре маленьких квадрата, покрывающих каждый // его углов.
for(unsigned int i = 0; i < test_data.size(); ++i) { //insert возвращает идентификатор, начинающийся с нуля и инкрементирующий // с каждым вызовом утверждающий(ce.insert(test_data[i]) == i); } //уведомление о том, что идентификаторы, возвращенные ce.insert, совпадают //индекс в вектор входов в этом случае
//убедиться, что векторный граф имеет элементы для наших узлов std::vector > graph(test_data.size());
ce.extract(graph);
//сделать граф типа карты для сравнения результатов std::map map_graph;
assert(map_graph.size() && map_graph.size()); for(unsigned int i = 0; i [i]; [i].size() == 4); // четыре маленьких квадрата [i].size() == 1); // каждый маленький точечный большой квадрат }
int main() { test_ce>;gtl::connectivity_extraction_45 >();
// Теперь вы знаете, как использовать алгоритм извлечения связи // извлечь граф связи для перекрывающейся геометрии <58
Статья Connectivity Extraction Usage раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.