2017-09-21 41 views
0

這是我目前:如何將vtkPolyData傳遞給vtkDijkstraGraphGeodesicPath?

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。我怎樣才能解決這個問題?

回答

0

vtkDijkstraGraphGeodesicPath文檔:

需要輸入一個多邊形網格...

...

警告輸入POLYDATA必須只有三角形細胞。

我的猜測是你的多元數據不符合必要的先決條件,不是一個合適的三角形網格,而只是一個點集。

至少需要調用vtkPolyData::SetLines()來指定頂點之間的連接。