freLimitedAxisAmoebaSOOptimizer.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: freLimitedAxisAmoebaSOOptimizer.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 __freLimitedAxisAmoebaSOOptimizer_h
00023 #define __freLimitedAxisAmoebaSOOptimizer_h
00024 
00025 #include "freAmoebaSOOptimizer.h"
00026 
00027 #include "freSVLimitedAxisVnlSOMetricAdaptor.h"
00028 
00029 namespace FREE
00030 {
00031   
00036 class ITK_EXPORT LimitedAxisAmoebaSOOptimizer : 
00037         public AmoebaSOOptimizer
00038 {
00039 public:
00041   typedef LimitedAxisAmoebaSOOptimizer  Self;
00042   typedef AmoebaSOOptimizer                                                     Superclass;
00043   typedef itk::SmartPointer<Self>                                                                       Pointer;
00044   typedef itk::SmartPointer<const Self>                                         ConstPointer;
00045 
00047   itkTypeMacro( LimitedAxisAmoebaSOOptimizer, AmoebaSOOptimizer );
00048 
00050   itkNewMacro(Self);
00051 
00053         typedef Superclass::InternalParametersType      InternalParametersType;
00054 
00056         typedef Superclass::InternalOptimizerType               InternalOptimizerType;
00057 
00058         typedef itk::Array< long >              ParameterAxisType;
00059 
00060   itkSetMacro( NumberOfAxis, unsigned long );
00061   itkGetConstReferenceMacro( NumberOfAxis, unsigned long );
00062   itkSetMacro( ParameterAxis, ParameterAxisType );
00063   itkGetConstReferenceMacro( ParameterAxis, ParameterAxisType );
00064 
00065   virtual void StartOptimization( void );
00066 
00067         virtual MeasureType  GetValue (const ParametersType &parameters);
00068         virtual DecomposedMeasureType  GetDecomposedValue (const ParametersType &parameters);
00069 
00070   virtual void SetCostFunction( CostFunctionType * costFunction );
00071 
00072 protected:
00073   LimitedAxisAmoebaSOOptimizer();
00074         void PrintSelf(std::ostream& os, itk::Indent indent) const;
00075 
00076   typedef SVLimitedAxisVnlSOMetricAdaptor   CostFunctionAdaptorType;
00077 
00078 private:  
00079   LimitedAxisAmoebaSOOptimizer(const Self&); //purposely not implemented
00080   void operator=(const Self&);//purposely not implemented
00081 
00082 protected:
00083 
00084         unsigned long                                                                   m_NumberOfAxis;
00085         ParameterAxisType                                                       m_ParameterAxis;
00086         ParametersType                                                          m_CurrentAxisPosition;
00087 };
00088 
00089 } // end namespace FREE
00090 
00091 #endif
00092     
00093  

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