2014-01-17 17 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()。 –

相关问题