go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxSimplex.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 __elxSimplex_h
16 #define __elxSimplex_h
17 
18 #include "itkAmoebaOptimizer.h"
19 #include "elxIncludes.h"
20 
21 namespace elastix
22 {
23 using namespace itk;
24 
38  template <class TElastix>
39  class Simplex :
40  public
41  itk::AmoebaOptimizer,
42  public
43  OptimizerBase<TElastix>
44  {
45  public:
46 
48  typedef Simplex Self;
49  typedef AmoebaOptimizer Superclass1;
51  typedef SmartPointer<Self> Pointer;
52  typedef SmartPointer<const Self> ConstPointer;
53 
55  itkNewMacro( Self );
56 
58  itkTypeMacro( Simplex, AmoebaOptimizer );
59 
64  elxClassNameMacro( "Simplex" );
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  Simplex(){};
99  virtual ~Simplex() {};
100 
101  private:
102 
103  Simplex( const Self& ); // purposely not implemented
104  void operator=( const Self& ); // purposely not implemented
105 
106  }; // end class Simplex
107 
108 
109 } // end namespace elastix
110 
111 #ifndef ITK_MANUAL_INSTANTIATION
112 #include "elxSimplex.hxx"
113 #endif
114 
115 #endif // end #ifndef __elxSimplex_h
Superclass::RegistrationPointer RegistrationPointer
#define elxClassNameMacro(_name)
Definition: elxMacro.h:254
This class is the elastix base class for all Optimizers.
Superclass2::ElastixPointer ElastixPointer
Definition: elxSimplex.h:72
Superclass::ElastixType ElastixType
Superclass::ConfigurationPointer ConfigurationPointer
Superclass1::CostFunctionPointer CostFunctionPointer
Definition: elxSimplex.h:68
Superclass::ElastixPointer ElastixPointer
Superclass::ConfigurationType ConfigurationType
OptimizerBase< TElastix > Superclass2
Definition: elxSimplex.h:50
Superclass2::ITKBaseType ITKBaseType
Definition: elxSimplex.h:77
AmoebaOptimizer Superclass1
Definition: elxSimplex.h:49
Superclass2::ConfigurationPointer ConfigurationPointer
Definition: elxSimplex.h:74
SmartPointer< Self > Pointer
Definition: elxSimplex.h:51
An optimizer based on Simplex...
Definition: elxSimplex.h:39
itk::Optimizer ITKBaseType
virtual ~Simplex()
Definition: elxSimplex.h:99
Superclass2::ConfigurationType ConfigurationType
Definition: elxSimplex.h:73
SmartPointer< const Self > ConstPointer
Definition: elxSimplex.h:52
Superclass2::RegistrationPointer RegistrationPointer
Definition: elxSimplex.h:76
Superclass1::ParametersType ParametersType
Definition: elxSimplex.h:80
Superclass2::ElastixType ElastixType
Definition: elxSimplex.h:71
Superclass::RegistrationType RegistrationType
Superclass1::CostFunctionType CostFunctionType
Definition: elxSimplex.h:67
Superclass2::RegistrationType RegistrationType
Definition: elxSimplex.h:75


Generated on 06-12-2013 for elastix by doxygen 1.8.5 elastix logo