Awesome. That did the trick. Just a few outstanding issues left and this plugin will be nicely updated. Again, thanks for the info.
Mike Jackson On Sun, Jul 5, 2009 at 8:08 PM, Burlen<[email protected]> wrote: > >> How do I tell the pipeline that the user is requesting a smaller >> sub-volume? Are there some special variables I can use? or something >> along those lines? > > Set WHOLE_EXTENT to your desired subset during in RequestInformation. Honor > UPDATE_EXTENT in your RequestData pass. It will all work out. > > RequestInformation runs every time after user clicks apply in ParaView so > what ever values they choose will be passed into the pipeline each time. > > > Mike Jackson wrote: >> >> I am trying to update a previous ParaView plugin and I am running into >> some trouble with the UpdateExtents and RequestedExtents. My problem >> is that when my plugin runs the RequestInformation iI read from the >> file to extract the origin, spacing and extent information. I then set >> them into the pipeline as such: >> >> outInfo->Set( vtkDataObject::ORIGIN(), origin, 3 ); >> outInfo->Set( vtkDataObject::SPACING(), this->CurrentScalingFactor, 3 ); >> outInfo->Set( vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(), >> this->PixelActual, 6 ); >> >> That all seems to work fine. My plugin loads up a custom gui to allow >> the user to select a sub-volume to actually render as the volume is >> quite large and can not be rendered in 32 bit clients or even some 64 >> bit clients for that matter. >> >> So I have the Custom plugin GUI talking to my custom reader so that >> values entered into the GUI are available during the RequestData() >> method of my reader class. Now here is the fun: >> >> This code: >> >> vtkInformation* outInfo = outputVector->GetInformationObject(0); >> vtkImageData* output = >> vtkImageData::SafeDownCast(outInfo->Get(vtkDataObject::DATA_OBJECT())); >> vtkTypeInt32 updateExtent[6]; >> if (outInfo->Has(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT())) >> { >> // Get the requested data 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]; >> } >> >> will always return the entire volume space which I guess I can >> understand as that is what I put into those values during the >> RequestInformation. I was merrily just using the values that get >> pushed into my class via the custom GUI text fields. These values will >> differ from the UPDATE_EXTENT. I setup the output with the smaller >> extents and now my "RequestData()" is executed at least twice. I have >> seen this before and have no idea what I do to solve it.' >> >> How do I tell the pipeline that the user is requesting a smaller >> sub-volume? Are there some special variables I can use? or something >> along those lines? >> >> >> Also during the copying of the data from the file into the >> vtkImageData object I get any number of errors: >> >> Warning: In /Users/Shared/OpenSource/vtk-5.4.2/Filtering/vtkDataSet.cxx, >> line 414 >> vtkImageData (0x353d380): Point array RoboMet Voxels with 1 >> components, has 0 tuples but there are only -208926896 points >> >> Here are some stats about what I am trying to produce: >> >> MicronVOI: 46979.1 47526.7 48347.6 49080.1 492 495.2 >> MicronActual: 46979.1 48525.1 48347.6 50078.9 490 510 >> Requested Extent: 0 7440 0 8330 490 510 >> PixelActual: 0 7440 0 8330 490 510 >> PixelVOI: 0 2631 0 3520 0 3 >> dims: 2632 3521 4 >> >> All that seems correct and the data seems to copy from the file into >> the array but then I get the error above and ParaView will just crash. >> >> This is all with PV CVS, OS X intel 10.5.7, Xcode 3.1.3 tooling, cmake >> 2.6.4 and GCC 4.2 compiler. >> >> >> Any help is appreciated. >> Mike Jackson >> BlueQuartz Software | www.bluequartz.net >> _______________________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Please keep messages on-topic and check the ParaView Wiki at: >> http://paraview.org/Wiki/ParaView >> >> Follow this link to subscribe/unsubscribe: >> http://www.paraview.org/mailman/listinfo/paraview >> > > _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
