00001 // $ID: $ 00002 00003 #ifndef VISDESC_VISUALIZATIONSVC_H 00004 #define VISDESC_VISUALIZATIONSVC_H 00005 00006 // Include files 00007 #include "GaudiKernel/Service.h" 00008 00009 #include "VisSvc/IVisualizationSvc.h" 00010 00011 #include <map> 00012 00013 // Forward and external declarations 00014 template <class TYPE> class SvcFactory; 00015 00026 class VisualizationSvc : public Service, 00027 virtual public IVisualizationSvc { 00028 00030 friend class SvcFactory<VisualizationSvc>; 00031 00032 public: 00033 00039 VisualizationSvc (const std::string& name, ISvcLocator* svc); 00040 00044 virtual ~VisualizationSvc() {}; 00045 00050 virtual StatusCode initialize(); 00051 00058 virtual StatusCode queryInterface (const InterfaceID& riid, void** ppvInterface); 00059 00061 // implementation of the IVisualizationSvc interface // 00063 00071 virtual const VisAttribute visAttribute (const Material* mat) const; 00072 00080 virtual const VisAttribute visAttribute (const ILVolume* vol) const; 00081 00085 virtual void reload (); 00086 00090 virtual void clear (); 00091 00092 00093 private: 00094 00098 typedef std::map<std::string, VisAttribute> AttributeSet; 00099 00103 typedef std::map<std::string, std::string> Dictionnary; 00104 00106 AttributeSet m_attributeSet; 00107 00109 Dictionnary m_material2Vis; 00110 00112 Dictionnary m_logvol2Vis; 00113 Dictionnary m_logvol_regex_2Vis; 00114 00116 std::string m_colorDbLocation; 00117 00118 }; 00119 00120 #endif // VISDESC_VISUALIZATIONSVC_H 00121