如何在网格查看器的选择性表面上删除边缘?

时间:2019-07-08 09:12:59

标签: c++ qt computational-geometry mesh cgal

我正在使用CGAL edge collapsing来移除网格上的边缘,并且工作成功。

但是我想在网格查看器中的选定曲面内运行边缘折叠过程。

我使用以下代码预览Geomview(.off):

QWidget* centralWidget = new QWidget(viewer);
centralWidget->setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Maximum);
setCentralWidget( new CGAL::SimpleLCCViewerQt<LCC, CGAL::DefaultColorFunctorLCC>(&qWin ,
                  lcc,
                  "Basic LCC Viewer",
                  false,
                   fcolor ) );
show();

那么,如何才能在网格查看器中选择特定的表面区域并将边缘折叠仅应用到选定的表面上?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要在查看器中添加选择操作。这并不简单。 例如,您需要跟踪鼠标事件,以便拖动矩形。 然后,您需要遍历所有飞镖,并选择矩形中的所有飞镖。