diff --git a/IO/XML/vtkXMLCompositeDataWriter.cxx b/IO/XML/vtkXMLCompositeDataWriter.cxx index 23480e32d802bc48fd9ae9687a7406313e11f509..329c83c1a9336533065d1fb8c2c091bbae06cf96 100644 --- a/IO/XML/vtkXMLCompositeDataWriter.cxx +++ b/IO/XML/vtkXMLCompositeDataWriter.cxx @@ -254,6 +254,9 @@ int vtkXMLCompositeDataWriter::WriteNonCompositeData( } // FIXME + // Ken's note, I do not think you can fix this, the + // setprogress range has to be done in the loop that calls + // this function. // this->SetProgressRange(progressRange, myWriterIndex, // GetNumberOfInputConnections(0)+writeCollection); diff --git a/IO/XML/vtkXMLMultiBlockDataWriter.cxx b/IO/XML/vtkXMLMultiBlockDataWriter.cxx index 93ef10eba616b7b7b9f140ee85ba9fb514c89d76..ee8ea9fbe57e8aea1aa9ccf54bc7b2bd449fd409 100644 --- a/IO/XML/vtkXMLMultiBlockDataWriter.cxx +++ b/IO/XML/vtkXMLMultiBlockDataWriter.cxx @@ -60,6 +60,15 @@ int vtkXMLMultiBlockDataWriter::WriteComposite(vtkCompositeDataSet* compositeDat iter->VisitOnlyLeavesOff(); iter->TraverseSubTreeOff(); iter->SkipEmptyNodesOff(); + int toBeWritten = 0; + for (iter->InitTraversal(); !iter->IsDoneWithTraversal(); + iter->GoToNextItem()) + { + toBeWritten++; + } + + float progressRange[2] = { 0.f, 0.f }; + this->GetProgressRange(progressRange); int index = 0; int RetVal = 0; @@ -115,6 +124,8 @@ int vtkXMLMultiBlockDataWriter::WriteComposite(vtkCompositeDataSet* compositeDat datasetXML->SetAttribute("name", name); } vtkStdString fileName = this->CreatePieceFileName(writerIdx); + + this->SetProgressRange(progressRange, writerIdx, toBeWritten); if (this->WriteNonCompositeData( curDO, datasetXML, writerIdx, fileName.c_str())) {