CsatiZoltan
(Zoltán Csáti)
September 19, 2025, 8:07am
1
Hi,
I want to create a new reader in a modular way:
usable as a C++ library
expose the main functionalities to Python
create a ParaView plugin for it
Before implementing the main logic – reading our mesh format into a vtkUnstructuredGrid
object – I plan to set up the overall project structure.
Until now, step 1 above is done. Since the reader is simple, I opted for the old way of linking with VTK, i.e simply.
target_link_libraries(my_lib PUBLIC VTK::CommonDataModel)
as demonstrated in the UsingVTK example , instead of using the newer VTK module system .
On the other hand, when I want to create a ParaView plugin (step 3 above), I only encountered examples in which the VTK module system is used.
Questions:
Can I create a ParaView plugin for a non-module based VTK system?
In my specific case, what advantages would the VTK module system bring with respect to the older way of building?
Thank you.
mwestphal
(Mathieu Westphal (Kitware))
September 19, 2025, 8:20am
2
No
what advantages would the VTK module system bring with respect to the older way of building?
It would work
See plugin examples here: https://gitlab.kitware.com/paraview/paraview/-/tree/master/Examples/Plugins?ref_type=heads
CsatiZoltan
(Zoltán Csáti)
September 19, 2025, 8:22am
3
OK, thanks.
See plugin examples here
Yes, that’s what I was looking at, especially the ComplexPluginArchitecture example.
mwestphal
(Mathieu Westphal (Kitware))
September 19, 2025, 8:23am
4
Well, as its name indicate, you dont want to do that unless you have a complex architecture, specifically where you have a VTK module which multiple plugins depends on.
I suggest ElevationFilter for a simpler example.
1 Like
ben.boeckel
(Ben Boeckel (Kitware))
September 19, 2025, 12:50pm
5
You could have a module-less plugin if you only add Qt widgets or the like. But anything that needs ClientServer wrapping needs a module as the module system provides a lot of extra metadata about how to properly wrap it (including, but not limited to, things like other dependencies that may need loaded and which headers to wrap).