[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