1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
/*=========================================================================
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) \
do \
{ \
if (!(x)) \
{ \
cerr << "On line " << __LINE__ << " ERROR: Condition FAILED!! : " << #x << endl; \
return EXIT_FAILURE; \
} \
} while (false)
int TestLegacyMappedUnstructuredGrid(int argc, char* argv[])
{
int rc = 0;
vtkNew<vtkTest::ErrorObserver> 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<vtkGenericDataObjectWriter> 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<vtkGenericDataObjectReader> 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;
}
|