如何从现有vtkPolyData复制折线的子集?

时间:2012-01-18 18:11:40

标签: c++ vtk

我有一组折线:oldData。 我希望只根据"过滤器":showLine:

显示其中一些折线
void myFunction(vtkSmartPointer<vtkPolyData> oldData, 
                std::vector<boolean> showLine) {
    // "Filtered" polylines: 
    vtkSmartPointer<vtkPolyData> newData = vtkPolyData::New();

    // .. ???

    displayFunction(newData);
 }

如何将showLine [i] == true的折线复制到newData?

提前感谢您的任何答案!

1 个答案:

答案 0 :(得分:3)

首先,这是无效的:

vtkSmartPointer newData = vtkPolyData :: New();

你应该做

vtkSmartPointer newData = vtkSmartPointer :: New();

vtkPolyData * newData = vtkPolyData :: New();

对于你真正的问题,你需要从oldData中获取这些行:

vtkLine * line = oldData-&gt; GetCell(i); //语法可能比这更毛茸......

然后将其放入新数据中:

newData-&GT; InsertNextCell(线); //再次,语法可能比这更有点......