diff --git a/vtu_to_vti_converter/source/main.cpp b/vtu_to_vti_converter/source/main.cpp
index fc7f906bda0e647fa0e7f13cb27406f5b8359d5e..7a1a53d2f0fe6212819ffdc8ad1ed08806ffef6e 100644
--- a/vtu_to_vti_converter/source/main.cpp
+++ b/vtu_to_vti_converter/source/main.cpp
@@ -1,11 +1,15 @@
#include <cstdint>
+#include <iostream>
#include <string>
+#include <vtkDataArraySelection.h>
#include <vtkDataObject.h>
+#include <vtkImageData.h>
#include <vtkResampleToImage.h>
#include <vtkSmartPointer.h>
#include <vtkXMLImageDataWriter.h>
#include <vtkXMLUnstructuredGridReader.h>
+#include <vtkUnstructuredGrid.h>
// Usage: ./vtu_to_vti_converter [VTU_FILEPATH] [X_RESOLUTION] [Y_RESOLUTION] [Z_RESOLUTION].
std::int32_t main(std::int32_t argc, char** argv)
@@ -16,14 +20,23 @@ std::int32_t main(std::int32_t argc, char** argv)
auto converter = vtkSmartPointer<vtkResampleToImage> ::New();
auto writer = vtkSmartPointer<vtkXMLImageDataWriter> ::New();
+ std::cout << "Reading unstructured grid.\n";
reader ->SetFileName (filepath.c_str());
- reader ->SetInputArrayToProcess(0, 0, 0, vtkDataObject::FIELD_ASSOCIATION_CELLS, "Q");
+ reader ->UpdateInformation ();
+ for (auto i = 0; i < reader->GetNumberOfCellArrays(); ++i)
+ reader->SetCellArrayStatus(reader->GetCellArrayName(i), reader->GetCellArrayName(i) == "Q" ? 1 : 0);
+ reader ->Update ();
+ auto input_data = reader->GetOutput();
- converter->SetInputConnection (reader->GetOutputPort());
+ std::cout << "Converting unstructured grid to structured grid.\n";
+ converter->SetInputDataObject (input_data);
converter->SetUseInputBounds (true);
converter->SetSamplingDimensions (std::stoi(argv[2]), std::stoi(argv[3]), std::stoi(argv[4]));
+ converter->Update ();
+ auto output_data = converter->GetOutput();
- writer ->SetInputConnection (converter->GetOutputPort());
+ std::cout << "Writing structured grid.\n";
+ writer ->SetInputData (output_data);
writer ->SetFileName ((filepath.substr(0, filepath.size() - 3) + std::string("vti")).c_str());
writer ->Update ();