go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
elastix::ComponentDatabase Class Reference

#include <elxComponentDatabase.h>

Detailed Description

The ComponentDatabase class is a class that stores the New() functions of all components.

In elastix the metric/transform/dimension/pixeltype etc. are all selected at runtime. To make this possible, all components (metric/transform etc) have to compiled for different dimension/pixeltype. The elx::ComponentDatabase stores for each instance and each pixeltype/dimension a pointers to a function that creates a component of the specific type.

Each new component (a new metric for example should "make itself known" by calling the elxInstallMacro, which is defined in elxMacro.h .

See also
elxInstallFunctions

Definition at line 52 of file elxComponentDatabase.h.

+ Inheritance diagram for elastix::ComponentDatabase:

Public Types

typedef std::string ComponentDescriptionType
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef CreatorMapType::value_type CreatorMapEntryType
 
typedef std::pair< ComponentDescriptionType, IndexTypeCreatorMapKeyType
 
typedef std::map< CreatorMapKeyType, CreatorMapValueTypeCreatorMapType
 
typedef PtrToCreator CreatorMapValueType
 
typedef unsigned int ImageDimensionType
 
typedef std::pair< PixelTypeDescriptionType, ImageDimensionTypeImageTypeDescriptionType
 
typedef IndexMapType::value_type IndexMapEntryType
 
typedef std::pair< ImageTypeDescriptionType, ImageTypeDescriptionTypeIndexMapKeyType
 
typedef std::map< IndexMapKeyType, IndexMapValueTypeIndexMapType
 
typedef IndexType IndexMapValueType
 
typedef unsigned int IndexType
 
typedef ObjectType::Pointer ObjectPointer
 
typedef itk::Object ObjectType
 
typedef std::string PixelTypeDescriptionType
 
typedef itk::SmartPointer< SelfPointer
 
typedef ObjectPointer(* PtrToCreator) (void)
 
typedef ComponentDatabase Self
 
typedef itk::Object Superclass
 

Public Member Functions

virtual const char * GetClassName () const
 
PtrToCreator GetCreator (const ComponentDescriptionType &name, IndexType i) const
 
IndexType GetIndex (const PixelTypeDescriptionType &fixedPixelType, ImageDimensionType fixedDimension, const PixelTypeDescriptionType &movingPixelType, ImageDimensionType movingDimension) const
 
int SetCreator (const ComponentDescriptionType &name, IndexType i, PtrToCreator creator)
 
int SetIndex (const PixelTypeDescriptionType &fixedPixelType, ImageDimensionType fixedDimension, const PixelTypeDescriptionType &movingPixelType, ImageDimensionType movingDimension, IndexType i)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 ComponentDatabase ()
 
 ~ComponentDatabase () override
 

Private Member Functions

 ComponentDatabase (const Self &)
 
void operator= (const Self &)
 

Private Attributes

CreatorMapType CreatorMap
 
IndexMapType IndexMap
 

Member Typedef Documentation

◆ ComponentDescriptionType

Definition at line 77 of file elxComponentDatabase.h.

◆ ConstPointer

typedef itk::SmartPointer< const Self > elastix::ComponentDatabase::ConstPointer

Definition at line 61 of file elxComponentDatabase.h.

◆ CreatorMapEntryType

typedef CreatorMapType::value_type elastix::ComponentDatabase::CreatorMapEntryType

Definition at line 85 of file elxComponentDatabase.h.

◆ CreatorMapKeyType

Definition at line 80 of file elxComponentDatabase.h.

◆ CreatorMapType

Definition at line 84 of file elxComponentDatabase.h.

◆ CreatorMapValueType

Definition at line 81 of file elxComponentDatabase.h.

◆ ImageDimensionType

Definition at line 93 of file elxComponentDatabase.h.

◆ ImageTypeDescriptionType

Definition at line 96 of file elxComponentDatabase.h.

◆ IndexMapEntryType

typedef IndexMapType::value_type elastix::ComponentDatabase::IndexMapEntryType

Definition at line 108 of file elxComponentDatabase.h.

◆ IndexMapKeyType

This pair contains the ImageTypeDescription of the FixedImageType and the MovingImageType.

Definition at line 103 of file elxComponentDatabase.h.

◆ IndexMapType

Definition at line 107 of file elxComponentDatabase.h.

◆ IndexMapValueType

Definition at line 104 of file elxComponentDatabase.h.

◆ IndexType

The Index is the number of the ElastixTypedef<number>::ElastixType.

Definition at line 67 of file elxComponentDatabase.h.

◆ ObjectPointer

typedef ObjectType::Pointer elastix::ComponentDatabase::ObjectPointer

Definition at line 71 of file elxComponentDatabase.h.

◆ ObjectType

Typedefs for the CreatorMap

Definition at line 70 of file elxComponentDatabase.h.

◆ PixelTypeDescriptionType

Typedefs for the IndexMap. The ImageTypeDescription contains the pixeltype (as a string) and the dimension (unsigned int).

Definition at line 92 of file elxComponentDatabase.h.

◆ Pointer

typedef itk::SmartPointer< Self > elastix::ComponentDatabase::Pointer

Definition at line 60 of file elxComponentDatabase.h.

◆ PtrToCreator

typedef ObjectPointer(* elastix::ComponentDatabase::PtrToCreator) (void)

PtrToCreator is a pointer to a function which outputs an ObjectPointer and has no input arguments.

Definition at line 76 of file elxComponentDatabase.h.

◆ Self

Standard.

Definition at line 58 of file elxComponentDatabase.h.

◆ Superclass

Definition at line 59 of file elxComponentDatabase.h.

Constructor & Destructor Documentation

◆ ComponentDatabase() [1/2]

elastix::ComponentDatabase::ComponentDatabase ( )
inlineprotected

Definition at line 136 of file elxComponentDatabase.h.

◆ ~ComponentDatabase()

elastix::ComponentDatabase::~ComponentDatabase ( )
inlineoverrideprotected

Definition at line 137 of file elxComponentDatabase.h.

◆ ComponentDatabase() [2/2]

elastix::ComponentDatabase::ComponentDatabase ( const Self )
private

Member Function Documentation

◆ GetClassName()

virtual const char * elastix::ComponentDatabase::GetClassName ( ) const
virtual

◆ GetCreator()

PtrToCreator elastix::ComponentDatabase::GetCreator ( const ComponentDescriptionType name,
IndexType  i 
) const

Functions to get an entry in a map

◆ GetIndex()

IndexType elastix::ComponentDatabase::GetIndex ( const PixelTypeDescriptionType fixedPixelType,
ImageDimensionType  fixedDimension,
const PixelTypeDescriptionType movingPixelType,
ImageDimensionType  movingDimension 
) const

◆ New()

static Pointer elastix::ComponentDatabase::New ( )
static

◆ operator=()

void elastix::ComponentDatabase::operator= ( const Self )
private

◆ SetCreator()

int elastix::ComponentDatabase::SetCreator ( const ComponentDescriptionType name,
IndexType  i,
PtrToCreator  creator 
)

Functions to set an entry in a map.

◆ SetIndex()

int elastix::ComponentDatabase::SetIndex ( const PixelTypeDescriptionType fixedPixelType,
ImageDimensionType  fixedDimension,
const PixelTypeDescriptionType movingPixelType,
ImageDimensionType  movingDimension,
IndexType  i 
)

Field Documentation

◆ CreatorMap

CreatorMapType elastix::ComponentDatabase::CreatorMap
private

Definition at line 141 of file elxComponentDatabase.h.

◆ IndexMap

IndexMapType elastix::ComponentDatabase::IndexMap
private

Definition at line 142 of file elxComponentDatabase.h.



Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo