vtkSMDataTypeDomain no longer supports custom VTK objects (v5.10.0)
In ParaView v5.9.1 and earlier, it was possible to provide custom VTK objects through a plugin, and specify them as DataType in a DataTypeDomain of an InputProperty.
By a recent change (tested with ParaView v5.10.0-RC1), vtkSMDataTypeDomain only accepts types that are known to vtkDataObjectTypes
. This means that the only way to specify filters that require custom VTK objects as inputs is to provide an empty DataTypeDomain, which matches every data type including the custom VTK objects.
This makes it also no longer possible to use subclasses of known types in the ParaView pipeline. For example, in v5.9.1 it was possible to subclass vtkPolyData to attach a custom data structure, but still use most filters and representations that work with vtkPolyData on the custom data object.
Minimal example: paraview-custom-objects.zip
- A subclass vtkMyObject of vtkPolyData is defined (an instance is created by MySource)
- MyAlgorithm takes vtkMyObject as input and outputs down-cast vtkPolyData
- MyTransformer casts vtkPolyData to vtkMyObject
ParaView 5.9.1
- the pipeline
Box -> MyTransformer -> Python Calculator -> MyAlgorithm
is valid and the underlying poly data of MyTransformer can be displayed by a Surface Representation
ParaView 5.10.0-RC1
- MyAlgorithm can be applied to anything in the pipeline
- vtkMyObject cannot be used by filters or representation that would take vtkPolyData (e.g. pipeline
Box -> MyTransformer
) - prints
vtkSMDataTypeDomain.cxx:242 ERR| vtkSMDataTypeDomain (0x55a9f27ff1f0): 'vtkMyObject' not a known data object type!
when parsing the plugin XML