Я экспериментирую с алгоритмом Triangulated Surface Mesh Shortest Paths алгоритма библиотеки CGAL.
Я использую следующий триангулированный квадратный случай для тестирования:
Когда я пытаюсь вычислить кратчайшее расстояние между любыми двумя вершинами, я всегда получаю одну из следующих двух ошибок:
Error1:
terminate called after throwing an instance of 'CGAL::Assertion_exception'
what(): CGAL ERROR: assertion violation!
Expr: baseOrientation != CGAL::COLLINEAR
File: /usr/local/include/CGAL/Surface_mesh_shortest_path/function_objects.h
Line: 588
ошибка 2:
terminate called after throwing an instance of 'CGAL::Assertion_exception'
what(): CGAL ERROR: assertion violation!
Expr: _idx < data_.size()
File: /usr/local/include/CGAL/Surface_mesh/Properties.h
Line: 204
Вы можете скачать пример минимального кода, включая меш в неформатном формате здесь . Я следил за реализацией, показанной на сайте CGAL. Для компиляции требуются библиотеки CGAL и gmp:
g++ main.cpp -lCGAL -lgmp
Исполняемый файл требует двух аргументов: индексы исходной и целевой точек:
a.out 2 6
Попробуйте 2 и 6, чтобы получить первую ошибку, или 0 и 2, чтобы получить вторую ошибку.