freAccuracySOMetricThread.h

Go to the documentation of this file.
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 

Generated at Sat Oct 13 15:18:02 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000