Functions

mitkSTLFileReaderTest.cpp File Reference

#include "mitkImage.h"
#include "mitkSTLFileReader.h"
#include "mitkTimeSlicedGeometry.h"
#include "mitkSlicedGeometry3D.h"
#include "mitkSurface.h"
#include "mitkTestingMacros.h"
#include <vtkSTLReader.h>
#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <fstream>

Go to the source code of this file.

Functions

int mitkSTLFileReaderTest (int argc, char *argv[])

Function Documentation

int mitkSTLFileReaderTest ( int  argc,
char *  argv[] 
)

Definition at line 30 of file mitkSTLFileReaderTest.cpp.

References EXIT_SUCCESS, mitk::TestManager::GetInstance(), MITK_TEST_BEGIN, MITK_TEST_CONDITION_REQUIRED, MITK_TEST_END, MITK_TEST_OUTPUT, and mitk::STLFileReader::New().

{
  // always start with this!
  MITK_TEST_BEGIN("STLFileReader")

  //Read STL-Image from file
  mitk::STLFileReader::Pointer reader = mitk::STLFileReader::New();

  if(argc==0)
  {
    std::cout<<"file not found - test not applied [PASSED]"<<std::endl;
    std::cout<<"[TEST DONE]"<<std::endl;
    return EXIT_SUCCESS;
  }

  std::cout << "Testing CanReadFile(): ";
  if (!reader->CanReadFile(argv[1], "", ""))
  {
    //std::cout<<"[FAILED]"<<std::endl;
    //return EXIT_FAILURE;
    MITK_TEST_OUTPUT(<< mitkTestName << ": "<< mitk::TestManager::GetInstance()->NumberOfPassedTests() << " tests [DONE PASSED] File is not STL!")
    return EXIT_SUCCESS; 
  }
  std::cout<<"[PASSED]"<<std::endl;

  reader->SetFileName(argv[1]);
  reader->Update();

  MITK_TEST_CONDITION_REQUIRED((reader->GetOutput() != NULL),"Reader output not NULL")

  mitk::Surface::Pointer surface = reader->GetOutput();
  MITK_TEST_CONDITION_REQUIRED(surface->IsInitialized(),"IsInitialized()")

  MITK_TEST_CONDITION_REQUIRED((surface->GetVtkPolyData()!=NULL),"mitk::Surface::SetVtkPolyData()")

  MITK_TEST_CONDITION_REQUIRED((surface->GetGeometry()!=NULL),"Availability of geometry")

  vtkSmartPointer<vtkSTLReader> myVtkSTLReader = vtkSmartPointer<vtkSTLReader>::New();
  myVtkSTLReader->SetFileName( argv[1] );
  myVtkSTLReader->Update();
  vtkSmartPointer<vtkPolyData> myVtkPolyData = myVtkSTLReader->GetOutput();
  // vtkPolyData from vtkSTLReader directly
  int n = myVtkPolyData->GetNumberOfPoints();
  // vtkPolyData from mitkSTLFileReader
  int m = surface->GetVtkPolyData()->GetNumberOfPoints();
  MITK_TEST_CONDITION_REQUIRED((n == m),"Number of Points in VtkPolyData")

  // always end with this!
  MITK_TEST_END()
}
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines