00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef OB_ALIAS_H
00016 #define OB_ALIAS_H
00017
00018
00019 #include <vector>
00020 #include <openbabel/mol.h>
00021
00022 namespace OpenBabel
00023 {
00024
00025
00026 #ifndef OBAPI
00027 #define OBAPI
00028 #endif
00029
00030 const unsigned int AliasDataType = 0x7883;
00031
00048 class OBAPI AliasData : public OBGenericData
00049 {
00050 protected:
00051 std::string _alias;
00052 std::vector<unsigned int> _expandedatoms;
00053 public:
00054
00055 AliasData(): OBGenericData("Alias", AliasDataType){ }
00056
00057 virtual OBGenericData* Clone(OBBase* ) const{return new AliasData(*this);}
00058
00060 void SetAlias(const std::string& alias) {_alias = alias;}
00061 void SetAlias(const char* alias) {_alias = alias;}
00062
00064 std::string GetAlias()const { return _alias; }
00065
00067 void SetExpandedAtoms(std::vector<unsigned int>& atoms){ _expandedatoms = atoms; }
00068
00070 std::vector<unsigned int> GetExpandedAtoms()const { return _expandedatoms; }
00071
00072 bool IsExpanded()const { return !_expandedatoms.empty(); }
00073
00074
00075 bool Expand(OBMol& mol, const unsigned int atomindex);
00076
00077 };
00078 }
00079
00080 #endif // OB_ALIAS_H
00081