diff --git a/vtu_to_vti_converter/source/main.cpp b/vtu_to_vti_converter/source/main.cpp index fc7f906bda0e647fa0e7f13cb27406f5b8359d5e..3452196bff091759f21920ed59b0eb6d1076d89d 100644 --- a/vtu_to_vti_converter/source/main.cpp +++ b/vtu_to_vti_converter/source/main.cpp @@ -1,11 +1,14 @@ #include <cstdint> +#include <iostream> #include <string> #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,15 +19,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 ->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 ->SetInputArrayToProcess(0, 0, 0, vtkDataObject::FIELD_ASSOCIATION_POINTS, "Q"); writer ->Update (); return 0;