![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
00001 /*====================================================================== 00002 00003 This file is part of the elastix software. 00004 00005 Copyright (c) University Medical Center Utrecht. All rights reserved. 00006 See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for 00007 details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notices for more information. 00012 00013 ======================================================================*/ 00014 00015 #ifndef __elxSimplex_h 00016 #define __elxSimplex_h 00017 00018 #include "itkAmoebaOptimizer.h" 00019 #include "elxIncludes.h" 00020 00021 namespace elastix 00022 { 00023 using namespace itk; 00024 00038 template <class TElastix> 00039 class Simplex : 00040 public 00041 itk::AmoebaOptimizer, 00042 public 00043 OptimizerBase<TElastix> 00044 { 00045 public: 00046 00048 typedef Simplex Self; 00049 typedef AmoebaOptimizer Superclass1; 00050 typedef OptimizerBase<TElastix> Superclass2; 00051 typedef SmartPointer<Self> Pointer; 00052 typedef SmartPointer<const Self> ConstPointer; 00053 00055 itkNewMacro( Self ); 00056 00058 itkTypeMacro( Simplex, AmoebaOptimizer ); 00059 00064 elxClassNameMacro( "Simplex" ); 00065 00067 typedef Superclass1::CostFunctionType CostFunctionType; 00068 typedef Superclass1::CostFunctionPointer CostFunctionPointer; 00069 00071 typedef typename Superclass2::ElastixType ElastixType; 00072 typedef typename Superclass2::ElastixPointer ElastixPointer; 00073 typedef typename Superclass2::ConfigurationType ConfigurationType; 00074 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00075 typedef typename Superclass2::RegistrationType RegistrationType; 00076 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00077 typedef typename Superclass2::ITKBaseType ITKBaseType; 00078 00080 typedef typename Superclass1::ParametersType ParametersType; 00081 00084 virtual void BeforeRegistration(void); 00085 virtual void BeforeEachResolution(void); 00086 virtual void AfterEachResolution(void); 00087 virtual void AfterEachIteration(void); 00088 virtual void AfterRegistration(void); 00089 00094 virtual void SetInitialPosition( const ParametersType & param ); 00095 00096 protected: 00097 00098 Simplex(){}; 00099 virtual ~Simplex() {}; 00100 00101 private: 00102 00103 Simplex( const Self& ); // purposely not implemented 00104 void operator=( const Self& ); // purposely not implemented 00105 00106 }; // end class Simplex 00107 00108 00109 } // end namespace elastix 00110 00111 #ifndef ITK_MANUAL_INSTANTIATION 00112 #include "elxSimplex.hxx" 00113 #endif 00114 00115 #endif // end #ifndef __elxSimplex_h
Generated on 24-10-2011 for elastix by ![]() |
![]() |