VTK 三角剖分 Delaunay2D(七)—— 选择切割区域
引言
通过设置vtkClipPolyData
的函数SetGenerateClippedOutput(true)
控制显示切割后保留的部分。false
默认值保留inside
区域,true
保留outside
区域。
代码
vtkSmartPointer<vtkPolyLine> PolyLine = vtkSmartPointer<vtkPolyLine>::New();
PolyLine = vtkPolyLine::SafeDownCast(polylineData->GetCell(0));
//clip
vtkSmartPointer<vtkPolyPlane>polyPlane = vtkSmartPointer<vtkPolyPlane>::New();
polyPlane->SetPolyLine(PolyLine);
//裁剪下面的封闭曲面
vtkSmartPointer<vtkClipPolyData>clipper = vtkSmartPointer<vtkClipPolyData>::New();
clipper->SetInputData(testAlgorithm->GetOutput());
clipper->SetClipFunction(polyPlane);
clipper->SetGenerateClippedOutput(true);
clipper->SetValue(0.0);//按照属性值裁剪
clipper->Update();
//裁剪上面的封闭曲面
vtkSmartPointer<vtkClipPolyData>clipper1 = vtkSmartPointer<vtkClipPolyData>::New();
clipper1->SetInputData(testAlgorithm1->GetOutput());
clipper1->SetClipFunction(polyPlane);
clipper1->Update();