Я создаю приложение, используя qt creator, который читает файлы .off как CGAL :: Linear_cell_complex_for_combinatorial_map и просматривает его. Я хочу выполнить операции над сеткой чтения, такие как удаление ребра и восстановление его.
показывает следующую ошибку:
terminate called after throwing an instance of 'CGAL::Assertion_exception'
what(): CGAL ERROR: assertion violation!
Expr: i != idx.end()
мой код:
filename =std::string("/home/nourhan/QT projects/cube.off");
std::ifstream ifile(filename.c_str());
if (ifile)
{
CGAL::load_off(lcc, ifile);
}
lcc.display_characteristics(std::cout) << ", valid=" <<
lcc.is_valid() << std::endl;
LCC_3::Dart_handle d2=lcc.darts().begin();
LCC_3::Dart_handle d3= lcc.insert_cell_0_in_cell_1( d2);
lcc.insert_cell_0_in_cell_2( d2);
std::vector<LCC_3::Dart_handle> adarts;
adarts.push_back(d2);
adarts.push_back(d3);
adarts.push_back(lcc.beta<1>(d3));
if (lcc.is_insertable_cell_1_in_cell_2(d2, d3))
lcc.insert_cell_1_in_cell_2( d2, d3);
lcc.display_characteristics(std::cout) << ", valid=" <<
lcc.is_valid() << std::endl;
CGAL::write_off(lcc, "copy-head.off");
}
выход:
Дартс = 24, # 0-ячеек = 8, # 1-ячеек = 12, # 2-ячеек = 6, # ccs = 1, действительный = 1
Дартс = 36, # 0-ячеек = 10, # 1-ячеек = 18, # 2-ячеек = 10, # ccs = 1, действительный = Карта недействительна: у дротика 0x5d7df0 нет вершины.
0
выходной файл .off:
OFF
8 10 0
Я не знаю, как он успешно вставил ребра, и в то же время карта недействительна, а выходной файл .off неверен.
Я ценю любую помощь.