00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkPointSetMetric_h
00012 #define __mitkPointSetMetric_h
00013
00014 #include "mitkMetric.h"
00015 #include "mitkPointSet.h"
00016
00017
00024
00025 class MITK_REGISTRATION_API mitkPointSetMetric : public mitkMetric
00026 {
00027 public:
00028 MITK_TYPE(mitkPointSetMetric, mitkMetric)
00029 virtual void PrintSelf(ostream &os);
00030
00035 virtual void SetFixedPointSet(mitkPointSet *fixedPointSet) { m_FixedPointSet = fixedPointSet; }
00036
00041 virtual void SetMovingPointSet(mitkPointSet *movingPointSet) { m_MovingPointSet = movingPointSet; }
00042
00047 virtual mitkPointSet* GetFixedPointSet() {return m_FixedPointSet;}
00048
00053 virtual mitkPointSet* GetMovingPointSet() {return m_MovingPointSet;}
00054
00059 unsigned int GetNumberOfFixedPoints() {return m_NumberOfFixedPoints;}
00060
00065 unsigned int GetNumberOfMovingPoints() {return m_NumberOfMovingPoints;}
00066
00071 virtual void SetNumberOfFixedPoints(unsigned int number) {m_NumberOfFixedPoints = number;}
00072
00077 virtual void SetNumberOfMovingPoints(unsigned int number) {m_NumberOfMovingPoints = number;}
00078
00083 virtual void Update();
00084
00089 virtual void GetClosestPointPairs(vector<int>* closestPointMask);
00090
00098 virtual double GetPointSetSimilarity(mitkPointSet* p1, mitkPointSet* p2);
00099
00105 virtual double GetPointSetSimilarity();
00106
00107 protected:
00108 mitkPointSetMetric();
00109 virtual ~mitkPointSetMetric();
00110 virtual bool Execute();
00111
00112 mitkPointSet* m_FixedPointSet;
00113 mitkPointSet* m_MovingPointSet;
00114 unsigned int m_NumberOfFixedPoints;
00115 unsigned int m_NumberOfMovingPoints;
00116 int m_PointSetDimension;
00117
00118
00119 private:
00120 mitkPointSetMetric(const mitkPointSetMetric&);
00121 void operator = (const mitkPointSetMetric&);
00122
00123 };
00124
00125
00126
00127
00128
00129
00130
00131 #endif
00132