weixin_39695241
weixin_39695241
2020-12-09 07:27

Update VMTK to be compatible with VTK7

Slicer4 uses VTK7 and therefore VMTK had to be updated to support VTK7, too.

All the changes should be backward-compatible, so VMTK works the same way for older VTK versions.

Python scripts have not been updated for VTK7. There should have been a lot of modifications because of SetInput->SetInputData changes. It is doable, see example below, I just did not need it and if backward compatibility is not needed then the changes would be much simpler.


if vtk.VTK_MAJOR_VERSION <= 5:
  somefilter.SetInput(self.brush)
else:
  somefilter.SetInputData(self.brush)

该提问来源于开源项目:vmtk/vmtk

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • weixin_39738152 weixin_39738152 5月前

    Hi Andras, thank you! We're actually compiling vmtk against VTK 7.0.0 (see SuperBuild.cmake), maybe we were relying on older/deprecated signatures? I'll gladly merge the new ones. Python scripts have already been ported to VTK > 5 (we ditched backward compatibility a while ago for those). Thanks again!

    点赞 评论 复制链接分享
  • weixin_39695241 weixin_39695241 5月前

    Maybe VTK_LEGACY_REMOVE flag is defined in Slicer's VTK build but not in VMTK's.

    点赞 评论 复制链接分享
  • weixin_39695241 weixin_39695241 5月前

    It would be nice if you could test SetUpdateExtent changes, as I just copied the changes that were made in similar VTK classes in Slicer.

    点赞 评论 复制链接分享
  • weixin_39738152 weixin_39738152 5月前

    I see, that's it: we don't define VTK_LEGACY_REMOVE. Thanks for the heads up.

    点赞 评论 复制链接分享
  • weixin_39878991 weixin_39878991 5月前

    Following 36ee6b4, I'm getting the following missing header error when compiling VMTK from source (I let VMTK install its own VTK/ITK).

    
    /tmp/vmtk/vtkVmtk/Utilities/vtkvmtkITK/vtkvmtkITKArchetypeImageSeriesScalarReader.cxx:23:37: fatal error: vtkAOSDataArrayTemplate.h: No such file or directory
    

    Is this something you can reproduce on your end?

    点赞 评论 复制链接分享
  • weixin_39695241 weixin_39695241 5月前

    Thanks for testing. The commit that fixed compatibility with more recent VTK versions had inaccurate version checks for generic array related changes (generic data arrays were introduced in VTK 7.1 and the checks were for VTK 7 only, without checking the minor version). A pull request has been submitted with the fix (https://github.com/vmtk/vmtk/pull/172).

    点赞 评论 复制链接分享
  • weixin_39878991 weixin_39878991 5月前

    Thanks ! #172 got the code compiling again on my end.

    点赞 评论 复制链接分享

相关推荐