[Paraview] Extents different down the pipeline - Why?

Michael Jackson mike.jackson at bluequartz.net
Wed Jan 27 15:48:16 EST 2010


In developing a Filter that takes a MultiBlockDataset as input I am  
having some issues with the extents that the pipeline gives versus the  
extents that the data sets within the Input MultiBlockDataset. The  
output from the filter is a vtkImageData object.

  The datasets within the MultiBlockDataset all have extents of 0-188,  
0-200, 0-0, yet if I have the following code:

vtkTypeInt32 updateExtent [ 6 ];
if (outInfo->Has(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT()))
{
updateExtent [ 0 ] = (outInfo- 
 >Get(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT())) [ 0 ];
updateExtent [ 1 ] = (outInfo- 
 >Get(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT())) [ 1 ];
updateExtent [ 2 ] = (outInfo- 
 >Get(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT())) [ 2 ];
updateExtent [ 3 ] = (outInfo- 
 >Get(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT())) [ 3 ];
updateExtent [ 4 ] = (outInfo- 
 >Get(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT())) [ 4 ];
updateExtent [ 5 ] = (outInfo- 
 >Get(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT())) [ 5 ];
}

  I get "0 188 0 200 1 1" as the values for the "updateExtents"  
variable. This then plays havoc as I am trying to get the pointer to  
the front of each data set like this:

float* phiF = static_cast<float*>(phi- 
 >GetScalarPointer(updateExtent[0], updateExtent[2], updateExtent[4]) );
  which then gives the error:

ERROR: In /Users/Shared/OpenSource/ParaView3/VTK/Filtering/ 
vtkImageData.cxx, line 1473
vtkImageData (0x22fb32b0): GetScalarPointer: Pixel (0, 0, 0) not in  
memory.
  Current extent= (0, 188, 0, 200, 1, 1)

For this filter I do NOT have a RequestInformation() method. I tried  
adding one and setting the outInfo- 
 >Set( vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(), extents, 6 );  
but that didn't help and in fact set the pipeline extents to 0, -1, 0,  
-1, 0, -1 instead.

  I think my "Reader" class further up the pipeline might be setting  
something wrong? as I can use this filter from another "Reader" that  
reads the same type of data, but from an HDF5 file instead and the  
filter performs as expected. Or it is just lucky somehow and works.

Any insights would be most appreciated.

  This is with ParaView 3.6.2 running on OS X and Windows 7.
___________________________________________________________
Mike Jackson                      www.bluequartz.net
Principal Software Engineer       mike.jackson at bluequartz.net
BlueQuartz Software               Dayton, Ohio




More information about the ParaView mailing list