1
/**********************************************************************
2
Copyright (C) 1998-2001 by OpenEye Scientific Software, Inc.
4
This program is free software; you can redistribute it and/or modify
5
it under the terms of the GNU General Public License as published by
6
the Free Software Foundation version 2 of the License.
8
This program is distributed in the hope that it will be useful,
9
but WITHOUT ANY WARRANTY; without even the implied warranty of
10
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
GNU General Public License for more details.
12
***********************************************************************/
30
OERTree(OEAtom*,OERTree*);
33
void PathToRoot(vector<OEAtom*>&);
43
bool findCenterAndNormal(Vector & center, Vector &norm1, Vector &norm2);
47
OERing(vector<int>&,int);
48
OERing(const OERing &src);
49
OERing& operator=(const OERing &src);
52
int Size() const {return(_path.size());}
53
int PathSize() const {return(_path.size());}
54
bool IsMember(OEAtom *a);
55
bool IsMember(OEBond *b);
57
bool IsInRing(int i) {return(_pathset.BitIsOn(i));}
58
void SetParent(OEMol *m) {_parent = m;}
59
OEMol *GetParent() {return(_parent);}
62
bool CompareRingSize(const OERing *,const OERing *);
66
vector<OEBond*> _bonds;
67
vector<OERing*> _rlist;
71
void SortRings() {sort(_rlist.begin(),_rlist.end(),CompareRingSize);}
72
void RemoveRedundant(int);
73
void AddRingFromClosure(OEMol &,OEBond *,int);
75
bool SaveUniqueRing(deque<int>&,deque<int>&);
76
vector<OERing*>::iterator BeginRings() {return(_rlist.begin());}
77
vector<OERing*>::iterator EndRings() {return(_rlist.end());}