<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>