C++ 使用vtkDistancePolyDataFilter计算距离
我是VTK的新手。下面是使用vtkDistancePolyDataFilter计算两个曲面网格之间的顶点到顶点距离的代码片段C++ 使用vtkDistancePolyDataFilter计算距离,c++,mesh,vtk,C++,Mesh,Vtk,我是VTK的新手。下面是使用vtkDistancePolyDataFilter计算两个曲面网格之间的顶点到顶点距离的代码片段 vtkSmartPointer<vtkDistancePolyDataFilter> Normal_distances = vtkSmartPointer<vtkDistancePolyDataFilter>::New(); Normal_distances->SetInput(testSample ); Normal_distances-&
vtkSmartPointer<vtkDistancePolyDataFilter> Normal_distances = vtkSmartPointer<vtkDistancePolyDataFilter>::New();
Normal_distances->SetInput(testSample );
Normal_distances->SetInput(1,bestModelReconstruction);
Normal_distances->SignedDistanceOff();
Normal_distances->Update();
vtkSmartPointer Normal_distance=vtkSmartPointer::New();
正常距离->设置输入(testSample);
正常距离->设置输入(1,最佳模式重建);
正常距离->SignedDistanceOff();
正常距离->更新();
我想访问输出“正常距离”中的距离,以便计算距离的平均值。有人能帮我找到一个快速的方法来实现这一点吗?提前感谢我个人没有使用过此过滤器,但通常在vtk中,您可以通过
GetOutput()
(或类似的,取决于版本)成员函数访问过滤器的结果
是如何使用vtkDistancePolyDataFilter
的示例。在这种情况下,输出将是一个vtkPolyData
,其中计算的距离用于标量
点的值
从示例中可以看出:
vtkSmartPointer<vtkPolyDataMapper> mapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputConnection( distanceFilter->GetOutputPort() );
mapper->SetScalarRange(
distanceFilter->GetOutput()->GetPointData()->GetScalars()->GetRange()[0],
distanceFilter->GetOutput()->GetPointData()->GetScalars()->GetRange()[1]);
vtksmart指针映射器=
vtkSmartPointer::New();
映射器->设置输入连接(距离过滤器->GetOutputPort());
映射器->设置Calarrange(
距离过滤器->GetOutput()->GetPointData()->GetScalars()->GetRange()[0],
距离过滤器->GetOutput()->GetPointData()->GetScalars()->GetRange()[1]);
解决了我的问题:首先将vtkDistancePolyDataFilter
转换为vtkPolyData
,然后剩下的就是通常的管道。谢谢A.E.Drew。我认为我的问题更多地与我可以使用哪种类型来提取输出有关。我的意思是类似于您示例中的mapper A.E.Drews解决了我的问题:首先将vtkDistancePolyDataFilter转换为vtkPolyData,然后剩下的是通常的管道。