[Paraview] What part of the pipeline is producing the request for UPDATE_EXTENT?

Mike Jackson imikejackson at gmail.com
Wed Feb 13 11:48:18 EST 2008


Ok, so now I have
RequestInformation()
{
...
outInfo->Set( vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(), this- 
 >VOI, 6 );
...
}

and RequestData() I load the data into a newly created vtkImageData  
object, then shallow copy into the
actual output data object:

vtkInformation* outInfo = outputVector->GetInformationObject(0);
vtkImageData* output = vtkImageData::SafeDownCast(outInfo->Get 
(vtkDataObject::DATA_OBJECT()));
vtkTypeInt32 error = 1;
vtkSmartPointer<vtkImageData> imageData =  
vtkSmartPointer<vtkImageData>::New();
error = loadDataFromMXAFile(outInfo, imageData, this->VOI);
output->ShallowCopy(imageData);

In paraview from CVS this causes multiple executions of the pipeline.  
Before, where I thought I had "fixed" the issue I was calling:

outInfo->Set( vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(), this- 
 >VOI, 6 );

in RequestData(). Berk said that wasn't a good idea so I removed it.  
So now I am back to square 1 again.

Thanks
Mike

On Feb 13, 2008, at 10:17 AM, Kent Eschenberg wrote:

> Indeed, each of the my routines to set the VOI bounds (one each for  
> the min/max in X/Y/Z) calls Modified().
>
> During development I had temporary print statements everywhere and  
> as I remember it these routines to set the VOI were called both  
> before and after RequestInformation.
>
> Kent
> Pittsburgh Supercomputing Center
>
> Moreland, Kenneth wrote:
>> I belive it is supposed to work that your SetVOI() method should  
>> call modified, which will in turn cause the pipeline to call  
>> RequestInformation() on the next update.  Make sure that SetVOI()  
>> is actually calling Modified().
>> -Ken
>> On 2/12/08 9:26 PM, "Mike Jackson" <imikejackson at gmail.com> wrote:
>>     Pretty sure that was where we were going to end up BUT as far  
>> as I
>>     can tell, the order of execution is :
>>     RequestInformation()
>>     SetVOI() // From the GUI in ParaView
>>     RequestData();
>>     So we never really get a chance to get the VOI until RequestData
>>     fires.. Is that what you have seen?
>>     Mike
>>     On Feb 12, 2008, at 11:21 PM, Kent Eschenberg wrote:
>>     >  Mike,
>>     >
>>     >  I accomplished what you want with one of our custom  
>> readers. In my
>>     >  opinion the documentation for RequestInformation, RequestData,
>>     >  extents, etc. is so poor that it is useless.
>>     >
>>     >  At RequestInformation I read enough of the input to get the  
>> overall
>>     >  input array size; apply the user-selected VOI; and return the
>>     >  desired subset as the whole extent. At RequestData I read  
>> the rest.
>>     >  I just don't bother letting VTK/ParaView manage the  
>> selection of
>>     >  the VOI. This has worked for 2.6.1 through 3.2.1.
>>     >
>>     >  Kent
>>     >  Pittsburgh Supercomputing Center
>>     >
>>     >  Mike Jackson wrote:
>>     > > I can do that but I don't think it will work.
>>     > > In paraview, I have managed to set an auto-generated UI  
>> for the
>>     > > VOI. Now, the user opens our file, RequestInformation is  
>> run (I
>>     > > can put some sane defaults for the VOI) and things are ok  
>> so far.
>>     > > Now the user clicks "Apply" and then SetVOI is called with  
>> the
>>     > > values from the GUI and then RequestData() is called after  
>> that.
>>     > > So where do I update WHOLE_EXTENT? Or just take the values  
>> from
>>     > > the VOI, create a vtkImageObject from that, and then just
>>     > > ShallowCopy to the output object?
>>     > > I'm a bit confused at this point. If our case is NOT a  
>> standard
>>     > > use case for the pipeline than I guess I can look more  
>> seriously
>>     > > into developing a full blown Plugin for our data file.
>>     > > Mike




More information about the ParaView mailing list