------------------------------------------------------------------------------
| 28 | |
| 29 | //------------------------------------------------------------------------------ |
| 30 | void vtkXMLPDataWriter::WritePData(vtkIndent indent) |
| 31 | { |
| 32 | vtkDataSet* input = this->GetDataSetInput(); |
| 33 | |
| 34 | // We want to avoid using appended data mode as it |
| 35 | // is not supported in meta formats. |
| 36 | int dataMode = this->DataMode; |
| 37 | if (dataMode == vtkXMLWriter::Appended) |
| 38 | { |
| 39 | this->DataMode = vtkXMLWriter::Binary; |
| 40 | } |
| 41 | |
| 42 | vtkFieldData* fieldData = input->GetFieldData(); |
| 43 | |
| 44 | vtkInformation* meta = input->GetInformation(); |
| 45 | bool hasTime = meta->Has(vtkDataObject::DATA_TIME_STEP()) != 0; |
| 46 | if ((fieldData && fieldData->GetNumberOfArrays()) || (hasTime && this->GetWriteTimeValue())) |
| 47 | { |
| 48 | vtkNew<vtkFieldData> fieldDataCopy; |
| 49 | fieldDataCopy->ShallowCopy(fieldData); |
| 50 | if (hasTime && this->GetWriteTimeValue()) |
| 51 | { |
| 52 | vtkNew<vtkDoubleArray> time; |
| 53 | time->SetNumberOfTuples(1); |
| 54 | time->SetTypedComponent(0, 0, meta->Get(vtkDataObject::DATA_TIME_STEP())); |
| 55 | time->SetName("TimeValue"); |
| 56 | fieldDataCopy->AddArray(time); |
| 57 | } |
| 58 | this->WriteFieldDataInline(fieldDataCopy, indent); |
| 59 | } |
| 60 | |
| 61 | this->DataMode = dataMode; |
| 62 | |
| 63 | this->WritePPointData(input->GetPointData(), indent); |
| 64 | if (this->ErrorCode == vtkErrorCode::OutOfDiskSpaceError) |
| 65 | { |
| 66 | return; |
| 67 | } |
| 68 | this->WritePCellData(input->GetCellData(), indent); |
| 69 | } |
| 70 | |
| 71 | //------------------------------------------------------------------------------ |
| 72 | int vtkXMLPDataWriter::WritePieceInternal() |
no test coverage detected