[Paraview-developers] Necessity for RequestDataObject in custom reader plugin
Schlottke, Michael
M.Schlottke at aia.rwth-aachen.de
Fri Apr 17 09:12:31 EDT 2015
Hi Utkarsh,
Thank you very much for this clear and succinct description. I think I now understand the purpose of RequestDataObject (and that I do not really need it, as long as I always subclass a vtkXXXAlgorithm class).
Regards,
Michael
> On 17 Apr 2015, at 14:38 , Utkarsh Ayachit <utkarsh.ayachit at kitware.com> wrote:
>
> RequestDataObject is the pass in which a vtkAlgorithm subclass can
> produce an instance of the dataset of the right type for the output.
> Another mechanism for telling the pipeline which data object type is
> going to be outputted would be the FillOutputPortInformation(). If a
> concrete output type can be determined at compile time, one simply
> uses FillOutputPortInformation to announce the output type. Data-type
> specific subclasses of vtkAlgorithm e.g. vtkPolyDataAlgorithm use this
> mechanism. If your reader is always going to produce vtkPolyData, for
> example, just subclass from vtkPolyDataAlgorithm and you'll never need
> to deal with RequestDataObject.
>
> Now, when a filter/reader cannot tell the output type at compile time,
> only at run time, then in FillOutputPortInformation one specifies a
> generic type for the output e.g. vtkDataObject and then overrides
> RequestDataObject(). In RequestDataObject(), you create an instance of
> the dataobject to be used as the output for the filter/reader. Now,
> you have access to attributes set on the reader/filter as well as the
> input data type -- all of which can be used to decide which output
> dataset type to create.
>
> Also note, RequestDataObject is not defined in vtkAlgorithm.
> Subclasses of vtkAlgorithm typically override
> vtkAlgorithm::ProcessRequest() method to call this method when the
> `request` contains vtkDemandDrivenPipeline::REQUEST_DATA_OBJECT() key.
>
> Hope that helps.
> Utkarsh
>
> On Fri, Apr 17, 2015 at 4:19 AM, Schlottke, Michael
> <M.Schlottke at aia.rwth-aachen.de> wrote:
>> Hi folks,
>>
>> Can somebody help me understand the purpose of the RequestDataObject() for a reader plugin? I see this method pop up now and then (typically in generic examples on how to create custom sources), but most of the readers in the Plugins/ directory do not seem to use it. Is there a simple definition I can use to decide if and how to implement it?
>>
>> Regards,
>>
>> Michael
>>
>> P.S.: I’m working on two readers of vtkUnstructuredGridAlgorithm and vtkMultiBlockDataSetAlgorithm type.
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>
>> Search the list archives at: http://markmail.org/search/?q=Paraview-developers
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/paraview-developers
More information about the Paraview-developers
mailing list