![]() |
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 __elxOptimizerBase_h 00016 #define __elxOptimizerBase_h 00017 00019 #include "elxMacro.h" 00020 00021 #include "elxBaseComponentSE.h" 00022 #include "itkOptimizer.h" 00023 00024 00025 namespace elastix 00026 { 00027 using namespace itk; 00028 00050 template <class TElastix> 00051 class OptimizerBase : public BaseComponentSE<TElastix> 00052 { 00053 public: 00054 00056 typedef OptimizerBase Self; 00057 typedef BaseComponentSE<TElastix> Superclass; 00058 00060 itkTypeMacro( OptimizerBase, BaseComponentSE ); 00061 00063 typedef typename Superclass::ElastixType ElastixType; 00064 typedef typename Superclass::ElastixPointer ElastixPointer; 00065 typedef typename Superclass::ConfigurationType ConfigurationType; 00066 typedef typename Superclass::ConfigurationPointer ConfigurationPointer; 00067 typedef typename Superclass::RegistrationType RegistrationType; 00068 typedef typename Superclass::RegistrationPointer RegistrationPointer; 00069 00071 typedef itk::Optimizer ITKBaseType; 00072 00074 typedef typename ITKBaseType::ParametersType ParametersType; 00075 00077 virtual ITKBaseType * GetAsITKBaseType(void) 00078 { 00079 return dynamic_cast<ITKBaseType *>(this); 00080 } 00081 00083 virtual const ITKBaseType * GetAsITKBaseType(void) const 00084 { 00085 return dynamic_cast<const ITKBaseType *>(this); 00086 } 00087 00089 virtual void SetCurrentPositionPublic( const ParametersType ¶m ); 00090 00094 virtual void BeforeEachResolutionBase(); 00095 00099 virtual void SetSinusScales(double amplitude, double frequency, 00100 unsigned long numberOfParameters); 00101 00102 protected: 00103 00105 OptimizerBase(); 00107 virtual ~OptimizerBase() {} 00108 00112 virtual void SelectNewSamples(void); 00113 00115 virtual bool GetNewSamplesEveryIteration( void ) const; 00116 00117 private: 00118 00120 OptimizerBase( const Self& ); // purposely not implemented 00122 void operator=( const Self& ); // purposely not implemented 00123 00127 bool m_NewSamplesEveryIteration; 00128 00129 }; // end class OptimizerBase 00130 00131 00132 } // end namespace elastix 00133 00134 00135 #ifndef ITK_MANUAL_INSTANTIATION 00136 #include "elxOptimizerBase.hxx" 00137 #endif 00138 00139 #endif // end #ifndef __elxOptimizerBase_h 00140
Generated on 11-05-2012 for elastix by ![]() |
![]() |