Ok but I suppose I don't do it as I should because the CopyDefaultInformation() is never executed. I put these lines at the beginning of my class constructor:{ vtkMyStreamingDemandDrivenPipeline *executive = vtkMyStreamingDemandDrivenPipeline::New(); this->SetExecutive(executive); ... and I make a printf here: //----------------------------------------------------------------------------voidvtkMyStreamingDemandDrivenPipeline::CopyDefaultInformation(vtkInformation* request, int direction, vtkInformationVector** inInfoVec, vtkInformationVector* outInfoVec){ // Let the superclass copy first. this->Superclass::CopyDefaultInformation(request, direction, inInfoVec, outInfoVec); if(request->Has(REQUEST_INFORMATION())) { if(this->GetNumberOfInputPorts() > 0) { // my stuff } for (int obj=0 ; obj<3 ; obj++) { vtkInformation* outInfo = outInfoVec->GetInformationObject(obj); int whole_ext[6]; outInfo->Get(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(), whole_ext); printf("Executive: %d %d %d %d %d %d\n", whole_ext[0], whole_ext[1], whole_ext[2], whole_ext[3], whole_ext[4], whole_ext[5]); } ...} but nothing prints and I still get the same error.
> From: dave.dema...@kitware.com > Date: Mon, 14 Nov 2011 10:31:27 -0500 > Subject: Re: [Paraview] Whole extend issue > To: stan1...@hotmail.fr > CC: paraview@paraview.org > > Looks to me like a bug/feature of the VTK pipeline. Apparently it > expects whole extents to be the same for all input structured data > sets. > > See how just before vtkExecutive runs the algorithm's Request*() > methods in vtkExecutive::CallAlgorithm() it calls > CopyDefaultInformation(). In > vtkStreamingDemandDrivenPipeline::CopyDefaultInformation() copies the > first input's whole extent to all outputs. > > You might get around this by making your own executive with it's own > CopyDefaultInformation(). > > The actual error comes later at the start of the RequestUpdateExtent() > pass when vtkStreamingDemandDrivenPipeline::VerifyOutputInformation() > happens. > > David E DeMarle > Kitware, Inc. > R&D Engineer > 21 Corporate Drive > Clifton Park, NY 12065-8662 > Phone: 518-881-4909 > > > > On Sat, Nov 12, 2011 at 5:17 AM, Fred Fred <stan1...@hotmail.fr> wrote: > > I really do not understand how PV/VTK works! > > I get this error: > > ERROR: In > > /usr/local/ParaView-3.10.1/VTK/Filtering/vtkStreamingDemandDrivenPipeline.cxx, > > line 882 > > vtkPVPostFilterExecutive (0x12a1c6b00): The update extent specified in the > > information for output port 0 on algorithm vtkPVPostFilter(0x12a1c60c0) is 0 > > 24 0 34 0 232, which is outside the whole extent 0 96 0 20 0 63. > > but if I print the values at the end of RequestData() I get different > > values: > > int uExtent[6]; > > > > this->GetExecutive()->GetOutputInformation(0)->Get(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(), > > uExtent); > > printf("Extent: %d", uExtent[0]); > > for (int i=1 ; i<5 ; i++) printf(" %d", uExtent[i]); > > printf(" %d\n", uExtent[5]); > > > > this->GetExecutive()->GetOutputInformation(0)->Get(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT(), > > uExtent); > > printf("Update: %d", uExtent[0]); > > for (int i=1 ; i<5 ; i++) printf(" %d", uExtent[i]); > > printf(" %d\n", uExtent[5]); > > prints: > > Extent: 0 24 0 34 0 232 > > Update: 0 24 0 34 0 232 > > Please help! > > ________________________________ > > From: stan1...@hotmail.fr > > To: paraview@paraview.org > > Date: Fri, 11 Nov 2011 12:08:24 +0100 > > Subject: [Paraview] Whole extend issue > > > > Hello, > > I have a filter inherited from vtkUnstructuredGridAlgorithm, with 2 inputs > > of type vtkStructuredGrid and 3 outputs, 1 and 2 are just copies of the > > input and the third one is of type vtkUnstructuredGrid. > > I copy input0 to output0 like this: > > vtkInformation *in0Info = inputVector[0]->GetInformationObject(0); > > vtkStructuredGrid *in0 = > > vtkStructuredGrid::SafeDownCast(coarseInfo->Get(vtkDataObject::DATA_OBJECT())); > > this->GetExecutive()->GetOutputData(0)->ShallowCopy(in0); > > vtkInformation *in1Info = inputVector[1]->GetInformationObject(0); > > vtkStructuredGrid *in1 = > > vtkStructuredGrid::SafeDownCast(coarseInfo->Get(vtkDataObject::DATA_OBJECT())); > > this->GetExecutive()->GetOutputData(1)->ShallowCopy(in1); > > but I get this error: > > ERROR: In > > /usr/local/ParaView-3.10.1/VTK/Filtering/vtkStreamingDemandDrivenPipeline.cxx, > > line 882 > > vtkPVPostFilterExecutive (0x12c3e58d0): The update extent specified in the > > information for output port 0 on algorithm vtkPVPostFilter(0x12c3e4e90) is 0 > > 24 0 34 0 232, which is outside the whole extent 0 96 0 20 0 63. > > Actually 0 24 0 34 0 232 are the dimensions of input0 and 0 96 0 20 0 63 are > > the dimensions of input1. > > So I do not understand why extends of input1 are considered as the "whole > > extend" (BTW what is the "whole extend"? whole extend of the multblock > > dataset?) > > > > _______________________________________________ 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 > > > >
_______________________________________________ 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