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 * Copyright UMC Utrecht and contributors
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18
19#ifndef __elxOptimizerBase_h
20#define __elxOptimizerBase_h
21
23#include "elxMacro.h"
24
25#include "elxBaseComponentSE.h"
26#include "itkOptimizer.h"
27
28namespace elastix
29{
30
52template< class TElastix >
53class OptimizerBase : public BaseComponentSE< TElastix >
54{
55public:
56
60
63
71
73 typedef itk::Optimizer ITKBaseType;
74
76 typedef typename ITKBaseType::ParametersType ParametersType;
77
79 virtual ITKBaseType * GetAsITKBaseType( void )
80 {
81 return dynamic_cast< ITKBaseType * >( this );
82 }
83
84
86 virtual const ITKBaseType * GetAsITKBaseType( void ) const
87 {
88 return dynamic_cast< const ITKBaseType * >( this );
89 }
90
91
93 virtual void SetCurrentPositionPublic( const ParametersType & param );
94
98 void BeforeEachResolutionBase() override;
99
103 void AfterRegistrationBase( void ) override;
104
108 virtual void SetSinusScales( double amplitude, double frequency,
109 unsigned long numberOfParameters );
110
111protected:
112
116 ~OptimizerBase() override {}
117
121 virtual void SelectNewSamples( void );
122
124 virtual bool GetNewSamplesEveryIteration( void ) const;
125
126private:
127
129 OptimizerBase( const Self & ); // purposely not implemented
131 void operator=( const Self & ); // purposely not implemented
132
137
138};
139
140} // end namespace elastix
141
142#ifndef ITK_MANUAL_INSTANTIATION
143#include "elxOptimizerBase.hxx"
144#endif
145
146#endif // end #ifndef __elxOptimizerBase_h
The BaseComponentSE class is a base class for elastix components that provides some basic functionali...
Configuration::Pointer ConfigurationPointer
itk::WeakPointer< ElastixType > ElastixPointer
RegistrationType * RegistrationPointer
ElastixType::RegistrationBaseType RegistrationType
A class that deals with user given parameters and command line arguments.
This class is the elastix base class for all Optimizers.
virtual void SetSinusScales(double amplitude, double frequency, unsigned long numberOfParameters)
ITKBaseType::ParametersType ParametersType
virtual void SelectNewSamples(void)
Superclass::ConfigurationPointer ConfigurationPointer
itk::Optimizer ITKBaseType
Superclass::ElastixType ElastixType
Superclass::ConfigurationType ConfigurationType
void AfterRegistrationBase(void) override
Superclass::ElastixPointer ElastixPointer
BaseComponentSE< TElastix > Superclass
virtual void SetCurrentPositionPublic(const ParametersType &param)
OptimizerBase(const Self &)
void operator=(const Self &)
virtual bool GetNewSamplesEveryIteration(void) const
Superclass::RegistrationPointer RegistrationPointer
virtual const ITKBaseType * GetAsITKBaseType(void) const
Superclass::RegistrationType RegistrationType
virtual ITKBaseType * GetAsITKBaseType(void)
void BeforeEachResolutionBase() override


Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo