代码改变世界

删除网格单元

2014-09-11 23:53  CN-Phoenix  阅读(576)  评论(0编辑  收藏  举报

vtk中的多边形通常由很多点和相应的网格构成也就是常说的cell。

可以添加网格单元:

vtkPolyData* polyData=vtkPolyData::New();

vtkCellArray* polys=vtkCellArray::New();
for(int j=0,cell=0;j<num_triangles;j++)
{
  polys->InsertNextCell(3);
  polys->InsertCellPoint(0);
  polys->InsertCellPoint(1);
  polys->InsertCellPoint(3);
}

polyData->SetPoints(pts);
polyData->SetPolys(polys);

如果要从已有网格中删除某个网格单元,可以这么做:

每个网格单元都有一个网格编号cellID,使用polyData->DeleteCell(cellID)标记要删除的网格,

(这里只是把这个网格加入到一个待删除网格数组中),之后调用RemoveDeletedCells()函数即可。