go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxPowell.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 __elxPowell_h
16 #define __elxPowell_h
17 
18 #include "itkPowellOptimizer.h"
19 #include "elxIncludes.h"
20 
21 namespace elastix
22 {
23 using namespace itk;
24 
38  template <class TElastix>
39  class Powell :
40  public
41  itk::PowellOptimizer,
42  public
43  OptimizerBase<TElastix>
44  {
45  public:
46 
48  typedef Powell Self;
51  typedef SmartPointer<Self> Pointer;
52  typedef SmartPointer<const Self> ConstPointer;
53 
55  itkNewMacro( Self );
56 
58  itkTypeMacro( Powell, PowellOptimizer );
59 
64  elxClassNameMacro( "Powell" );
65 
67  typedef Superclass1::CostFunctionType CostFunctionType;
68  typedef Superclass1::CostFunctionPointer CostFunctionPointer;
69 
78 
80  typedef typename Superclass1::ParametersType ParametersType;
81 
84  virtual void BeforeRegistration(void);
85  virtual void BeforeEachResolution(void);
86  virtual void AfterEachResolution(void);
87  virtual void AfterEachIteration(void);
88  virtual void AfterRegistration(void);
89 
94  virtual void SetInitialPosition( const ParametersType & param );
95 
96  protected:
97 
98  Powell(){};
99  virtual ~Powell() {};
100 
101  private:
102 
103  Powell( const Self& ); // purposely not implemented
104  void operator=( const Self& ); // purposely not implemented
105 
106  }; // end class Powell
107 
108 
109 } // end namespace elastix
110 
111 #ifndef ITK_MANUAL_INSTANTIATION
112 #include "elxPowell.hxx"
113 #endif
114 
115 #endif // end #ifndef __elxPowell_h


Generated on 21-03-2014 for elastix by doxygen 1.8.1.2 elastix logo