------------------------------------------------------------------------------
| 548 | |
| 549 | //------------------------------------------------------------------------------ |
| 550 | void vtkXMLTableWriter::WriteRowDataAppendedData( |
| 551 | vtkDataSetAttributes* ds, int timestep, OffsetsManagerGroup* dsManager) |
| 552 | { |
| 553 | float progressRange[2] = { 0.f, 0.f }; |
| 554 | |
| 555 | this->GetProgressRange(progressRange); |
| 556 | int numberOfArrays = ds->GetNumberOfArrays(); |
| 557 | for (int i = 0; i < numberOfArrays; ++i) |
| 558 | { |
| 559 | this->SetProgressRange(progressRange, i, numberOfArrays); |
| 560 | vtkMTimeType mtime = ds->GetMTime(); |
| 561 | // Only write ds if MTime has changed |
| 562 | vtkMTimeType& dsMTime = dsManager->GetElement(i).GetLastMTime(); |
| 563 | vtkAbstractArray* currentAbstractArray = ds->GetAbstractArray(i); |
| 564 | if (dsMTime != mtime) |
| 565 | { |
| 566 | dsMTime = mtime; |
| 567 | this->WriteArrayAppendedData(currentAbstractArray, |
| 568 | dsManager->GetElement(i).GetPosition(timestep), |
| 569 | dsManager->GetElement(i).GetOffsetValue(timestep)); |
| 570 | if (this->ErrorCode != vtkErrorCode::NoError) |
| 571 | { |
| 572 | return; |
| 573 | } |
| 574 | } |
| 575 | else |
| 576 | { |
| 577 | assert(timestep > 0); |
| 578 | dsManager->GetElement(i).GetOffsetValue(timestep) = |
| 579 | dsManager->GetElement(i).GetOffsetValue(timestep - 1); |
| 580 | this->ForwardAppendedDataOffset(dsManager->GetElement(i).GetPosition(timestep), |
| 581 | dsManager->GetElement(i).GetOffsetValue(timestep), "offset"); |
| 582 | } |
| 583 | vtkDataArray* currentDataArray = vtkArrayDownCast<vtkDataArray>(currentAbstractArray); |
| 584 | if (currentDataArray) |
| 585 | { |
| 586 | // ranges are only written in case of Data Arrays. |
| 587 | double* range = currentDataArray->GetRange(-1); |
| 588 | this->ForwardAppendedDataDouble( |
| 589 | dsManager->GetElement(i).GetRangeMinPosition(timestep), range[0], "RangeMin"); |
| 590 | this->ForwardAppendedDataDouble( |
| 591 | dsManager->GetElement(i).GetRangeMaxPosition(timestep), range[1], "RangeMax"); |
| 592 | } |
| 593 | } |
| 594 | } |
| 595 | |
| 596 | //------------------------------------------------------------------------------ |
| 597 | void vtkXMLTableWriter::WriteRowDataInline(vtkDataSetAttributes* ds, vtkIndent indent) |
no test coverage detected