SignConfiguration.h

Go to the documentation of this file.
00001 /*
00002  *
00003  * Program:   Slicer Image-Guided Navigator (The SIGN)
00004  * Module:    $RCSfile: SignConfiguration.h,v $
00005  */
00016 #ifndef _SignConfiguration_H
00017 #define _SignConfiguration_H
00018 
00019 #include <map>
00020 #include <string>
00021 #include <vector>
00022 #include <set>
00023 
00024 #include <SignDLL.h>
00025 
00026 class SignContext;
00027 class SignMRMLManager;
00028 
00029 // Support types for configurations maps below
00030 typedef std::vector<std::string> CatheterViewerList;
00031 typedef std::vector<std::string> ProbeViewerList;
00032 typedef std::vector<std::string> CalibrationTransformList;
00033 typedef std::vector<std::string> RegistrationTransformList;
00034 
00035 // Miscellaneous configuration options
00036 typedef std::map<std::string,std::string> ConfigurationMap;
00037 
00038 // Registration transforms
00039 typedef std::map<std::string,RegistrationTransformList> RegistrationTransformMap;
00040 
00041 // Calibration transforms
00042 typedef std::map<std::string,CalibrationTransformList> CalibrationTransformMap;
00043 
00044 // Realtime images
00045 typedef std::vector<std::string> RTImage3DViewerList;
00046 
00047 // Control lines
00048 typedef std::map<std::string,std::string> ControlLineList;
00049 
00050 // Catheter configuration
00051 typedef std::set<std::string> CatheterList;
00052 typedef std::map<std::string,CatheterViewerList> Catheter3DViewerMap;
00053 typedef std::map<std::string,CatheterViewerList> Catheter2DViewerMap;
00054 
00055 // Probe configuration
00056 typedef std::set<std::string> ProbeList;
00057 typedef std::map<std::string,ProbeViewerList> Probe2DViewerMap;
00058 
00059 class SIGN_EXPORT SignConfiguration
00060 {
00061  protected:
00062   void BuildConfigurationMap();
00063 
00064  public:
00065   SignConfiguration();
00066   virtual ~SignConfiguration();
00067 
00070   void BuildSIGNConfigurationFromMRML(SignContext* context);
00071 
00074         std::string GetConfigurationOption(const std::string name);
00077   std::string GetConfigurationOption(const std::string name,const std::string defaultValue);
00079   void SetConfigurationOption(const std::string name, const std::string value);
00080 
00082         RegistrationTransformList* GetRegistrationTransforms(std::string sink);
00084   CalibrationTransformList* GetCalibrationTransforms(std::string sink);
00086   void AddRegistrationTransform(std::string source,std::string target);
00087 
00089         ControlLineList* GetControlLines();
00091   CatheterList* GetCatheters();
00093   CatheterViewerList* Get3DViewersForCatheter(std::string name);
00095   CatheterViewerList* Get2DViewersForCatheter(std::string name);
00096 
00098         ProbeList* GetProbes();
00100   ProbeViewerList* Get2DViewersForProbe(std::string name);
00102   void Add2DViewerForProbe(std::string probe,std::string viewer);
00103 
00104  private:
00105   ConfigurationMap configuration;
00106   RegistrationTransformMap registrationTransforms;
00107   CalibrationTransformMap calibrationTransforms;
00108   RTImage3DViewerList rtImage3DViewers;
00109   ControlLineList controlLines;
00110   CatheterList catheters;
00111   Catheter3DViewerMap catheter3DViewers;
00112   Catheter2DViewerMap catheter2DViewers;
00113   ProbeList probes;
00114   Probe2DViewerMap probe2DViewers;
00115 
00116   SignMRMLManager* mrml;
00117   SignContext* context;
00118 };
00119 
00120 #endif

Generated on Mon Feb 26 12:11:16 2007 for TheSIGN by  doxygen 1.4.6