/*========================================================================= Program: Visualization Toolkit Module: TestMappedUnstructuredGrid.cxx Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #include "vtkDataObject.h" #include "vtkGenericDataObjectReader.h" #include "vtkGenericDataObjectWriter.h" #include "vtkMappedUnstructuredGridGenerator.h" #include "vtkTestErrorObserver.h" #include "vtkTestUtilities.h" #include "vtkUnstructuredGrid.h" #include "vtkUnstructuredGridBase.h" #define vtk_assert(x) \ if (!(x)) \ { \ cerr << "On line " << __LINE__ << " ERROR: Condition FAILED!! : " << #x << endl; \ return EXIT_FAILURE; \ } int TestLegacyMappedUnstructuredGrid(int argc, char* argv[]) { int rc = 0; vtkNew errorObserver; vtkUnstructuredGridBase* mg; vtkMappedUnstructuredGridGenerator::GenerateMappedUnstructuredGrid(&mg); char* tempDir = vtkTestUtilities::GetArgOrEnvOrDefault("-T", argc, argv, "VTK_TEMP_DIR", "Testing/Temporary"); if (!tempDir) { std::cout << "Could not determine temporary directory.\n"; return EXIT_FAILURE; } std::string testDirectory = tempDir; delete[] tempDir; std::string filename = testDirectory + std::string("/") + std::string("export.vtk"); vtkNew w; w->SetFileName(filename.c_str()); w->SetInputData(mg); w->AddObserver(vtkCommand::ErrorEvent, errorObserver); rc = w->Write(); vtk_assert(1 == rc); if (errorObserver->GetError()) { cerr << errorObserver->GetErrorMessage() << endl; } vtk_assert(false == errorObserver->GetError()); vtkNew r; r->SetFileName(filename.c_str()); r->Update(); vtkDataObject* read = r->GetOutput(); vtkUnstructuredGrid* ug = vtkUnstructuredGrid::SafeDownCast(read); vtk_assert(nullptr != ug); vtk_assert(mg->GetNumberOfCells() == ug->GetNumberOfCells()); mg->Delete(); return EXIT_SUCCESS; }