------------------------------------------------------------------------------ This version does not support multiblock of multiblocks, so our work is simple.
| 47 | // This version does not support multiblock of multiblocks, so our work is |
| 48 | // simple. |
| 49 | void vtkXMLMultiBlockDataReader::ReadVersion0(vtkXMLDataElement* element, |
| 50 | vtkCompositeDataSet* composite, const char* filePath, unsigned int& dataSetIndex) |
| 51 | { |
| 52 | vtkMultiBlockDataSet* mblock = vtkMultiBlockDataSet::SafeDownCast(composite); |
| 53 | unsigned int numElems = element->GetNumberOfNestedElements(); |
| 54 | for (unsigned int cc = 0; cc < numElems; ++cc) |
| 55 | { |
| 56 | vtkXMLDataElement* childXML = element->GetNestedElement(cc); |
| 57 | if (!childXML || !childXML->GetName() || strcmp(childXML->GetName(), "DataSet") != 0) |
| 58 | { |
| 59 | continue; |
| 60 | } |
| 61 | int group = 0; |
| 62 | int index = 0; |
| 63 | if (childXML->GetScalarAttribute("group", group) && |
| 64 | childXML->GetScalarAttribute("dataset", index)) |
| 65 | { |
| 66 | vtkSmartPointer<vtkDataSet> dataset; |
| 67 | if (this->ShouldReadDataSet(dataSetIndex)) |
| 68 | { |
| 69 | dataset.TakeReference(this->ReadDataset(childXML, filePath)); |
| 70 | } |
| 71 | vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(mblock->GetBlock(group)); |
| 72 | if (!block) |
| 73 | { |
| 74 | block = vtkMultiBlockDataSet::New(); |
| 75 | mblock->SetBlock(group, block); |
| 76 | block->Delete(); |
| 77 | } |
| 78 | block->SetBlock(index, dataset); |
| 79 | } |
| 80 | dataSetIndex++; |
| 81 | } |
| 82 | } |
| 83 | |
| 84 | //------------------------------------------------------------------------------ |
| 85 | void vtkXMLMultiBlockDataReader::ReadComposite(vtkXMLDataElement* element, |
no test coverage detected