00001 /********************************************************************** 00002 bondtyper.h - Bond typer to perceive connectivity and bond orders/types. 00003 00004 Copyright (C) 2003-2005 by Geoffrey R. Hutchison 00005 00006 This file is part of the Open Babel project. 00007 For more information, see <http://openbabel.sourceforge.net/> 00008 00009 This program is free software; you can redistribute it and/or modify 00010 it under the terms of the GNU General Public License as published by 00011 the Free Software Foundation version 2 of the License. 00012 00013 This program is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU General Public License for more details. 00017 ***********************************************************************/ 00018 00019 #ifndef OB_BONDTYPER_H 00020 #define OB_BONDTYPER_H 00021 00022 #include <openbabel/parsmart.h> 00023 #include <openbabel/data.h> 00024 00025 namespace OpenBabel 00026 { 00027 00028 // class introduction in bondtyper.cpp 00029 // Used for "perceiving" bonds, e.g. in XYZ or QM files with no bond info. 00030 class OBAPI OBBondTyper : public OBGlobalDataBase 00031 { 00033 std::vector<std::pair<OBSmartsPattern*, std::vector<int> > > _fgbonds; 00034 public: 00035 OBBondTyper(); 00036 ~OBBondTyper(); 00037 00039 00040 void ParseLine(const char*); 00042 unsigned int GetSize() { return _fgbonds.size();} 00044 00046 00047 00048 void AssignFunctionalGroupBonds(OBMol &mol); 00050 }; 00051 00052 } 00053 00054 #endif // OB_BONDTYPER_H 00055