go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxOptimizerBase.h
Go to the documentation of this file.
1 /*======================================================================
2 
3  This file is part of the elastix software.
4 
5  Copyright (c) University Medical Center Utrecht. All rights reserved.
6  See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
7  details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notices for more information.
12 
13 ======================================================================*/
14 
15 #ifndef __elxOptimizerBase_h
16 #define __elxOptimizerBase_h
17 
19 #include "elxMacro.h"
20 
21 #include "elxBaseComponentSE.h"
22 #include "itkOptimizer.h"
23 
24 
25 namespace elastix
26 {
27 using namespace itk;
28 
50  template <class TElastix>
51  class OptimizerBase : public BaseComponentSE<TElastix>
52  {
53  public:
54 
58 
60  itkTypeMacro( OptimizerBase, BaseComponentSE );
61 
63  typedef typename Superclass::ElastixType ElastixType;
69 
71  typedef itk::Optimizer ITKBaseType;
72 
74  typedef typename ITKBaseType::ParametersType ParametersType;
75 
77  virtual ITKBaseType * GetAsITKBaseType(void)
78  {
79  return dynamic_cast<ITKBaseType *>(this);
80  }
81 
83  virtual const ITKBaseType * GetAsITKBaseType(void) const
84  {
85  return dynamic_cast<const ITKBaseType *>(this);
86  }
87 
89  virtual void SetCurrentPositionPublic( const ParametersType &param );
90 
94  virtual void BeforeEachResolutionBase();
95 
99  virtual void SetSinusScales(double amplitude, double frequency,
100  unsigned long numberOfParameters);
101 
102  protected:
103 
105  OptimizerBase();
107  virtual ~OptimizerBase() {}
108 
112  virtual void SelectNewSamples(void);
113 
115  virtual bool GetNewSamplesEveryIteration( void ) const;
116 
117  private:
118 
120  OptimizerBase( const Self& ); // purposely not implemented
122  void operator=( const Self& ); // purposely not implemented
123 
128 
129  }; // end class OptimizerBase
130 
131 
132 } // end namespace elastix
133 
134 
135 #ifndef ITK_MANUAL_INSTANTIATION
136 #include "elxOptimizerBase.hxx"
137 #endif
138 
139 #endif // end #ifndef __elxOptimizerBase_h
140 


Generated on 27-06-2013 for elastix by doxygen 1.8.3.1 elastix logo