vtkFeatureEdges,VTK的一个类,用于特征边界提取
提取的边界包括:
1)边界(boundary),只被一个多边形使用的边,或者直线单元;
2)非流行(non-manifold),被三个以上的多边形共用的边;
3)特征边(feature edges),被两个三角形使用且二面角大于特征角的边;
4)流行边(manifold edges),只被两个多边形使用的边。
stl 原图
vtkFeatureEdges
1.提取模型的边界
vtkNew<vtkFeatureEdges> featureEdges;
featureEdges->SetInputData(mStlPolyData);
featureEdges->BoundaryEdgesOn();
featureEdges->FeatureEdgesOn();
featureEdges->ManifoldEdgesOff();
featureEdges->NonManifoldEdgesOff();
featureEdges->ColoringOn();
featureEdges->Update();
2.可以通过使用vtkFeatureEdges类检测是否存在边界边,洁儿判断网格是否封闭
int numberOfOpenEdges = featureEdges->GetOutput()->GetNumberOfCells();
if (numberOfOpenEdges)
{
std::cout << "该网格模型不是封闭的..." << std::endl;
}
else
{
std::cout << "该网格模型是封闭的..." << std::endl;
return EXIT_SUCCESS;
}
3.vtkExtractEdges 提取所有边:
vtkNew<vtkExtractEdges> extractEdges;
extractEdges->SetInputData(mStlPolyData);
extractEdges->Update();