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