コメントで述べたように、このエラーは VTK のバージョンに関連しています。SetInput()
VTK 6 で削除されました。
VTK 5 で作業するか、コードを更新することができます。更新することにした場合、このエラーはSetInput()
、いずれかSetInputData()
またはSetInputConnection()
いくつかの変更で置き換えることで修正されます。SetInputConnection()
フィルターがパイプラインを通過するようにする場合に使用する必要があります。
あなたが言及したエラーを修正する例として、提供したコードの次の行を次の行に置き換える必要があり
VTKtexture->SetInput(ima);
ます
VTKplaneMapper->SetInput(VTKplane->GetOutput());
。
VTKtexture->SetInputConnection(reader->GetOutputPort());
VTKplaneMapper->SetInputConnection(VTKplane->GetOutputPort());
2 番目の変更 ( ) では、 に変更したVTKplaneMapper
だけであることに注意してください。一方、最初の変更 ( ) では、に渡される引数を完全に変更しました。これは、データ オブジェクト ( など) がパイプライン オブジェクト (アルゴリズムやエグゼクティブなど) に依存しなくなったためです。この場合、そのデータ オブジェクトを生成したアルゴリズムを引数として指定します。それを探すと、 という行が表示されます。2 番目の変更で行ったように、byに置き換えるだけです。GetOutput()
GetOutputPort()
VTKtexture
SetInputConnection()
ima
vtkImageData* ima = reader->GetOutput();
GetOutput()
GetOutputPort()
このエラーやその他の発生する可能性のあるエラーの詳細については、VTK Wiki のVTK 6 移行ページ(およびガイド) を参照することをお勧めします。