我正在使用qt创建器创建一个应用程序,该应用程序以CGAL :: Linear_cell_complex_for_combinatorial_map读取.off文件并对其进行预览,我想对读取的网格进行操作,例如删除边缘并还原它。
它显示以下错误: 抛出'CGAL :: Assertion_exception'实例后终止调用 what():CGAL错误:违反声明! Expr:is_insertable_cell_1_in_cell_2(adart1,adart2)
我进行了搜索,但是找不到有用的解决方案
QWidget* viewer ;
std::string filename;
Dart_handle dh3;
LCC_3 lcc;
QMainWindow qWin;
CGAL::DefaultColorFunctorLCC fcolor;
void MainWindow ::insertCell()
{
dh3=lcc.insert_cell_1_in_cell_2(lcc.darts().begin(), lcc.darts().end());
CGAL_assertion( lcc.is_valid() );
lcc.display_characteristics(std::cout) << ", valid=" <<
lcc.is_valid() << std::endl;
setCentralWidget( new CGAL::SimpleLCCViewerQt<LCC_3, CGAL::DefaultColorFunctorLCC>(&qWin ,
lcc,
"Basic LCC Viewer",
false,
fcolor ) );
show();
}
void MainWindow ::removeCell()
{
CGAL_assertion( (lcc.is_removable<2>(dh3)) );
lcc.remove_cell<1>(dh3);
CGAL_assertion( lcc.is_valid() );
lcc.display_characteristics(std::cout) << ", valid="
<< lcc.is_valid() << std::endl;
}
有什么帮助吗?或有用的链接来简化网格或删除顶点,边或面? 感谢您的帮助