00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.1.0.0 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freAccuracySOMetricThread.h,v $ 00007 Language: C++ 00008 00009 00010 00011 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00012 Institute for Medical Biometry and Informatics, University of Heidelberg, 00013 Germany). All rights reserved. 00014 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00015 for details. 00016 00017 This software is distributed WITHOUT ANY WARRANTY; without even 00018 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 PURPOSE. See the above copyright notices for more information. 00020 00021 =========================================================================*/ 00022 #ifndef __freAccuracySOMetricThread_h 00023 #define __freAccuracySOMetricThread_h 00024 00025 #include "freSetupOptimizationMetricThreadBase.h" 00026 00027 #include "freAccuracySOMetricMonitor.h" 00028 #include "freIDPath.h" 00029 #include "freSessionInfo.h" 00030 00031 namespace FREE 00032 { 00033 00043 template <unsigned int VImageDimension> 00044 class ITK_EXPORT AccuracySOMetricThread : 00045 public SetupOptimizationMetricThreadBase<AccuracySOMetricMonitor> 00046 { 00047 public: 00049 typedef AccuracySOMetricThread<VImageDimension> Self; 00050 typedef SetupOptimizationMetricThreadBase<AccuracySOMetricMonitor> Superclass; 00051 typedef itk::SmartPointer<Self> Pointer; 00052 typedef itk::SmartPointer<const Self> ConstPointer; 00053 00054 typedef typename Superclass::ThreadIDType ThreadIDType; 00055 typedef typename Superclass::MonitorType MonitorType; 00056 typedef typename Superclass::ResultType ResultType; 00057 00059 itkTypeMacro( AccuracySOMetricThread<VImageDimension>, SetupOptimizationMetricThreadBase<AccuracySOMetricMonitor> ); 00060 itkNewMacro(Self); 00061 00062 void SetResultFieldPath(const IDPath& path); 00063 const IDPath& GetResultFieldPath() const; 00064 00065 void SetReferenceFieldPath(const IDPath& path); 00066 const IDPath& GetReferenceFieldPath() const; 00067 00068 void SetReferencePointsPath(const IDPath& path); 00069 const IDPath& GetReferencePointsPath() const; 00070 00071 void SetMovingPointsPath(const IDPath& path); 00072 const IDPath& GetMovingPointsPath() const; 00073 00074 void SetUseField(const bool& bUseField); 00075 bool GetUseField() const; 00076 00077 protected: 00078 00079 AccuracySOMetricThread(); 00080 00081 virtual ~AccuracySOMetricThread(); 00082 00083 virtual bool ProcessSetup(Setup* pAdaptationSetup) throw(); 00084 00085 typedef typename ImageTypes<VImageDimension>::TransformationFieldType TransformationFieldType; 00086 00089 void EvaluateField(TransformationFieldType* pResultField, SessionInfo* pSessionInfo); 00092 void EvaluatePoints(TransformationFieldType* pResultField, SessionInfo* pSessionInfo); 00093 00094 IDPath m_ResultFieldPath; 00095 IDPath m_ReferenceFieldPath; 00096 IDPath m_ReferencePointsPath; 00097 IDPath m_MovingPointsPath; 00098 00099 bool m_UseField; 00100 00101 private: 00102 AccuracySOMetricThread(const Self&); //purposely not implemented 00103 void operator=(const Self&); //purposely not implemented 00104 }; 00105 00106 } // end namespace FREE 00107 00108 #ifndef ITK_MANUAL_INSTANTIATION 00109 #include "freAccuracySOMetricThread.txx" 00110 #endif 00111 00112 #endif 00113 00114 00115
1.5.3 written by Dimitri van Heesch,
© 1997-2000