Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef OB_ATOMCLASS_H
00015 #define OB_ATOMCLASS_H
00016
00017 #include <openbabel/babelconfig.h>
00018
00019 #include <vector>
00020 #include <sstream>
00021 #include <openbabel/base.h>
00022
00023 namespace OpenBabel
00024 {
00025
00026
00027 #ifndef OBAPI
00028 #define OBAPI
00029 #endif
00030
00040 class OBAPI OBAtomClassData : public OBGenericData
00041 {
00042 protected:
00043 std::map<int,int> _map;
00044 public:
00045 OBAtomClassData(): OBGenericData("Atom Class", 0x7882){ }
00046 virtual OBGenericData* Clone(OBBase* ) const{return new OBAtomClassData(*this);}
00047
00049 void Clear(){ _map.clear(); }
00050
00052 void Add(int indx, int cl) { _map[indx] = cl;}
00053
00055 bool HasClass(int indx)const { return _map.find(indx)!=_map.end(); }
00057 int GetClass(int indx)const
00058 {
00059 std::map<int,int>::const_iterator pos = _map.find(indx);
00060 if(pos!=_map.end())
00061 return pos->second;
00062 return -9999;
00063 }
00064
00067 std::string GetClassString(int indx)
00068 {
00069 std::stringstream ss;
00070 std::map<int,int>::const_iterator pos = _map.find(indx);
00071 if(pos!=_map.end())
00072 ss << ':' << pos->second;
00073 return ss.str();
00074 }
00075 int size(){ return _map.size(); }
00076
00077 };
00078 }
00079
00080 #endif // OB_ATOMCLASS_H
00081