//Эта функция работает как с 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