Functions

mitkCameraVisualizationTest.cpp File Reference

#include "mitkCameraVisualization.h"
#include "mitkNavigationData.h"
#include "mitkTestingMacros.h"
#include "mitkVtkPropRenderer.h"
#include "mitkGlobalInteraction.h"
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <time.h>

Go to the source code of this file.

Functions

int mitkCameraVisualizationTest (int, char *[])

Function Documentation

int mitkCameraVisualizationTest ( int  ,
char *  [] 
)

Documentation test for the class "NavigationDataVisualizationByBaseDataTransformFilter".

Definition at line 32 of file mitkCameraVisualizationTest.cpp.

References mitk::RenderingManager::GetInstance(), mitk::GlobalInteraction::GetInstance(), MITK_TEST_BEGIN, MITK_TEST_CONDITION, MITK_TEST_CONDITION_REQUIRED, MITK_TEST_END, MITK_TEST_FOR_EXCEPTION_BEGIN, MITK_TEST_FOR_EXCEPTION_END, mitk::VtkPropRenderer::New(), mitk::NavigationData::New(), and mitk::CameraVisualization::New().

{
  MITK_TEST_BEGIN("CameraVisualization")

  // let's create an object of our class  
  mitk::CameraVisualization::Pointer myFilter = mitk::CameraVisualization::New();

  // Global interaction must(!) be initialized if used
  mitk::GlobalInteraction::GetInstance()->Initialize("global");
  
  // first test: did this work?
  // using MITK_TEST_CONDITION_REQUIRED makes the test stop after failure, since
  // it makes no sense to continue without an object.
  MITK_TEST_CONDITION_REQUIRED(myFilter.IsNotNull(),"Testing instantiation");

  /* create helper objects: navigation data with position as origin, zero quaternion, zero error and data valid */
  srand(time(NULL));
  // generate a random position for the navigation data 
  mitk::NavigationData::PositionType position;
  position[0] = rand()%1000;
  position[1] = rand()%1000;
  position[2] = rand()%1000;

  // generate a random orientation for the navigation data
  mitk::NavigationData::OrientationType orientation;
  orientation[0] = (rand()%1000)/1000.0;
  orientation[1] = (rand()%1000)/1000.0;
  orientation[2] = (rand()%1000)/1000.0;
  orientation[3] = (rand()%1000)/1000.0;

  // generate a random error for the navigation data
  mitk::ScalarType error = rand()%10;

  // data valid flag of navigation data
  int val = rand()%2;
  bool valid(0); // this was uninitialized. how was this test ever meant to work??
  if (val==0)
  {
    valid=false;
  }
  else if (val==1)
  {
    valid=true;
  }
  
  // set parameters of navigation data
  mitk::NavigationData::Pointer nd1 = mitk::NavigationData::New();
  nd1->SetPosition(position);
  nd1->SetOrientation(orientation);
  nd1->SetPositionAccuracy(error);
  nd1->SetDataValid(valid);

  // create renderer
  vtkRenderWindow* renderWindow = vtkRenderWindow::New();
  mitk::VtkPropRenderer::Pointer renderer = mitk::VtkPropRenderer::New( "TestRenderer",renderWindow, mitk::RenderingManager::GetInstance() );

  myFilter->SetInput(nd1);
  MITK_TEST_CONDITION(myFilter->GetInput() == nd1, "Testing Set-/GetInput() input 1");

  // test for exception if renderer not set
  MITK_TEST_FOR_EXCEPTION_BEGIN(itk::ExceptionObject)
    myFilter->Update();
  MITK_TEST_FOR_EXCEPTION_END(itk::ExceptionObject)

  // set renderer
  myFilter->SetRenderer(renderer);
  
  //Update filter
  myFilter->Update();

  //Delete renderWindow correctly
  renderWindow->Delete();

  // always end with this!
  MITK_TEST_END();

}
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines