MCPcopy Create free account
hub / github.com/Kitware/VTK / WriteRowDataAppendedData

Method WriteRowDataAppendedData

IO/XML/vtkXMLTableWriter.cxx:550–594  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

548
549//------------------------------------------------------------------------------
550void 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//------------------------------------------------------------------------------
597void vtkXMLTableWriter::WriteRowDataInline(vtkDataSetAttributes* ds, vtkIndent indent)

Callers 1

Calls 11

GetAbstractArrayMethod · 0.80
assertFunction · 0.50
GetProgressRangeMethod · 0.45
GetNumberOfArraysMethod · 0.45
SetProgressRangeMethod · 0.45
GetMTimeMethod · 0.45
GetPositionMethod · 0.45
GetRangeMethod · 0.45

Tested by

no test coverage detected