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