使用距离按vtkDistancePolyDataFilter计算

时间:2013-12-19 16:05:14

标签: c++ mesh vtk

我是VTK的新手。我有以下代码片段来计算使用vtkDistancePolyDataFilter的两个表面网格之间的顶点到顶点距离。

vtkSmartPointer<vtkDistancePolyDataFilter> Normal_distances = vtkSmartPointer<vtkDistancePolyDataFilter>::New();
Normal_distances->SetInput(testSample );
Normal_distances->SetInput(1,bestModelReconstruction);
Normal_distances->SignedDistanceOff();
Normal_distances->Update();

我想访问输出“Normal_distances”中的距离,以便我可以计算距离的平均值。有人可以帮忙快速实现这一目标吗?提前致谢

2 个答案:

答案 0 :(得分:0)

我没有亲自使用过滤器,但通常在vtk中,您可以通过GetOutput()(或类似的东西,取决于版本)成员函数访问过滤器的结果。

Here是如何使用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]);

答案 1 :(得分:0)

解决了我的问题:首先从vtkDistancePolyDataFilter转换为vtkPolyData然后其余的就是通常的管道。