<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<title>Problem with vtkStreamingDemandDrivenPipeline</title>
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
p
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1863544276;
        mso-list-type:hybrid;
        mso-list-template-ids:1327165052 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=blue>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Hi Pat,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>I just looked over the code in
CopyDefaultInformation of vtkStreamingDemandDrivenPipeline…  it
looks ok to me (the change would NOT have resulted in the MAXIMUM_NUMBER_OF_PIECES
key not being set, just the value it was set to).  I expect the change
that actually is breaking things for you is one made to CopyEntry in vtkInformationIntegerKey.cxx…
a bug was fixed that would copy a value of 0 even when the source information
key had not been set (the CopyEntry call should have replicated the non-set
state in the destination information object, not set it to value of 0). 
Thus I expect <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>   
outInfo->CopyEntry(inInfo, MAXIMUM_NUMBER_OF_PIECES());<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=navy
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=navy
face=Arial><span style='font-size:10.0pt;font-family:Arial;color:navy'>about 15
lines into CopyDefualtInformation is now doing the right thing.. NOT setting
MAXIMUM_NUMBER_OF_PIECES in outInfo to 0.  So…<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:.25in;text-autospace:none'><font size=2
color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'><o:p> </o:p></span></font></p>

<ul style='margin-top:0in' type=disc>
 <li class=MsoNormal style='color:navy;mso-list:l0 level1 lfo1;text-autospace:
     none'><font size=2 color=navy face=Arial><span style='font-size:10.0pt;
     font-family:Arial'>I expect that MAXIMUM_NUMBER_OF_PIECES is not set on
     the input to vtkVortexCore… is that expected?<o:p></o:p></span></font></li>
 <li class=MsoNormal style='color:navy;mso-list:l0 level1 lfo1;text-autospace:
     none'><font size=2 color=navy face=Arial><span style='font-size:10.0pt;
     font-family:Arial'>Regardless of whether it is expected or not it should
     still be set in the next for loop… UNLESS the data object had NOT
     been set on the outInfo. <o:p></o:p></span></font></li>
</ul>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=navy
face=Arial><span style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>    <font
color=green><span style='color:green'>// Setup default information for the
outputs.<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>    <font
color=blue><span style='color:blue'>for</span></font>(<font color=blue><span
style='color:blue'>int</span></font> i=0; i < <font color=blue><span
style='color:blue'>this</span></font>->Algorithm->GetNumberOfOutputPorts();
++i)<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>     
{<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>     
vtkInformation* outInfo = <font color=blue><span style='color:blue'>this</span></font>->GetOutputInformation(i);<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>     
<font color=green><span style='color:green'>// The data object will exist
because UpdateDataObject has already<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>     
<font color=green><span style='color:green'>// succeeded. Except when this
method is called by a subclass<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>     
<font color=green><span style='color:green'>// that does not provide this key
in certain cases.<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>     
vtkDataObject* dataObject = outInfo->Get(vtkDataObject::DATA_OBJECT());<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>     
<font color=blue><span style='color:blue'>if</span></font> (!dataObject)<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>       
{<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>       
<font color=blue><span style='color:blue'>continue</span></font>;<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>       
}<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>     
vtkInformation* dataInfo = dataObject->GetInformation();<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>     
<font color=blue><span style='color:blue'>if</span></font>(dataInfo->Get(vtkDataObject::DATA_EXTENT_TYPE())
== VTK_PIECES_EXTENT)<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>       
{<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>       
<font color=blue><span style='color:blue'>if</span></font>
(!outInfo->Has(MAXIMUM_NUMBER_OF_PIECES()))<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>         
{<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>         
<font color=blue><span style='color:blue'>if</span></font> (<font color=blue><span
style='color:blue'>this</span></font>->GetNumberOfInputPorts() > 0)<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
{<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
<font color=green><span style='color:green'>// must have structured input;
MAXIMUM_NUMBER_OF_PIECES will<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
<font color=green><span style='color:green'>// not be copied above (CopyEntry
does nothing since key not set<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
<font color=green><span style='color:green'>// in inInfo); set to -1<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
outInfo->Set(MAXIMUM_NUMBER_OF_PIECES(), -1);<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
}<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>         
<font color=blue><span style='color:blue'>else<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
{<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
<font color=green><span style='color:green'>// Since most unstructured filters
in VTK generate all their<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
<font color=green><span style='color:green'>// data once, set the default
maximum number of pieces to 1.<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
outInfo->Set(MAXIMUM_NUMBER_OF_PIECES(), 1);<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
}<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>         
}<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>       
}<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=navy
face=Arial><span style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Of course there could be some other
interaction occurring that isn’t obvious, but I expect the information on
the input is missing the key AND (?) UpdateDataObject is failing.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>If you think I’m off base, let me
know… I’ll take another look.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Rusty<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
vtk-developers-bounces@vtk.org [mailto:vtk-developers-bounces@vtk.org] <b><span
style='font-weight:bold'>On Behalf Of </span></b>Crossno, Patricia J<br>
<b><span style='font-weight:bold'>Sent:</span></b> Monday, April 04, 2005 5:15
PM<br>
<b><span style='font-weight:bold'>To:</span></b> vtk-developers@vtk.org<br>
<b><span style='font-weight:bold'>Subject:</span></b> [vtk-developers] Problem
with vtkStreamingDemandDrivenPipeline</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>I
am writing a filter for unstructured data (vtkVortexCore) and I recently
(Friday) updated my copy of VTK.  Since that time, I've been getting the
following error message:</span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>ERROR:
In C:\vtk_stuff\ParaView\VTK\Filtering\vtkStreamingDemandDrivenPipeline.cxx,
line 549</span></font> <br>
<font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>vtkStreamingDemandDrivenPipeline
(0x03E8DDE8): No maximum number of pieces has been set in the information for
output port 0 on algorithm vtkVortexCore(0x03E85FA0).</span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Looking
at the revision log for</span></font> vtkStreamingDemandDrivenPipeline.cxx, I
see the following last entry: <br>
Revision<b><span style='font-weight:bold'> 1.28</span></b> - (<a
href="file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cxx?rev=1.28&view=markup">view</a>)
(<a
href="file:///\\cgi-bin\viewcvs.cgi\*checkout*\Filtering\vtkStreamingDemandDrivenPipeline.cxx?rev=1.28">download</a>)
(<a
href="file:///\\cgi-bin\viewcvs.cgi\*checkout*\Filtering\vtkStreamingDemandDrivenPipeline.cxx?content-type=text%2Fplain&rev=1.28">as
text</a>) (<a
href="file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cxx?annotate=1.28">annotate</a>)
- <a
href="file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cxx?r1=1.28&view=log">[select
for diffs]</a><br>
<i><span style='font-style:italic'>Tue Mar 29 15:48:48 2005 UTC</span></i> (6
days, 5 hours ago) by<i><span style='font-style:italic'> blue</span></i><br>
Branch: <a
href="file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cxx?only_with_tag=MAIN"><b><span
style='font-weight:bold'>MAIN</span></b></a><br>
CVS Tags: <a
href="file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cxx?only_with_tag=HEAD"><b><span
style='font-weight:bold'>HEAD</span></b></a>, <a
href="file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cxx?only_with_tag=ParaView-RenderModule2"><b><span
style='font-weight:bold'>ParaView-RenderModule2</span></b></a><br>
Branch point for: <a
href="file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cxx?only_with_tag=ParaView-RenderModule2-branch"><b><span
style='font-weight:bold'>ParaView-RenderModule2-branch</span></b></a><br>
Changes since<b><span style='font-weight:bold'> 1.27: +14 -4 lines</span></b><br>
Diff to <a
href="file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cxx?r1=1.27&r2=1.28">previous
1.27</a> <br>
<font size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>BUG:
Fixing a bug in the CopyEntry functionality of Integer keys revealed that
MAXIMUM_NUMBER_OF_PIECES was not correctly being handled if the input was
structured data.</span></font><o:p></o:p></p>

<p><font size=3 face="Times New Roman"><span style='font-size:12.0pt'>Is it
possible that this change has created a problem for unstructured data, or that
the extent of the original bug was not limited to structured data?<o:p></o:p></span></font></p>

<p><font size=3 face="Times New Roman"><span style='font-size:12.0pt'>       
        Pat <o:p></o:p></span></font></p>

</div>

</div>

</body>

</html>