00001
00002
00003
00004
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
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
00036 typedef std::map<std::string,std::string> ConfigurationMap;
00037
00038
00039 typedef std::map<std::string,RegistrationTransformList> RegistrationTransformMap;
00040
00041
00042 typedef std::map<std::string,CalibrationTransformList> CalibrationTransformMap;
00043
00044
00045 typedef std::vector<std::string> RTImage3DViewerList;
00046
00047
00048 typedef std::map<std::string,std::string> ControlLineList;
00049
00050
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
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