.SetInputConnection() 和 .SetInput() 有什么区别

what is the difference in .SetInputConnection() and .SetInput()

我在 http://www.uppmax.uu.se/docs/w/index.php/How_to_Read_vtk_Files 学习 vtk 用这个例子。

我发现使用

时没有区别
arrowGlyph.SetInput(reader.GetOutput())

arrowGlyph.SetInputConnection(reader.GetOutputPort())

我知道 Getoutput() 给你一个 vtkPolyData 和 GetOutputPort() 给你一个 vtkAlgorithmOuPut。但我不知道幕后发生了什么。它们可以互换使用吗?

(我的vtk版本是5.4)

根据 VTK wiki,前者已弃用,建议使用后者新管道 API。我的理解是 SetInputConnection,你不关心它是实际数据还是一些长链过滤器的输出。

所以我认为在版本 5 中它们可以互换使用,但第一个从版本 6 开始逐步淘汰。您可以在 wiki 上找到 Python 示例 like this,您只能在其中使用SetInputConnection 在版本 6 中。