MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitkToFTestingCommon.h
Go to the documentation of this file.
1/*============================================================================
2
3The Medical Imaging Interaction Toolkit (MITK)
4
5Copyright (c) German Cancer Research Center (DKFZ)
6All rights reserved.
7
8Use of this source code is governed by a 3-clause BSD license that can be
9found in the LICENSE file.
10
11============================================================================*/
12#ifndef mitkToFTestingCommon_h
13#define mitkToFTestingCommon_h
14
15#include <MitkToFProcessingExports.h>
16#include "mitkNumericTypes.h"
18#include <mitkSurface.h>
19#include <mitkPointSet.h>
20#include <itksys/SystemTools.hxx>
21
22#include <vtkSmartPointer.h>
23#include <vtkPolyData.h>
24
25namespace mitk
26{
27class MITKTOFPROCESSING_EXPORT ToFTestingCommon
28{
29public:
30
37 static bool PointSetsEqual(mitk::PointSet::Pointer pointSet1, mitk::PointSet::Pointer pointSet2)
38 {
39 bool pointSetsEqual = true;
40 if (pointSet1->GetSize()==pointSet2->GetSize())
41 {
42 for (int i=0; i<pointSet1->GetSize(); i++)
43 {
44 mitk::Point3D expectedPoint = pointSet1->GetPoint(i);
45 mitk::Point3D resultPoint = pointSet2->GetPoint(i);
46 if (!mitk::Equal(expectedPoint,resultPoint))
47 {
48 std::cout << std::endl;
49 std::cout << std::setprecision(12) << "expected: " << expectedPoint;
50 std::cout << std::endl;
51 std::cout << std::setprecision(12) << "resultPoint: " << resultPoint;
52 std::cout << std::endl;
53 pointSetsEqual = false;
54 }
55 }
56 }
57 else
58 {
59 pointSetsEqual = false;
60 MITK_INFO<<"Point sets have different size: "<<pointSet1->GetSize()<<" vs. "<<pointSet2->GetSize();
61 }
62 return pointSetsEqual;
63 }
64
72 {
73 return PointSetsEqual(VtkPolyDataToMitkPointSet(poly1), VtkPolyDataToMitkPointSet(poly2));
74 }
75
81 static mitk::PointSet::Pointer VtkPolyDataToMitkPointSet( vtkSmartPointer<vtkPolyData> poly )
82 {
83 mitk::PointSet::Pointer result = mitk::PointSet::New();
84 int numberOfPoints = poly->GetNumberOfPoints();
85 for (int i=0; i<numberOfPoints; i++)
86 {
87 double* currentPoint = poly->GetPoint(i);
88 mitk::Point3D point;
89 point[0] = currentPoint[0];
90 point[1] = currentPoint[1];
91 point[2] = currentPoint[2];
92 result->InsertPoint(i,point);
93 }
94 return result;
95 }
96};
97
98}
99#endif
static bool VtkPolyDatasEqual(vtkSmartPointer< vtkPolyData > poly1, vtkSmartPointer< vtkPolyData > poly2)
VtkPolyDatasEqual Convenience method for comparing the points of two vtkPolyData (using PointSetsEqua...
static mitk::PointSet::Pointer VtkPolyDataToMitkPointSet(vtkSmartPointer< vtkPolyData > poly)
VtkPolyDataToMitkPointSet Converts a vtkPolyData into an mitkPointSet.
static bool PointSetsEqual(mitk::PointSet::Pointer pointSet1, mitk::PointSet::Pointer pointSet2)
PointSetsEqual Method two test if two point sets contain the same points. mitk::Equal is used for com...
IGT Exceptions.
MITKIGTBASE_EXPORT bool Equal(const mitk::NavigationData &leftHandSide, const mitk::NavigationData &rightHandSide, ScalarType eps=mitk::eps, bool verbose=false)
Equal A function comparing two navigation data objects for beeing equal in meta- and imagedata.