[vtk-developers] Problem with vtkStreamingDemandDrivenPipeline
Rusty Blue
rusty.blue at kitware.com
Tue Apr 5 10:57:29 EDT 2005
Hi Pat,
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
outInfo->CopyEntry(inInfo, MAXIMUM_NUMBER_OF_PIECES());
about 15 lines into CopyDefualtInformation is now doing the right thing..
NOT setting MAXIMUM_NUMBER_OF_PIECES in outInfo to 0. So.
* I expect that MAXIMUM_NUMBER_OF_PIECES is not set on the input to
vtkVortexCore. is that expected?
* 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.
// Setup default information for the outputs.
for(int i=0; i < this->Algorithm->GetNumberOfOutputPorts(); ++i)
{
vtkInformation* outInfo = this->GetOutputInformation(i);
// The data object will exist because UpdateDataObject has already
// succeeded. Except when this method is called by a subclass
// that does not provide this key in certain cases.
vtkDataObject* dataObject =
outInfo->Get(vtkDataObject::DATA_OBJECT());
if (!dataObject)
{
continue;
}
vtkInformation* dataInfo = dataObject->GetInformation();
if(dataInfo->Get(vtkDataObject::DATA_EXTENT_TYPE()) ==
VTK_PIECES_EXTENT)
{
if (!outInfo->Has(MAXIMUM_NUMBER_OF_PIECES()))
{
if (this->GetNumberOfInputPorts() > 0)
{
// must have structured input; MAXIMUM_NUMBER_OF_PIECES will
// not be copied above (CopyEntry does nothing since key not set
// in inInfo); set to -1
outInfo->Set(MAXIMUM_NUMBER_OF_PIECES(), -1);
}
else
{
// Since most unstructured filters in VTK generate all their
// data once, set the default maximum number of pieces to 1.
outInfo->Set(MAXIMUM_NUMBER_OF_PIECES(), 1);
}
}
}
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.
If you think I'm off base, let me know. I'll take another look.
Rusty
_____
From: vtk-developers-bounces at vtk.org [mailto:vtk-developers-bounces at vtk.org]
On Behalf Of Crossno, Patricia J
Sent: Monday, April 04, 2005 5:15 PM
To: vtk-developers at vtk.org
Subject: [vtk-developers] Problem with vtkStreamingDemandDrivenPipeline
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:
ERROR: In
C:\vtk_stuff\ParaView\VTK\Filtering\vtkStreamingDemandDrivenPipeline.cxx,
line 549
vtkStreamingDemandDrivenPipeline (0x03E8DDE8): No maximum number of pieces
has been set in the information for output port 0 on algorithm
vtkVortexCore(0x03E85FA0).
Looking at the revision log for vtkStreamingDemandDrivenPipeline.cxx, I see
the following last entry:
Revision 1.28 - (view
<file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cx
x?rev=1.28&view=markup> ) (download
<file:///\\cgi-bin\viewcvs.cgi\*checkout*\Filtering\vtkStreamingDemandDriven
Pipeline.cxx?rev=1.28> ) (as
<file:///\\cgi-bin\viewcvs.cgi\*checkout*\Filtering\vtkStreamingDemandDriven
Pipeline.cxx?content-type=text%2Fplain&rev=1.28> text) (annotate
<file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cx
x?annotate=1.28> ) - [select
<file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cx
x?r1=1.28&view=log> for diffs]
Tue Mar 29 15:48:48 2005 UTC (6 days, 5 hours ago) by blue
Branch:
<file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cx
x?only_with_tag=MAIN> MAIN
CVS Tags:
<file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cx
x?only_with_tag=HEAD> HEAD,
<file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cx
x?only_with_tag=ParaView-RenderModule2> ParaView-RenderModule2
Branch point for:
<file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cx
x?only_with_tag=ParaView-RenderModule2-branch> ParaView-RenderModule2-branch
Changes since 1.27: +14 -4 lines
Diff to previous
<file:///\\cgi-bin\viewcvs.cgi\Filtering\vtkStreamingDemandDrivenPipeline.cx
x?r1=1.27&r2=1.28> 1.27
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.
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?
Pat
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20050405/4c38aba9/attachment.html>
More information about the vtk-developers
mailing list