File Series Support for Custom Time-Unaware Plugin

I am working on a custom ParaView plugin for one of our internal simulation tools. To ease development, I made the plugin time-unaware and would like to use the vtkFileSeriesReader with si_class vtkSIMetaReaderProxy to provide file series support to my custom plugin. However, the custom plugin provides two outputs. One output port provides volume information, while the second output port provides immersed surface information (different data altogether from the volume).

The issue is that I cannot figure out how to funnel the two outputs from my custom plugin to the SourceProxy with class=vtkFileSeriesReader. I tried adding

<OutputPort name="Volume" index="0" id="port0" />
<OutputPort name="Surface" index="1" id="port1" />

to the associated SourceProxy, but the two ports do not appear in ParaView. Everything does work fine if I remove the file series wrapper altogether and use my custom plugin directly.

Any guidance would be appreciated!

Update: I found [Paraview] Problem using FileSeriesReader and multiple output ports after further digging online. It appears vtkFileSeriesReader is the limiting piece here.

Does there happen to be a proxy to provide file series support that has been developed since and supports multiple outputs?

I ended up linking my plugin against ParaView::VTKExtensionsIOCore to have access to vtkFileSeriesReader. I then created a really thin class that inherited from vtkFileSeriesReader and only overloaded the constructor to change the number of outputs to 2. Fortunately, after reading through vtkFileSeriesReader.cxx, I noticed the code throughout the class is generic with respect to the number of outputs. The constructor has the only limiting line of code. Kudos to the developer(s) who thought far enough ahead to let folks reuse that class.

1 Like