![]() |
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 __elxCMAEvolutionStrategy_h 00016 #define __elxCMAEvolutionStrategy_h 00017 00018 #include "itkCMAEvolutionStrategyOptimizer.h" 00019 #include "elxIncludes.h" 00020 00021 namespace elastix 00022 { 00023 using namespace itk; 00024 00025 00113 template <class TElastix> 00114 class CMAEvolutionStrategy : 00115 public 00116 itk::CMAEvolutionStrategyOptimizer, 00117 public 00118 OptimizerBase<TElastix> 00119 { 00120 public: 00121 00123 typedef CMAEvolutionStrategy Self; 00124 typedef CMAEvolutionStrategyOptimizer Superclass1; 00125 typedef OptimizerBase<TElastix> Superclass2; 00126 typedef SmartPointer<Self> Pointer; 00127 typedef SmartPointer<const Self> ConstPointer; 00128 00130 itkNewMacro( Self ); 00131 00133 itkTypeMacro( CMAEvolutionStrategy, CMAEvolutionStrategyOptimizer ); 00134 00139 elxClassNameMacro( "CMAEvolutionStrategy" ); 00140 00142 typedef Superclass1::CostFunctionType CostFunctionType; 00143 typedef Superclass1::CostFunctionPointer CostFunctionPointer; 00144 typedef Superclass1::StopConditionType StopConditionType; 00145 typedef Superclass1::ParametersType ParametersType; 00146 typedef Superclass1::DerivativeType DerivativeType; 00147 typedef Superclass1::ScalesType ScalesType; 00148 00150 typedef typename Superclass2::ElastixType ElastixType; 00151 typedef typename Superclass2::ElastixPointer ElastixPointer; 00152 typedef typename Superclass2::ConfigurationType ConfigurationType; 00153 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00154 typedef typename Superclass2::RegistrationType RegistrationType; 00155 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00156 typedef typename Superclass2::ITKBaseType ITKBaseType; 00157 00158 00161 virtual void StartOptimization(void); 00162 00165 virtual void BeforeRegistration(void); 00166 virtual void BeforeEachResolution(void); 00167 virtual void AfterEachResolution(void); 00168 virtual void AfterEachIteration(void); 00169 virtual void AfterRegistration(void); 00170 00171 00172 protected: 00173 00174 CMAEvolutionStrategy(){}; 00175 virtual ~CMAEvolutionStrategy() {}; 00176 00178 virtual void InitializeProgressVariables(void); 00179 00180 private: 00181 00182 CMAEvolutionStrategy( const Self& ); // purposely not implemented 00183 void operator=( const Self& ); // purposely not implemented 00184 00185 00186 }; // end class CMAEvolutionStrategy 00187 00188 00189 } // end namespace elastix 00190 00191 #ifndef ITK_MANUAL_INSTANTIATION 00192 #include "elxCMAEvolutionStrategy.hxx" 00193 #endif 00194 00195 #endif // end #ifndef __elxCMAEvolutionStrategy_h 00196
Generated on 24-10-2011 for elastix by ![]() |
![]() |