CASToR  1.1
Tomographic Reconstruction (PET/SPECT)
 All Classes Files Functions Variables Typedefs Macros Groups Pages
sAddonManager.hh
Go to the documentation of this file.
1 
9 #ifndef SADDONMANAGER_HH
10 #define SADDONMANAGER_HH 1
11 
12 #include "gVariables.hh"
13 #include "vProjector.hh"
14 #include "vOptimizer.hh"
15 #include "vImageConvolver.hh"
17 #include "vPenalty.hh"
18 #include "vDeformation.hh"
19 #include "vDynamicModel.hh"
20 
21 
22 
37 {
38  // -----------------------------------------------------------------------------------------
39  // Constructor & Destructor
40  public :
47  {
48  if (mp_Instance == NULL) mp_Instance = new sAddonManager;
49  return mp_Instance;
50  };
57 
58 
59  // -----------------------------------------------------------------------------------------
60  // Public lists and methods for the different objects based on abstract classes
61  public:
62 
63  // The function's pointer to build the map of all functions dedicated to the creation of vProjector objects
64  typedef vProjector *(*maker_projector) ();
65  // The map indexed by the name of the vProjector children, and which points on the corresponding function that
66  // call the constructor of each child. The corresponding function is created by a macro defined in the vProjector
67  // header file and used in the children classes. The pointer to this function is automatically added into the map
68  // by another macro defined in the vProjector header file (describring a static creator class) and used in the
69  // children classes.
70  std::map<string,maker_projector> mp_listOfProjectors;
76  void ShowHelpProjector();
77 
78  // The function's pointer to build the map of all functions dedicated to the creation of vOptimizer objects
79  typedef vOptimizer *(*maker_optimizer) ();
80  // The map indexed by the name of the vOptimizer children, and which points on the corresponding function that
81  // call the constructor of each child. The corresponding function is created by a macro defined in the vOptimizer
82  // header file and used in the children classes. The pointer to this function is automatically added into the map
83  // by another macro defined in the vOptimizer header file (describring a static creator class) and used in the
84  // children classes.
85  std::map<string,maker_optimizer> mp_listOfOptimizers;
91  void ShowHelpOptimizer();
92 
93  // The function's pointer to build the map of all functions dedicated to the creation of vPenalty objects
94  typedef vPenalty *(*maker_penalty) ();
95  // The map indexed by the name of the vPenalty children, and which points on the corresponding function that
96  // call the constructor of each child. The corresponding function is created by a macro defined in the vPenalty
97  // header file and used in the children classes. The pointer to this function is automatically added into the map
98  // by another macro defined in the vPenalty header file (describring a static creator class) and used in the
99  // children classes.
100  std::map<string,maker_penalty> mp_listOfPenalties;
106  void ShowHelpPenalty();
107 
108  // The function's pointer to build the map of all functions dedicated to the creation of vImageConvolver objects
109  typedef vImageConvolver *(*maker_image_convolver) ();
110  // The map indexed by the name of the vImageConvolver children, and which points on the corresponding function that
111  // call the constructor of each child. The corresponding function is created by a macro defined in the vImageConvolver
112  // header file and used in the children classes. The pointer to this function is automatically added into the map
113  // by another macro defined in the vImageConvolver header file (describring a static creator class) and used in the
114  // children classes.
115  std::map<string,maker_image_convolver> mp_listOfImageConvolvers;
121  void ShowHelpImageConvolver();
122 
123  // The function's pointer to build the map of all functions dedicated to the creation of vImageProcessingModule objects
124  typedef vImageProcessingModule *(*maker_image_processing_module) ();
125  // The map indexed by the name of the vImageProcessingModule children, and which points on the corresponding function that
126  // call the constructor of each child. The corresponding function is created by a macro defined in the vImageProcessingModule
127  // header file and used in the children classes. The pointer to this function is automatically added into the map
128  // by another macro defined in the vImageProcessingModule header file (describring a static creator class) and used in the
129  // children classes.
130  std::map<string,maker_image_processing_module> mp_listOfImageProcessingModules;
137 
138  // The function's pointer to build the map of all functions dedicated to the creation of vScanner objects
139  typedef vScanner *(*maker_scanner) ();
140  // The map indexed by the name of the vScanner children, and which points on the corresponding function that
141  // call the constructor of each child. The corresponding function is created by a macro defined in the vScanner
142  // header file and used in the children classes. The pointer to this function is automatically added into the map
143  // by another macro defined in the vScanner header file (describring a static creator class) and used in the
144  // children classes.
145  std::map<string,maker_scanner> mp_listOfScannerTypes;
151  void ShowHelpScanner();
152 
153  // The function's pointer to build the map of all functions dedicated to the creation of vDynamicModel objects
154  typedef vDynamicModel *(*maker_dynamic_model) ();
155  // The map indexed by the name of the vDynamicModel children, and which points on the corresponding function that
156  // call the constructor of each child. The corresponding function is created by a macro defined in the vDynamicModel
157  // header file and used in the children classes. The pointer to this function is automatically added into the map
158  // by another macro defined in the vDynamicModel header file (describring a static creator class) and used in the
159  // children classes.
160  std::map<string,maker_dynamic_model> mp_listOfDynamicModels;
166  void ShowHelpDynamicModel();
167 
168  // The function's pointer to build the map of all functions dedicated to the creation of vDeformation objects
169  typedef vDeformation *(*maker_deformation) ();
170  // The map indexed by the name of the vDeformation children, and which points on the corresponding function that
171  // call the constructor of each child. The corresponding function is created by a macro defined in the vDeformation
172  // header file and used in the children classes. The pointer to this function is automatically added into the map
173  // by another macro defined in the vDeformation header file (describring a static creator class) and used in the
174  // children classes.
175  std::map<string,maker_deformation> mp_listOfDeformations;
181  void ShowHelpDeformation();
182 
183 
184  // -------------------------------------------------------------------
185  // Private constructor
186  private:
192  sAddonManager();
193 
194 
195  // -------------------------------------------------------------------
196  // Private data members
197  private:
199 };
200 
201 #endif
This header file is mainly used to declare some macro definitions and all includes needed from the st...
void ShowHelpDynamicModel()
Show help about all implemented dynamic models.
This class is designed to manage the automatic declaration of 'addon' classes.
void ShowHelpDeformation()
Show help about all implemented deformations.
This class is designed to generically described any on-the-fly projector.
Definition: vProjector.hh:54
This is the mother class of dynamic model classes.
void ShowHelpImageProcessingModule()
Show help about all implemented image processing modules.
std::map< string, maker_scanner > mp_listOfScannerTypes
void ShowHelpPenalty()
Show help about all implemented penalties.
static sAddonManager * GetInstance()
std::map< string, maker_optimizer > mp_listOfOptimizers
Declaration of class vProjector.
This abstract class is the generic image processing module class used by the oImageProcessingManager...
sAddonManager()
The constructor of sAddonManager.
Declaration of class vOptimizer.
Declaration of class vPenalty.
This class is designed to generically described any penalty applied to MAP algorithms.
Definition: vPenalty.hh:23
This is the mother class of image-based transformation class.
Definition: vDeformation.hh:44
std::map< string, maker_projector > mp_listOfProjectors
void ShowHelpProjector()
Show help about all implemented projectors.
Declaration of class vDeformation.
This class is designed to generically described any iterative optimizer.
Definition: vOptimizer.hh:36
std::map< string, maker_image_processing_module > mp_listOfImageProcessingModules
~sAddonManager()
The destructor of sAddonManager.
std::map< string, maker_deformation > mp_listOfDeformations
std::map< string, maker_dynamic_model > mp_listOfDynamicModels
std::map< string, maker_image_convolver > mp_listOfImageConvolvers
void ShowHelpScanner()
Show help about all implemented scanners.
std::map< string, maker_penalty > mp_listOfPenalties
Declaration of class vDynamicModel.
Declaration of class vImageConvolver.
void ShowHelpOptimizer()
Show help about all implemented optimizers.
static sAddonManager * mp_Instance
Declaration of class vImageProcessingModule.
Generic class for scanner objects.
Definition: vScanner.hh:48
This abstract class is the generic image convolver class used by the oImageConvolverManager.
void ShowHelpImageConvolver()
Show help about all implemented image convolvers.