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  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 __elxComponentDatabase_h
16 #define __elxComponentDatabase_h
17 
18 #include "itkObject.h"
19 #include "itkObjectFactory.h"
20 #include <iostream>
21 #include <string>
22 #include <utility>
23 #include <map>
24 
25 namespace elastix
26 {
27 
49  public itk::Object
50 {
51 public:
52 
55  typedef itk::Object Superclass;
56  typedef itk::SmartPointer< Self > Pointer;
57  typedef itk::SmartPointer< const Self > ConstPointer;
58 
59  itkNewMacro( Self );
60  itkTypeMacro( ComponentDatabase, Object );
61 
63  typedef unsigned int IndexType;
64 
66  typedef itk::Object ObjectType;
67  typedef ObjectType::Pointer ObjectPointer;
68 
72  typedef ObjectPointer (* PtrToCreator)( void );
73  typedef std::string ComponentDescriptionType;
74  typedef std::pair<
78  typedef std::map<
81  typedef CreatorMapType::value_type CreatorMapEntryType;
82 
88  typedef std::string PixelTypeDescriptionType;
89  typedef unsigned int ImageDimensionType;
90  typedef std::pair<
93 
97  typedef std::pair<
101  typedef std::map<
104  typedef IndexMapType::value_type IndexMapEntryType;
105 
107  CreatorMapType & GetCreatorMap( void );
108 
109  IndexMapType & GetIndexMap( void );
110 
112  int SetCreator(
113  const ComponentDescriptionType & name,
114  IndexType i,
115  PtrToCreator creator );
116 
117  int SetIndex(
118  const PixelTypeDescriptionType & fixedPixelType,
119  ImageDimensionType fixedDimension,
120  const PixelTypeDescriptionType & movingPixelType,
121  ImageDimensionType movingDimension,
122  IndexType i );
123 
126  const ComponentDescriptionType & name,
127  IndexType i );
128 
130  const PixelTypeDescriptionType & fixedPixelType,
131  ImageDimensionType fixedDimension,
132  const PixelTypeDescriptionType & movingPixelType,
133  ImageDimensionType movingDimension );
134 
135 protected:
136 
138  virtual ~ComponentDatabase(){}
139 
142 
143 private:
144 
145  ComponentDatabase( const Self & ); // purposely not implemented
146  void operator=( const Self & ); // purposely not implemented
147 
148 };
149 
150 } // end namespace elastix
151 
152 #endif // end #ifndef __elxComponentDatabase_h
itk::SmartPointer< const Self > ConstPointer
std::map< CreatorMapKeyType, CreatorMapValueType > CreatorMapType
PtrToCreator GetCreator(const ComponentDescriptionType &name, IndexType i)
itk::SmartPointer< Self > Pointer
CreatorMapType::value_type CreatorMapEntryType
std::pair< PixelTypeDescriptionType, ImageDimensionType > ImageTypeDescriptionType
std::map< IndexMapKeyType, IndexMapValueType > IndexMapType
CreatorMapType & GetCreatorMap(void)
void operator=(const Self &)
int SetIndex(const PixelTypeDescriptionType &fixedPixelType, ImageDimensionType fixedDimension, const PixelTypeDescriptionType &movingPixelType, ImageDimensionType movingDimension, IndexType i)
IndexMapType::value_type IndexMapEntryType
The ComponentDatabase class is a class that stores the New() functions of all components.
IndexType GetIndex(const PixelTypeDescriptionType &fixedPixelType, ImageDimensionType fixedDimension, const PixelTypeDescriptionType &movingPixelType, ImageDimensionType movingDimension)
ObjectPointer(* PtrToCreator)(void)
int SetCreator(const ComponentDescriptionType &name, IndexType i, PtrToCreator creator)
ObjectType::Pointer ObjectPointer
IndexMapType & GetIndexMap(void)
std::pair< ImageTypeDescriptionType, ImageTypeDescriptionType > IndexMapKeyType
std::pair< ComponentDescriptionType, IndexType > CreatorMapKeyType


Generated on 11-03-2014 for elastix by doxygen 1.8.6 elastix logo