SMILX  1.01
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
elastix::ComponentLoader Class Reference

Determines which components (metrics, transforms, etc.) are available. More...

#include <elxComponentLoader.h>

Inheritance diagram for elastix::ComponentLoader:

Public Types

typedef ComponentLoader Self
 
typedef itk::Object Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef ComponentDatabase ComponentDatabaseType
 
typedef ComponentDatabaseType::Pointer ComponentDatabasePointer
 

Public Member Functions

 itkNewMacro (Self)
 
 itkTypeMacro (ComponentLoader, Object)
 
 itkSetObjectMacro (ComponentDatabase, ComponentDatabaseType)
 
 itkGetObjectMacro (ComponentDatabase, ComponentDatabaseType)
 
virtual int LoadComponents (const char *argv0)
 
virtual void UnloadComponents (void)
 

Protected Member Functions

 ComponentLoader ()
 
virtual ~ComponentLoader ()
 
virtual int InstallSupportedImageTypes (void)
 

Protected Attributes

ComponentDatabasePointer m_ComponentDatabase
 
bool m_ImageTypeSupportInstalled
 

Detailed Description

Determines which components (metrics, transforms, etc.) are available.

This file defines the class elx::ComponentLoader. This class stores pointers to the New() functions of each component in the elx::ComponentDatabase.

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

Definition at line 37 of file elxComponentLoader.h.

Member Typedef Documentation

◆ ComponentDatabaseType

Typedef's.

Definition at line 52 of file elxComponentLoader.h.

◆ Self

Standard ITK typedef's.

Definition at line 42 of file elxComponentLoader.h.

Constructor & Destructor Documentation

◆ ComponentLoader()

elastix::ComponentLoader::ComponentLoader ( )
protected

Standard constructor and destructor.

Constructor ********************************

Definition at line 87 of file elxComponentLoader.cxx.

◆ ~ComponentLoader()

elastix::ComponentLoader::~ComponentLoader ( )
protectedvirtual

****************** Destructor *********************************

Definition at line 97 of file elxComponentLoader.cxx.

Member Function Documentation

◆ InstallSupportedImageTypes()

int elastix::ComponentLoader::InstallSupportedImageTypes ( void  )
protectedvirtual

*************** InstallSupportedImageTypes ********************

Method: A recursive template was defined at the top of this file, that installs support for all combinations of ImageTypes defined in elxSupportedImageTypes.h

Result: The VIndices are stored in the elx::ComponentDatabase::IndexMap. The New() functions of ElastixTemplate<> in the elx::ComponentDatabase::CreatorMap, with key "Elastix".

Call class<1>::DO(...)

Definition at line 107 of file elxComponentLoader.cxx.

◆ itkNewMacro()

elastix::ComponentLoader::itkNewMacro ( Self  )

Standard ITK stuff.

◆ itkSetObjectMacro()

elastix::ComponentLoader::itkSetObjectMacro ( ComponentDatabase  ,
ComponentDatabaseType   
)

Set and get the ComponentDatabase.

◆ LoadComponents()

int elastix::ComponentLoader::LoadComponents ( const char *  argv0)
virtual

Function to load components. The argv0 used to be useful to find the program directory, but is not used anymore.

****************** LoadComponents *****************************

Generate the mapping between indices and image types

Fill the component database

Parameters
argv0argv0

Definition at line 138 of file elxComponentLoader.cxx.

◆ UnloadComponents()

void elastix::ComponentLoader::UnloadComponents ( void  )
virtual

Function to unload components.

****************** UnloadComponents ****************************

This function used to be more useful when we still used .dll's.

Definition at line 179 of file elxComponentLoader.cxx.


The documentation for this class was generated from the following files: