Backward compatibility

Hello VTk experts,

I have been using VTK V5 for years, wondering if the latest version is backward compatible to V5.2. Any suggestions for upgrade?

Your reply is highly appreciated.



for a suggestion on how to upgrade.

Backward compatibility is maintained between minor versions. You need to do manual changes if you upgrade a major version.

Jumping 4 major versions will require sweeping changes in your code , but you’ll get tons of improvements and you don’t really have any easier solution if you want to keep your application running on modern operating systems, graphics hardware, use modern compilers, etc.

Thank you Andras. Wondering if the overall data pipeline remain the same. It is okay to change code massively, but quite a bit issue if we have to change architecture fundamentally.

Thanks a lot for the suggestion. We are a bit too far or too behind.

The VTK pipeline was redesigned but if you have not implemented your own filters then the impact is mostly changed syntax, such as rename all SetInput by SetInputData, how scalars are allocated, tuples are accessed. The most painful parts will be the build system update, GUI toolkit integration update (if you use one), and and fixing all things that just don’t work anymore due to slight VTK behavior changes.

Thank you Andras. I have more than 100 K lines of code heavily using 3D widgets, so I assume it is going to be painful.

100k lines of code is significant and VTK’s 3D widgets are terrible. Maybe you can have a look what VTK-based open-source platforms emerged in the last decade that may server as a better foundation of your application. What does your application do?

I agree about the 3D widgets. Have made quite a bit changes to the code. We are doing medical and dental applications.

Was trying to keep pace with VTK in earlier years then realized we have gone too far. Will take serious look at where we are.

Then the obvious choices would be to rebuild the application based on 3D Slicer or MITK. Both have been used successfully in building commercial medical applications. See some more info about this here.