2014-01-17 15 views
3

遷移從VTK 5.10一些代碼VTK 6.1,我有幾個代碼段是這樣的:遷移到vtk6:是否需要更新()()(再)?

vtkSmartPointer<vtkImageData> img = vtkSmartPointer<vtkImageData>::New(); 
// ... initialize img somehow, e.g. copy from other image: 
img->DeepCopy(otherImg); 
img->SetInformation(otherImg->getInformation()); 
// the problematical statement: 
img->Update(); 

在調用Update(),編譯器現在抱怨說,沒有這樣的功能(了)。 從vtk遷移的網站並沒有真正告訴我太多 - 我相信這屬於Removal of Data Objects’ Dependency on the Pipeline部分,但由於它不是填充我的圖像的算法,所以我無法在算法上調用更新。

類似去定製填充vtkPolyData對象。

我現在的問題是:是調用更新沒有必要(了?),我可以刪除嗎?或者我需要什麼來取代它?

我不得不說,我是比較新的VTK,所以如果有某種根本性簡單,我很想念我會很高興,如果你能點出來給我!

+1

我有經驗VTK但不幸的是,無法與最新的版本(6.x的)。不過,我已經創建了這個,它可以延伸到你提供的鏈接......這些例子能幫助你嗎? http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_Update –

+0

感謝,但並沒有真正幫助我(至少我看不出此刻)。只有從過濾器或算法填充數據對象的例子,但不是像我的例子那樣,沒有這樣的過濾器或算法。但是這裏給出的那兩個例子支持這樣的假設:在我的情況下調用'Update'實際上是多餘的,因爲沒有鏈接的過濾器/算法,數據對象的更新將作爲代理? – codeling

+0

好吧,我認爲它至少可以用於代碼的其他部分(可以使用您所說的vtkPolyData對象作爲例子)。關於你的最後一個問題,我認爲它可能值得一試...即使我對此知之甚少,因爲我從來沒有使用過VTK 6.x :-(祝你好運,無論如何, –

回答

5

我覺得你一直在你的形象,而不是更新()就意味着調用修改()。

+0

是嗎?在上面的情況下需要調用'Modified()',否則,在調用它時以及自動完成時是否有一個通用規則?或者,如果修改圖像,我總是必須調用它嗎? – codeling

+1

I通常只需要直接觸摸數據就可以調用它(使用GetScalarPointer,然後使用指針更改值)。如果有必要,大多數成員函數都應該爲你調用Modified()。 –

相關問題