如何将vtkPolyData传递给vtkDijkstraGraphGeodesicPath?

时间:2017-09-21 11:38:37

标签: vtk

这就是我目前的情况:

vtkSmartPointer<vtkPolyData> polydata = vtkSmartPointer<vtkPolyData>::New();
polydata->SetPoints(path);
polydata->Modified();

vtkSmartPointer<vtkDijkstraGraphGeodesicPath> dijkstra =
    vtkSmartPointer<vtkDijkstraGraphGeodesicPath>::New();
dijkstra->SetInputData(polydata);
dijkstra->SetStartVertex(0);
dijkstra->SetEndVertex(1);
dijkstra->Update();

但是,每次执行Update()时,它都会返回vector subscript out of range。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

来自vtkDijkstraGraphGeodesicPath文档:

  

将多边形网格作为输入...

     

...

     

警告输入的polydata必须只有三角形单元格。

我的猜测是你的多边形数据不符合必要的前提条件,不是一个合适的三角形网格,只是一个点集。

至少需要调用vtkPolyData::SetLines()来指定顶点之间的连接。