From 97b7aa0d727200a3cc52801e967740af2be36586 Mon Sep 17 00:00:00 2001 From: mattijs <mattijs> Date: Wed, 7 Mar 2012 11:49:07 +0000 Subject: [PATCH] BUG: vtkUnstructuredReader: support for lines and vtkIdType --- src/fileFormats/vtk/vtkUnstructuredReader.C | 10 ++++++---- src/fileFormats/vtk/vtkUnstructuredReader.H | 16 +++++++++++++--- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/fileFormats/vtk/vtkUnstructuredReader.C b/src/fileFormats/vtk/vtkUnstructuredReader.C index 2fbe4352426..26ecf9a0ade 100644 --- a/src/fileFormats/vtk/vtkUnstructuredReader.C +++ b/src/fileFormats/vtk/vtkUnstructuredReader.C @@ -36,13 +36,14 @@ defineTypeNameAndDebug(Foam::vtkUnstructuredReader, 0); template<> const char* -Foam::NamedEnum<Foam::vtkUnstructuredReader::vtkDataType, 3>::names[] = +Foam::NamedEnum<Foam::vtkUnstructuredReader::vtkDataType, 4>::names[] = { "int", "float", - "string" + "string", + "vtkIdType" }; -const Foam::NamedEnum<Foam::vtkUnstructuredReader::vtkDataType, 3> +const Foam::NamedEnum<Foam::vtkUnstructuredReader::vtkDataType, 4> Foam::vtkUnstructuredReader::vtkDataTypeNames; @@ -384,6 +385,7 @@ void Foam::vtkUnstructuredReader::readField switch (vtkDataTypeNames[dataType]) { case VTK_INT: + case VTK_ID: { autoPtr<labelIOField> fieldVals ( @@ -724,7 +726,7 @@ void Foam::vtkUnstructuredReader::read(ISstream& inFile) else if (tag == "CELL_DATA") { readMode = CELL_DATA; - wantedSize = cells_.size()+faces_.size(); + wantedSize = cells_.size()+faces_.size()+lines_.size(); label nCells(readLabel(inFile)); if (nCells != wantedSize) diff --git a/src/fileFormats/vtk/vtkUnstructuredReader.H b/src/fileFormats/vtk/vtkUnstructuredReader.H index d33fb01d017..201012eaec1 100644 --- a/src/fileFormats/vtk/vtkUnstructuredReader.H +++ b/src/fileFormats/vtk/vtkUnstructuredReader.H @@ -25,9 +25,18 @@ Class Foam::vtkUnstructuredReader Description - Reader for vtk unstructured legacy files. Supports single CELLS, POINTS + Reader for vtk unstructured_grid legacy files. Supports single CELLS, POINTS etc. entry only. + - POINTS becomes OpenFOAM points + - CELLS gets split into OpenFOAM + - cells + - faces + - lines + - CELL_DATA or POINT_DATA gets stored on the corresponding objectRegistry + in original vtk numbering order so use e.g. faceMap() to go from entry + in faces() back to vtk numbering. + SourceFiles vtkUnstructuredReader.C @@ -61,10 +70,11 @@ public: { VTK_INT, VTK_FLOAT, - VTK_STRING + VTK_STRING, + VTK_ID }; - static const NamedEnum<vtkDataType, 3> vtkDataTypeNames; + static const NamedEnum<vtkDataType, 4> vtkDataTypeNames; //- Enumeration defining the vtk dataset types -- GitLab