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 
29 namespace elastix
30 {
31 
53  public itk::Object
54 {
55 public:
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 
114 
117  const ComponentDescriptionType & name,
118  IndexType i,
119  PtrToCreator creator );
120 
121  int SetIndex(
122  const PixelTypeDescriptionType & fixedPixelType,
123  ImageDimensionType fixedDimension,
124  const PixelTypeDescriptionType & movingPixelType,
125  ImageDimensionType movingDimension,
126  IndexType i );
127 
130  const ComponentDescriptionType & name,
131  IndexType i );
132 
134  const PixelTypeDescriptionType & fixedPixelType,
135  ImageDimensionType fixedDimension,
136  const PixelTypeDescriptionType & movingPixelType,
137  ImageDimensionType movingDimension );
138 
139 protected:
140 
142  virtual ~ComponentDatabase(){}
143 
146 
147 private:
148 
149  ComponentDatabase( const Self & ); // purposely not implemented
150  void operator=( const Self & ); // purposely not implemented
151 
152 };
153 
154 } // end namespace elastix
155 
156 #endif // end #ifndef __elxComponentDatabase_h
elastix::ComponentDatabase::ComponentDatabase
ComponentDatabase(const Self &)
elastix::ComponentDatabase::CreatorMapValueType
PtrToCreator CreatorMapValueType
Definition: elxComponentDatabase.h:81
elastix::ComponentDatabase::IndexMapType
std::map< IndexMapKeyType, IndexMapValueType > IndexMapType
Definition: elxComponentDatabase.h:107
elastix::ComponentDatabase::Superclass
itk::Object Superclass
Definition: elxComponentDatabase.h:59
elastix::ComponentDatabase::CreatorMapKeyType
std::pair< ComponentDescriptionType, IndexType > CreatorMapKeyType
Definition: elxComponentDatabase.h:80
elastix::ComponentDatabase::PixelTypeDescriptionType
std::string PixelTypeDescriptionType
Definition: elxComponentDatabase.h:92
elastix::ComponentDatabase::GetIndex
IndexType GetIndex(const PixelTypeDescriptionType &fixedPixelType, ImageDimensionType fixedDimension, const PixelTypeDescriptionType &movingPixelType, ImageDimensionType movingDimension)
elastix::ComponentDatabase::GetCreatorMap
CreatorMapType & GetCreatorMap(void)
elastix::ComponentDatabase::IndexMapKeyType
std::pair< ImageTypeDescriptionType, ImageTypeDescriptionType > IndexMapKeyType
Definition: elxComponentDatabase.h:103
elastix::ComponentDatabase::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: elxComponentDatabase.h:61
elastix::ComponentDatabase::PtrToCreator
ObjectPointer(* PtrToCreator)(void)
Definition: elxComponentDatabase.h:76
elastix::ComponentDatabase::ComponentDescriptionType
std::string ComponentDescriptionType
Definition: elxComponentDatabase.h:77
elastix::ComponentDatabase::SetIndex
int SetIndex(const PixelTypeDescriptionType &fixedPixelType, ImageDimensionType fixedDimension, const PixelTypeDescriptionType &movingPixelType, ImageDimensionType movingDimension, IndexType i)
elastix::ComponentDatabase::IndexMapEntryType
IndexMapType::value_type IndexMapEntryType
Definition: elxComponentDatabase.h:108
elastix::ComponentDatabase::IndexMapValueType
IndexType IndexMapValueType
Definition: elxComponentDatabase.h:104
elastix::ComponentDatabase::CreatorMapType
std::map< CreatorMapKeyType, CreatorMapValueType > CreatorMapType
Definition: elxComponentDatabase.h:84
elastix::ComponentDatabase::ComponentDatabase
ComponentDatabase()
Definition: elxComponentDatabase.h:141
elastix::ComponentDatabase::SetCreator
int SetCreator(const ComponentDescriptionType &name, IndexType i, PtrToCreator creator)
elastix::ComponentDatabase::Pointer
itk::SmartPointer< Self > Pointer
Definition: elxComponentDatabase.h:60
elastix::ComponentDatabase::ObjectType
itk::Object ObjectType
Definition: elxComponentDatabase.h:70
elastix::ComponentDatabase
The ComponentDatabase class is a class that stores the New() functions of all components.
Definition: elxComponentDatabase.h:54
elastix::ComponentDatabase::ObjectPointer
ObjectType::Pointer ObjectPointer
Definition: elxComponentDatabase.h:71
elastix::ComponentDatabase::GetIndexMap
IndexMapType & GetIndexMap(void)
elastix::ComponentDatabase::ImageTypeDescriptionType
std::pair< PixelTypeDescriptionType, ImageDimensionType > ImageTypeDescriptionType
Definition: elxComponentDatabase.h:96
elastix::ComponentDatabase::IndexType
unsigned int IndexType
Definition: elxComponentDatabase.h:64
unsigned int
elastix::ComponentDatabase::ImageDimensionType
unsigned int ImageDimensionType
Definition: elxComponentDatabase.h:93
elastix::ComponentDatabase::GetCreator
PtrToCreator GetCreator(const ComponentDescriptionType &name, IndexType i)
elastix::ComponentDatabase::CreatorMapEntryType
CreatorMapType::value_type CreatorMapEntryType
Definition: elxComponentDatabase.h:85
elastix::ComponentDatabase::Self
ComponentDatabase Self
Definition: elxComponentDatabase.h:58
elastix::ComponentDatabase::IndexMap
IndexMapType IndexMap
Definition: elxComponentDatabase.h:145
elastix::ComponentDatabase::operator=
void operator=(const Self &)
elastix
Definition: elxFixedGenericPyramid.h:25
elastix::ComponentDatabase::CreatorMap
CreatorMapType CreatorMap
Definition: elxComponentDatabase.h:144
elastix::ComponentDatabase::~ComponentDatabase
virtual ~ComponentDatabase()
Definition: elxComponentDatabase.h:142


Generated on OURCE_DATE_EPOCH for elastix by doxygen 1.8.18 elastix logo