Home
|
Main Page
|
Modules
|
Namespace List
|
Class Hierarchy
|
Alphabetical List
|
Data Structures
|
File List
|
Namespace Members
|
Data Fields
|
Globals
|
Related Pages
src
Core
ComponentBaseClasses
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
56
typedef
OptimizerBase
Self
;
57
typedef
BaseComponentSE<TElastix>
Superclass
;
58
60
itkTypeMacro(
OptimizerBase
,
BaseComponentSE
);
61
63
typedef
typename
Superclass::ElastixType
ElastixType
;
64
typedef
typename
Superclass::ElastixPointer
ElastixPointer
;
65
typedef
typename
Superclass::ConfigurationType
ConfigurationType
;
66
typedef
typename
Superclass::ConfigurationPointer
ConfigurationPointer
;
67
typedef
typename
Superclass::RegistrationType
RegistrationType
;
68
typedef
typename
Superclass::RegistrationPointer
RegistrationPointer
;
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 ¶m );
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
127
bool
m_NewSamplesEveryIteration
;
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 21-03-2014 for elastix by
1.8.1.2