![]() |
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 __elxRegularStepGradientDescent_h 00016 #define __elxRegularStepGradientDescent_h 00017 00018 #include "itkRegularStepGradientDescentOptimizer.h" 00019 #include "elxIncludes.h" 00020 00021 namespace elastix 00022 { 00023 using namespace itk; 00024 00062 template <class TElastix> 00063 class RegularStepGradientDescent : 00064 public 00065 itk::RegularStepGradientDescentOptimizer, 00066 public 00067 OptimizerBase<TElastix> 00068 { 00069 public: 00070 00072 typedef RegularStepGradientDescent Self; 00073 typedef RegularStepGradientDescentOptimizer Superclass1; 00074 typedef OptimizerBase<TElastix> Superclass2; 00075 typedef SmartPointer<Self> Pointer; 00076 typedef SmartPointer<const Self> ConstPointer; 00077 00079 itkNewMacro( Self ); 00080 00082 itkTypeMacro( RegularStepGradientDescent, RegularStepGradientDescentOptimizer ); 00083 00088 elxClassNameMacro( "RegularStepGradientDescent" ); 00089 00091 typedef Superclass1::CostFunctionType CostFunctionType; 00092 typedef Superclass1::CostFunctionPointer CostFunctionPointer; 00093 00095 typedef typename Superclass2::ElastixType ElastixType; 00096 typedef typename Superclass2::ElastixPointer ElastixPointer; 00097 typedef typename Superclass2::ConfigurationType ConfigurationType; 00098 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00099 typedef typename Superclass2::RegistrationType RegistrationType; 00100 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00101 typedef typename Superclass2::ITKBaseType ITKBaseType; 00102 00104 typedef typename Superclass1::ParametersType ParametersType; 00105 00108 virtual void BeforeRegistration(void); 00109 virtual void BeforeEachResolution(void); 00110 virtual void AfterEachResolution(void); 00111 virtual void AfterEachIteration(void); 00112 virtual void AfterRegistration(void); 00113 00118 virtual void SetInitialPosition( const ParametersType & param ); 00119 00120 00121 protected: 00122 00123 RegularStepGradientDescent(){}; 00124 virtual ~RegularStepGradientDescent() {}; 00125 00126 private: 00127 00128 RegularStepGradientDescent( const Self& ); // purposely not implemented 00129 void operator=( const Self& ); // purposely not implemented 00130 00131 }; // end class RegularStepGradientDescent 00132 00133 00134 } // end namespace elastix 00135 00136 #ifndef ITK_MANUAL_INSTANTIATION 00137 #include "elxRegularStepGradientDescent.hxx" 00138 #endif 00139 00140 #endif // end #ifndef __elxRegularStepGradientDescent_h
Generated on 24-10-2011 for elastix by ![]() |
![]() |