C++ 将polydat拆分为VTK中所有连接的组件
我有一个obj文件网格,我想提取vtk中所有连接的元素。我已经尝试了vtkConnectivityFilter以及VTKPolyDataConnectionyFilterC++ 将polydat拆分为VTK中所有连接的组件,c++,vtk,C++,Vtk,我有一个obj文件网格,我想提取vtk中所有连接的元素。我已经尝试了vtkConnectivityFilter以及VTKPolyDataConnectionyFilter auto connectivityFilter = vtkSmartPointer<vtkConnectivityFilter>::New(); connectivityFilter->SetInputData(inPoly); connectivityFilter->Set
auto connectivityFilter = vtkSmartPointer<vtkConnectivityFilter>::New();
connectivityFilter->SetInputData(inPoly);
connectivityFilter->SetExtractionModeToSpecifiedRegions();
connectivityFilter->ColorRegionsOn();
connectivityFilter->Update();
for (int i = 1; i < connectivityFilter->GetNumberOfExtractedRegions(); i++)
{
connectivityFilter->AddSpecifiedRegion(i);
connectivityFilter->Update();
auto poly = vtkSmartPointer<vtkPolyData>::New();
poly->ShallowCopy(connectivityFilter->GetOutput());
}
}```
auto-connectivityFilter=vtkSmartPointer::New();
ConnectionyFilter->SetInputData(inPoly);
ConnectionyFilter->SetExtractionModeToSpecifiedRegions();
connectivityFilter->ColorRegionsOn();
connectivityFilter->Update();
对于(int i=1;iGetNumberOfExtractedRegions();i++)
{
连接过滤器->添加指定区域(i);
connectivityFilter->Update();
自动多边形=vtkSmartPointer::New();
poly->ShallowCopy(connectivityFilter->GetOutput());
}
}```
我认为最好的方法是:
- 在AllRegion模式下使用VTKPolyDataConnectionyFilter计算连接性。它创建一个数组,每个连接点具有唯一的值
- 在NumberOfExtractedRegions循环中,使用
提取polydata,设置为vtkThreshold
阈值介于(i,i)
您能解释一下哪里出了问题吗?您好@NicoVuaille,谢谢您的回复,实际上它只提取孤立的网格,而不提取三角形网格的任何连接部分!