Skip to content
Snippets Groups Projects
Commit 63bb2f1a authored by Spiros Tsalikis's avatar Spiros Tsalikis
Browse files

vtkCompositeData(Reader/Writer): Fix assembly processing

parent 7c9c4af3
No related branches found
No related tags found
No related merge requests found
......@@ -4,7 +4,6 @@
#include "vtkAMRBox.h"
#include "vtkAMRInformation.h"
#include "vtkCharArray.h"
#include "vtkDataAssembly.h"
#include "vtkDataObjectTypes.h"
#include "vtkDoubleArray.h"
......@@ -22,6 +21,7 @@
#include "vtkPartitionedDataSet.h"
#include "vtkPartitionedDataSetCollection.h"
#include "vtkStreamingDemandDrivenPipeline.h"
#include "vtkStringArray.h"
#include "vtkUniformGrid.h"
#include <sstream>
......@@ -685,23 +685,23 @@ bool vtkCompositeDataReader::ReadCompositeData(vtkPartitionedDataSetCollection*
return false;
}
unsigned int dataAssemblySize = 0;
if (!this->Read(&dataAssemblySize))
unsigned int hasDataAssembly = 0;
if (!this->Read(&hasDataAssembly))
{
vtkErrorMacro("Failed to read the DATAASSEMBLY size.");
vtkErrorMacro("Failed to read if it has DATAASSEMBLY.");
return false;
}
if (dataAssemblySize > 0)
if (hasDataAssembly > 0)
{
auto dataAssemblyArray = vtk::TakeSmartPointer(
vtkCharArray::SafeDownCast(this->ReadArray("char", dataAssemblySize, 1)));
auto dataAssemblyArray =
vtk::TakeSmartPointer(vtkStringArray::SafeDownCast(this->ReadArray("string", 1, 1)));
if (!dataAssemblyArray)
{
vtkErrorMacro("Failed to read the DATAASSEMBLY.");
return false;
}
vtkNew<vtkDataAssembly> dataAssembly;
dataAssembly->InitializeFromXML(dataAssemblyArray->GetPointer(0));
dataAssembly->InitializeFromXML(dataAssemblyArray->GetValue(0).c_str());
mp->SetDataAssembly(dataAssembly);
}
......
......@@ -5,7 +5,6 @@
#include "vtkAMRBox.h"
#include "vtkAMRInformation.h"
#include "vtkCharArray.h"
#include "vtkDataAssembly.h"
#include "vtkDoubleArray.h"
#include "vtkGenericDataObjectWriter.h"
......@@ -268,13 +267,12 @@ bool vtkCompositeDataWriter::WriteCompositeData(ostream* fp, vtkPartitionedDataS
if (pd->GetDataAssembly())
{
const auto dataAssemblyStr = pd->GetDataAssembly()->SerializeToXML(vtkIndent());
*fp << "DATAASSEMBLY " << dataAssemblyStr.size() << "\n";
vtkNew<vtkCharArray> dataAssemblyArray;
*fp << "DATAASSEMBLY 1 \n";
vtkNew<vtkStringArray> dataAssemblyArray;
dataAssemblyArray->SetName("DataAssembly");
dataAssemblyArray->SetNumberOfValues(dataAssemblyStr.size());
std::copy(dataAssemblyStr.begin(), dataAssemblyStr.end(), dataAssemblyArray->GetPointer(0));
this->WriteArray(fp, VTK_CHAR, dataAssemblyArray, "", dataAssemblyArray->GetNumberOfTuples(),
dataAssemblyArray->GetNumberOfComponents());
dataAssemblyArray->InsertNextValue(dataAssemblyStr);
this->WriteArray(fp, dataAssemblyArray->GetDataType(), dataAssemblyArray, "",
dataAssemblyArray->GetNumberOfTuples(), dataAssemblyArray->GetNumberOfComponents());
}
else
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment