go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxParameterObject.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#ifndef elxParameterObject_h
19#define elxParameterObject_h
20
21#include "itkObjectFactory.h"
22#include "itkDataObject.h"
23#include "elxMacro.h"
24
25namespace elastix
26{
27
28// TODO: Why does the compiler not see ELASTIXLIB_API declspec in elxMacro.h?
29// error: variable has incomplete type 'class ELASTIXLIB_API'
30// with class ELASTIXLIB_API ParameterObject : public itk::DataObject
31
32class ParameterObject : public itk::DataObject
33{
34public:
36 using Pointer = itk::SmartPointer<Self>;
37 using ConstPointer = itk::SmartPointer<const Self>;
38 itkNewMacro(Self);
39 itkTypeMacro(ParameterObject, itk::DataObject);
40
41 using ParameterKeyType = std::string;
42 using ParameterValueType = std::string;
43 using ParameterValueVectorType = std::vector<ParameterValueType>;
44 using ParameterValueVectorIterator = ParameterValueVectorType::iterator;
45 using ParameterMapType = std::map<ParameterKeyType, ParameterValueVectorType>;
46 using ParameterMapIterator = ParameterMapType::iterator;
47 using ParameterMapConstIterator = ParameterMapType::const_iterator;
48 using ParameterMapVectorType = std::vector<ParameterMapType>;
49 using ParameterFileNameType = std::string;
50 using ParameterFileNameVectorType = std::vector<ParameterFileNameType>;
51 using ParameterFileNameVectorIterator = ParameterFileNameVectorType::iterator;
52 using ParameterFileNameVectorConstIterator = ParameterFileNameVectorType::const_iterator;
53
54 /* Set/Get/Add parameter map or vector of parameter maps. */
55 // TODO: Use itkSetMacro for ParameterMapVectorType
56 void
57 SetParameterMap(const ParameterMapType & parameterMap);
58 void
59 SetParameterMap(const unsigned int index, const ParameterMapType & parameterMap);
60
61 [[deprecated("Instead of calling this overload, please call SetParameterMaps")]] void
63
64 void
66
67 void
68 AddParameterMap(const ParameterMapType & parameterMap);
69 const ParameterMapType &
70 GetParameterMap(const unsigned int index) const;
71
72 [[deprecated("Instead of calling this member function, please call GetParameterMaps")]] const ParameterMapVectorType &
74 {
75 return m_ParameterMaps;
76 }
77
80 {
81 return m_ParameterMaps;
82 }
83
84 unsigned int
86 {
87 return static_cast<unsigned int>(m_ParameterMaps.size());
88 }
89
90 void
91 SetParameter(const unsigned int index, const ParameterKeyType & key, const ParameterValueType & value);
92 void
93 SetParameter(const unsigned int index, const ParameterKeyType & key, const ParameterValueVectorType & value);
94 void
96 void
99 GetParameter(const unsigned int index, const ParameterKeyType & key);
100 void
101 RemoveParameter(const unsigned int index, const ParameterKeyType & key);
102 void
104
105 /* Read/Write parameter file or multiple parameter files to/from disk. */
106 void
107 ReadParameterFile(const ParameterFileNameType & parameterFileName);
108
109 [[deprecated("Instead of calling this overload, please call ReadParameterFiles")]] void
110 ReadParameterFile(const ParameterFileNameVectorType & parameterFileNameVector);
111
112 void
113 ReadParameterFiles(const ParameterFileNameVectorType & parameterFileNameVector);
114
115 void
116 AddParameterFile(const ParameterFileNameType & parameterFileName);
117
118 [[deprecated("Instead of calling this overload, please call WriteParameterFiles")]] void
120
121 static void
122 WriteParameterFile(const ParameterMapType & parameterMap, const ParameterFileNameType & parameterFileName);
123 void
124 WriteParameterFile(const ParameterFileNameType & parameterFileName) const;
125
126 [[deprecated("Instead of calling this overload, please call WriteParameterFiles")]] void
127 WriteParameterFile(const ParameterFileNameVectorType & parameterFileNameVector) const;
128
129 [[deprecated("Instead of calling this overload, please call WriteParameterFiles")]] static void
130 WriteParameterFile(const ParameterMapVectorType & parameterMapVector,
131 const ParameterFileNameVectorType & parameterFileNameVector);
132
133 void
135
136 void
137 WriteParameterFiles(const ParameterFileNameVectorType & parameterFileNameVector) const;
138
139 static void
140 WriteParameterFiles(const ParameterMapVectorType & parameterMapVector,
141 const ParameterFileNameVectorType & parameterFileNameVector);
142
143 /* Get preconfigured parameter maps. */
144 static const ParameterMapType
145 GetDefaultParameterMap(const std::string & transformName,
146 const unsigned int numberOfResolutions = 4u,
147 const double finalGridSpacingInPhysicalUnits = 10.0);
148
149protected:
150 void
151 PrintSelf(std::ostream & os, itk::Indent indent) const override;
152
153private:
155};
156
157} // namespace elastix
158
159#endif // elxParameterObject_h
unsigned int GetNumberOfParameterMaps() const
void RemoveParameter(const ParameterKeyType &key)
ParameterFileNameVectorType::const_iterator ParameterFileNameVectorConstIterator
void WriteParameterFile() const
void ReadParameterFiles(const ParameterFileNameVectorType &parameterFileNameVector)
void ReadParameterFile(const ParameterFileNameVectorType &parameterFileNameVector)
ParameterMapVectorType m_ParameterMaps
itk::SmartPointer< Self > Pointer
static void WriteParameterFile(const ParameterMapVectorType &parameterMapVector, const ParameterFileNameVectorType &parameterFileNameVector)
void AddParameterFile(const ParameterFileNameType &parameterFileName)
std::vector< ParameterFileNameType > ParameterFileNameVectorType
const ParameterMapType & GetParameterMap(const unsigned int index) const
void SetParameterMap(const unsigned int index, const ParameterMapType &parameterMap)
static const ParameterMapType GetDefaultParameterMap(const std::string &transformName, const unsigned int numberOfResolutions=4u, const double finalGridSpacingInPhysicalUnits=10.0)
ParameterFileNameVectorType::iterator ParameterFileNameVectorIterator
void RemoveParameter(const unsigned int index, const ParameterKeyType &key)
void AddParameterMap(const ParameterMapType &parameterMap)
static void WriteParameterFile(const ParameterMapType &parameterMap, const ParameterFileNameType &parameterFileName)
void WriteParameterFiles(const ParameterFileNameVectorType &parameterFileNameVector) const
const ParameterMapVectorType & GetParameterMap() const
void SetParameterMap(const ParameterMapVectorType &parameterMaps)
std::map< ParameterKeyType, ParameterValueVectorType > ParameterMapType
const ParameterMapVectorType & GetParameterMaps() const
const ParameterValueVectorType & GetParameter(const unsigned int index, const ParameterKeyType &key)
itk::SmartPointer< const Self > ConstPointer
void SetParameter(const ParameterKeyType &key, const ParameterValueVectorType &value)
void WriteParameterFile(const ParameterFileNameVectorType &parameterFileNameVector) const
ParameterValueVectorType::iterator ParameterValueVectorIterator
void SetParameterMaps(const ParameterMapVectorType &parameterMaps)
std::vector< ParameterValueType > ParameterValueVectorType
void SetParameterMap(const ParameterMapType &parameterMap)
std::vector< ParameterMapType > ParameterMapVectorType
void ReadParameterFile(const ParameterFileNameType &parameterFileName)
void PrintSelf(std::ostream &os, itk::Indent indent) const override
void WriteParameterFiles() const
void SetParameter(const unsigned int index, const ParameterKeyType &key, const ParameterValueVectorType &value)
void SetParameter(const ParameterKeyType &key, const ParameterValueType &value)
ParameterMapType::iterator ParameterMapIterator
static void WriteParameterFiles(const ParameterMapVectorType &parameterMapVector, const ParameterFileNameVectorType &parameterFileNameVector)
void SetParameter(const unsigned int index, const ParameterKeyType &key, const ParameterValueType &value)
void WriteParameterFile(const ParameterFileNameType &parameterFileName) const
ParameterMapType::const_iterator ParameterMapConstIterator


Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo