go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxComponentDatabase.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 __elxComponentDatabase_h
20#define __elxComponentDatabase_h
21
22#include "itkObject.h"
23#include "itkObjectFactory.h"
24#include <iostream>
25#include <string>
26#include <utility>
27#include <map>
28
29namespace elastix
30{
31
53 public itk::Object
54{
55public:
56
59 typedef itk::Object Superclass;
60 typedef itk::SmartPointer< Self > Pointer;
61 typedef itk::SmartPointer< const Self > ConstPointer;
62
63 itkNewMacro( Self );
64 itkTypeMacro( ComponentDatabase, Object );
65
67 typedef unsigned int IndexType;
68
70 typedef itk::Object ObjectType;
71 typedef ObjectType::Pointer ObjectPointer;
72
76 typedef ObjectPointer (* PtrToCreator)( void );
77 typedef std::string ComponentDescriptionType;
78 typedef std::pair<
82 typedef std::map<
85 typedef CreatorMapType::value_type CreatorMapEntryType;
86
92 typedef std::string PixelTypeDescriptionType;
93 typedef unsigned int ImageDimensionType;
94 typedef std::pair<
97
101 typedef std::pair<
105 typedef std::map<
108 typedef IndexMapType::value_type IndexMapEntryType;
109
112 const ComponentDescriptionType & name,
113 IndexType i,
114 PtrToCreator creator );
115
117 const PixelTypeDescriptionType & fixedPixelType,
118 ImageDimensionType fixedDimension,
119 const PixelTypeDescriptionType & movingPixelType,
120 ImageDimensionType movingDimension,
121 IndexType i );
122
125 const ComponentDescriptionType & name,
126 IndexType i ) const;
127
129 const PixelTypeDescriptionType & fixedPixelType,
130 ImageDimensionType fixedDimension,
131 const PixelTypeDescriptionType & movingPixelType,
132 ImageDimensionType movingDimension ) const;
133
134protected:
135
138
139private:
140
143
144 ComponentDatabase( const Self & ); // purposely not implemented
145 void operator=( const Self & ); // purposely not implemented
146
147};
148
149} // end namespace elastix
150
151#endif // end #ifndef __elxComponentDatabase_h
The ComponentDatabase class is a class that stores the New() functions of all components.
std::map< CreatorMapKeyType, CreatorMapValueType > CreatorMapType
int SetIndex(const PixelTypeDescriptionType &fixedPixelType, ImageDimensionType fixedDimension, const PixelTypeDescriptionType &movingPixelType, ImageDimensionType movingDimension, IndexType i)
ComponentDatabase(const Self &)
CreatorMapType::value_type CreatorMapEntryType
std::pair< ImageTypeDescriptionType, ImageTypeDescriptionType > IndexMapKeyType
std::pair< PixelTypeDescriptionType, ImageDimensionType > ImageTypeDescriptionType
ObjectPointer(* PtrToCreator)(void)
std::pair< ComponentDescriptionType, IndexType > CreatorMapKeyType
PtrToCreator GetCreator(const ComponentDescriptionType &name, IndexType i) const
itk::SmartPointer< const Self > ConstPointer
void operator=(const Self &)
IndexType GetIndex(const PixelTypeDescriptionType &fixedPixelType, ImageDimensionType fixedDimension, const PixelTypeDescriptionType &movingPixelType, ImageDimensionType movingDimension) const
ObjectType::Pointer ObjectPointer
std::map< IndexMapKeyType, IndexMapValueType > IndexMapType
itk::SmartPointer< Self > Pointer
IndexMapType::value_type IndexMapEntryType
int SetCreator(const ComponentDescriptionType &name, IndexType i, PtrToCreator creator)


Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo