Introduce vtkForEach filter#

vtkForEach and vtkEndFor are two newly introduced filters that works in conjunction. Their goal is to define a part of the pipeline to repeat. In this matter, the vtkForEach uses a vtkExecutionRange to define a ranging strategy. For now, it uses by default the vtkTimeRange range strategy that loops over timesteps. In the future, other strategies using for examples blocks of a composite data set may be added. On the other end of the pipeline, the vtkEndFor uses a vtkExecutionAggregator to process the result of each iteration into a resulting dataset. For now, it uses by default the vtkAggregateToPartitionedDataSetCollection, which stores each result in a separate partition. Other strategies, that would append all data sets, or generate a temporal one may be added later.

It is not possible to use nested vtkForEach/vtkEndFor. Such processing would require to design a specific range in the current state. Successive loops are supported.