В настоящее время я работаю с 2D-триангуляцией с ограничениями CGAL. После вставки полилиний в ограниченную триангуляцию я заметил, что при итерации по ним с помощью Constraint_iterator полилинии не всегда перемещаются в одном и том же порядке, даже когда я дважды запускаю один и тот же код на одной и той же машине без перекомпиляции между ними. бежит. Стандартный вывод приведенного ниже кода показывает одни и те же полилинии с одинаковыми точками, но не всегда печатается в одном и том же порядке между различными запусками. Есть ли способ, чтобы эти полилинии всегда повторялись в одном и том же порядке? Повторяемый вывод, если это возможно, помог бы, поскольку в настоящее время я пытаюсь отладить более крупный проект CGAL.
Я также заметил, что такое непоследовательное поведение случается редко; иногда мне приходится запускать демо-версию около дюжины раз, прежде чем выходные данные покажут какие-либо несоответствия, или запускать демо-версию с разными входными полигонами, прежде чем повторить попытку. Более простые многоугольники, похоже, редко дают такую недетерминированную итерацию (отсюда и сложный пример многоугольника в следующем коде).
В примере, который я использовал, есть многоугольники с общими границами и отверстиями. Вот изображение использованных примеров полигонов. Этот обход ломаной линии мне нужен для отладки кода, который также вызывает функцию CGAL simple(). Поэтому мой демонстрационный код модифицирован из документации по упрощению ломаных линий CGAL по адресу https://doc.cgal.org/latest/Polyline_si ... index.html.
Я пытался просмотреть документацию CGAL, но ничего по этому поводу не нашел. Установка -DCMAKE_BUILD_TYPE=debug, похоже, также не делает итерацию детерминированной. Если это поможет, я сейчас создаю код на Mac M2 под управлением macOS 12.6 с компилятором AppleClang 14.0.0.14000029 и CGAL 5.5.1.
В настоящее время я работаю с 2D-триангуляцией с ограничениями CGAL. После вставки полилиний в ограниченную триангуляцию я заметил, что при итерации по ним с помощью Constraint_iterator полилинии не всегда перемещаются в одном и том же порядке, даже когда я дважды запускаю один и тот же код на одной и той же машине без перекомпиляции между ними. бежит. Стандартный вывод приведенного ниже кода показывает одни и те же полилинии с одинаковыми точками, но не всегда печатается в одном и том же порядке между различными запусками. Есть ли способ, чтобы эти полилинии всегда повторялись в одном и том же порядке? Повторяемый вывод, если это возможно, помог бы, поскольку в настоящее время я пытаюсь отладить более крупный проект CGAL. Я также заметил, что такое непоследовательное поведение случается редко; иногда мне приходится запускать демо-версию около дюжины раз, прежде чем выходные данные покажут какие-либо несоответствия, или запускать демо-версию с разными входными полигонами, прежде чем повторить попытку. Более простые многоугольники, похоже, редко дают такую недетерминированную итерацию (отсюда и сложный пример многоугольника в следующем коде). В примере, который я использовал, есть многоугольники с общими границами и отверстиями. Вот изображение использованных примеров полигонов. Этот обход ломаной линии мне нужен для отладки кода, который также вызывает функцию CGAL simple(). Поэтому мой демонстрационный код модифицирован из документации по упрощению ломаных линий CGAL по адресу https://doc.cgal.org/latest/Polyline_simplification_2/index.html. [code]#include #include #include #include #include #include #include #include #include