go home Home | Main Page | Topics | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Loading...
Searching...
No Matches
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);
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 void
63
64 void
65 AddParameterMap(const ParameterMapType & parameterMap);
66 const ParameterMapType &
67 GetParameterMap(const unsigned int index) const;
68
71 {
72 return m_ParameterMaps;
73 }
74
75 unsigned int
77 {
78 return static_cast<unsigned int>(m_ParameterMaps.size());
79 }
80
81 void
82 SetParameter(const unsigned int index, const ParameterKeyType & key, const ParameterValueType & value);
83 void
84 SetParameter(const unsigned int index, const ParameterKeyType & key, const ParameterValueVectorType & value);
85 void
87 void
90 GetParameter(const unsigned int index, const ParameterKeyType & key) const;
91 bool
92 HasParameter(const unsigned int index, const ParameterKeyType & key) const;
93 bool
94 HasParameter(const ParameterKeyType & key) const;
95 void
96 RemoveParameter(const unsigned int index, const ParameterKeyType & key);
97 void
99
100 /* Read/Write parameter file or multiple parameter files to/from disk. */
101 void
102 ReadParameterFile(const ParameterFileNameType & parameterFileName);
103
104 void
105 ReadParameterFiles(const ParameterFileNameVectorType & parameterFileNameVector);
106
107 void
108 AddParameterFile(const ParameterFileNameType & parameterFileName);
109
110 static void
111 WriteParameterFile(const ParameterMapType & parameterMap, const ParameterFileNameType & parameterFileName);
112 void
113 WriteParameterFile(const ParameterFileNameType & parameterFileName) const;
114
115 void
117
118 void
119 WriteParameterFiles(const ParameterFileNameVectorType & parameterFileNameVector) const;
120
121 static void
122 WriteParameterFiles(const ParameterMapVectorType & parameterMapVector,
123 const ParameterFileNameVectorType & parameterFileNameVector);
124
125 /* Get preconfigured parameter maps. */
126 static ParameterMapType
127 GetDefaultParameterMap(const std::string & transformName,
128 const unsigned int numberOfResolutions = 4u,
129 const double finalGridSpacingInPhysicalUnits = 10.0);
130
131protected:
132 void
133 PrintSelf(std::ostream & os, itk::Indent indent) const override;
134
135private:
137 GetMutableParameterMap(const unsigned int index);
138
140};
141
142} // namespace elastix
143
144#endif // elxParameterObject_h
unsigned int GetNumberOfParameterMaps() const
void RemoveParameter(const ParameterKeyType &key)
ParameterFileNameVectorType::const_iterator ParameterFileNameVectorConstIterator
void ReadParameterFiles(const ParameterFileNameVectorType &parameterFileNameVector)
ParameterMapVectorType m_ParameterMaps
itk::SmartPointer< Self > Pointer
void AddParameterFile(const ParameterFileNameType &parameterFileName)
std::vector< ParameterFileNameType > ParameterFileNameVectorType
itkOverrideGetNameOfClassMacro(ParameterObject)
const ParameterMapType & GetParameterMap(const unsigned int index) const
void SetParameterMap(const unsigned int index, const ParameterMapType &parameterMap)
bool HasParameter(const ParameterKeyType &key) const
ParameterFileNameVectorType::iterator ParameterFileNameVectorIterator
void RemoveParameter(const unsigned int index, const ParameterKeyType &key)
ParameterMapType & GetMutableParameterMap(const unsigned int index)
void AddParameterMap(const ParameterMapType &parameterMap)
static void WriteParameterFile(const ParameterMapType &parameterMap, const ParameterFileNameType &parameterFileName)
void WriteParameterFiles(const ParameterFileNameVectorType &parameterFileNameVector) const
std::map< ParameterKeyType, ParameterValueVectorType > ParameterMapType
const ParameterMapVectorType & GetParameterMaps() const
itk::SmartPointer< const Self > ConstPointer
void SetParameter(const ParameterKeyType &key, const ParameterValueVectorType &value)
ParameterValueVectorType::iterator ParameterValueVectorIterator
void SetParameterMaps(const ParameterMapVectorType &parameterMaps)
std::vector< ParameterValueType > ParameterValueVectorType
static ParameterMapType GetDefaultParameterMap(const std::string &transformName, const unsigned int numberOfResolutions=4u, const double finalGridSpacingInPhysicalUnits=10.0)
const ParameterValueVectorType & GetParameter(const unsigned int index, const ParameterKeyType &key) const
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)
bool HasParameter(const unsigned int index, const ParameterKeyType &key) const
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 1774142652 for elastix by doxygen 1.15.0 elastix logo