#ifndef TCTHChannelMap_hxx #define TCTHChannelMap_hxx #include "IChannelMap.hxx" #include "ICTHChannelId.hxx" class ICTHChannelMap; namespace COMET { class ICTHChannelMap; } /// Class for CTH channel to geometry lookup class COMET::ICTHChannelMap : public COMET::IChannelMap { friend class IGeometryDatabase; protected: ICTHChannelMap(); public: virtual ~ICTHChannelMap(); /// Get the singleton instace of this class static ICTHChannelMap& Get(); /// Get geometry id from channel id virtual bool GetGeometryId(COMET::IGeometryId& geomId, COMET::ICTHChannelId channelId); ///Get channel id from geometry id virtual bool GetChannelId(COMET::ICTHChannelId& chanelId, COMET::IGeometryId geomId); private: ///Return a bad GeometryId that is invalid for any sensible test ///Note that the exact value meaningless and should not be relied upon. inline const COMET::IGeometryId BadGeomId() const; ///Return a bad ChannelId that is invalid for any sensible test ///Note that the exact value meaningless and should not be relied upon. inline const COMET::ICTHChannelId BadChanId() const; static ICTHChannelMap *fCTHChannelMap; }; #endif