Кратчайшие пути триангулированной поверхности сетки CGAL - ошибки утверждения - PullRequest
0 голосов
/ 04 июня 2019

Я экспериментирую с алгоритмом Triangulated Surface Mesh Shortest Paths алгоритма библиотеки CGAL. Я использую следующий триангулированный квадратный случай для тестирования: enter image description here

Когда я пытаюсь вычислить кратчайшее расстояние между любыми двумя вершинами, я всегда получаю одну из следующих двух ошибок:

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, чтобы получить вторую ошибку.

...