00001 /*========================================================================= 00002 00003 Program: 3DMed 00004 Date: $Date: 2014-02-25 18:30:00 +0800 $ 00005 Version: $Version: 4.6.0 $ 00006 Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences 00007 00008 =========================================================================*/ 00009 00010 00011 #ifndef __mitkIterativeClosestPointOptimizer_h 00012 #define __mitkIterativeClosestPointOptimizer_h 00013 00014 #include "mitkOptimizer.h" 00015 00016 class mitkPointSetEstimator; 00017 00027 class MITK_REGISTRATION_API mitkIterativeClosestPointOptimizer : public mitkOptimizer 00028 { 00029 public: 00030 MITK_TYPE(mitkIterativeClosestPointOptimizer,mitkOptimizer) 00031 virtual void PrintSelf(ostream& os); 00032 00036 mitkIterativeClosestPointOptimizer(); 00037 00042 mitkPointSetEstimator* GetEstimator(); 00043 00048 void SetEstimator(mitkPointSetEstimator* estimator) {m_Estimator = estimator;} 00049 00054 void SetInitializedByCentroidsFlag(bool flag) { m_InitializedByCentroids = flag; } 00055 00061 void SetMaxMeanDistance(double val) { m_MaximumMeanDistance = val; } 00062 00063 protected: 00064 virtual ~mitkIterativeClosestPointOptimizer(); 00065 virtual bool Execute(); 00066 void Initialize(); 00067 00068 mitkPointSetEstimator* m_Estimator; 00069 double m_MaximumMeanDistance; 00070 bool m_InitializedByCentroids; 00071 00072 private: 00073 mitkIterativeClosestPointOptimizer(const mitkIterativeClosestPointOptimizer&); 00074 void operator=(const mitkIterativeClosestPointOptimizer&); 00075 }; 00076 00077 00078 //#define DEFINED_mitkIterativeClosestPointOptimizer 00079 00080 00081 00082 #endif 00083 00084