#include <openbabel/obiter.h>
Public Member Functions | |
| OBMolBondIter () | |
| OBMolBondIter (OBMol *mol) | |
| OBMolBondIter (OBMol &mol) | |
| OBMolBondIter (const OBMolBondIter &bi) | |
| ~OBMolBondIter () | |
| OBMolBondIter & | operator= (const OBMolBondIter &bi) |
| operator bool () const | |
| OBMolBondIter & | operator++ () |
| OBMolBondIter | operator++ (int) |
| OBBond * | operator-> () const |
| OBBond & | operator* () const |
To facilitate iteration through all bonds in a molecule, without resorting to bond indexes (which may change in the future), a variety of iterators are provided.
This has been made significantly easier by a series of macros in the obiter.h header file:
\#define FOR_BONDS_OF_MOL(b,m) for( OBMolBondIter b(m); b; ++b )
Here is an example:
#include <openbabel/obiter.h> #include <openbabel/mol.h> OBMol mol; unsigned int bondOrderSum = 0; FOR_BONDS_OF_MOL(b, mol) { // The variable b behaves like OBBond* when used with -> and * but // but needs to be explicitly converted when appearing as a parameter // in a function call - use &*b bondOrderSum += b->GetBO(); }
| OBMolBondIter | ( | ) | [inline] |
| OBMolBondIter | ( | OBMol * | mol | ) |
| OBMolBondIter | ( | OBMol & | mol | ) |
| OBMolBondIter | ( | const OBMolBondIter & | bi | ) |
| ~OBMolBondIter | ( | ) | [inline] |
| OBMolBondIter & operator= | ( | const OBMolBondIter & | bi | ) |
| operator bool | ( | ) | const [inline] |
| OBMolBondIter & operator++ | ( | ) |
| OBMolBondIter operator++ | ( | int | ) |
Postincrement -- return the current bond and advance to the next.
| OBBond* operator-> | ( | ) | const [inline] |
| OBBond& operator* | ( | ) | const [inline] |