Open Babel  3.0
Public Member Functions | List of all members
OBMolBondBFSIter Class Reference

#include <openbabel/obiter.h>

Public Member Functions

 OBMolBondBFSIter ()
 
 OBMolBondBFSIter (OBMol *mol, int StartIndex=0)
 
 OBMolBondBFSIter (OBMol &mol, int StartIndex=0)
 
 OBMolBondBFSIter (const OBMolBondBFSIter &ai)
 
 ~OBMolBondBFSIter ()
 
OBMolBondBFSIteroperator= (const OBMolBondBFSIter &ai)
 
 operator bool () const
 
OBMolBondBFSIteroperator++ ()
 
OBMolBondBFSIter operator++ (int)
 
OBBondoperator-> () const
 
OBBondoperator* () const
 
int CurrentDepth () const
 

Detailed Description

Iterate over all bonds in an OBMol in a breadth-first search (BFS)

Since
version 2.3

To facilitate iteration through all bonds in a molecule, without resorting to bond indexes (which will change in the future), a variety of iterator methods are provided.

This class provides a breadth-first search ordering of bonds. When one connected component is exhausted, the iterator will start at another until all bonds are visited. No guarantee is made as to the ordering of iteration through connected components.

The iterator maintains an internal queue and list of visited atoms. As such it may not be appropriate for memory-constrained situations when iterating through large molecules.

Use of this iterator has been made significantly easier by a series of macros in the obiter.h header file:

\#define FOR_BONDBFS_OF_MOL(a,m) for( OBMolBondBFSIter a(m); a; ++a )

Here is an example:

#include <openbabel/mol.h>
{
// 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 &*a
}

Constructor & Destructor Documentation

◆ OBMolBondBFSIter() [1/4]

OBMolBondBFSIter ( )
inline

◆ OBMolBondBFSIter() [2/4]

OBMolBondBFSIter ( OBMol mol,
int  StartIndex = 0 
)

◆ OBMolBondBFSIter() [3/4]

OBMolBondBFSIter ( OBMol mol,
int  StartIndex = 0 
)

◆ OBMolBondBFSIter() [4/4]

◆ ~OBMolBondBFSIter()

~OBMolBondBFSIter ( )
inline

Member Function Documentation

◆ operator=()

OBMolBondBFSIter & operator= ( const OBMolBondBFSIter ai)

◆ operator bool()

operator bool ( ) const
inline
Returns
Whether the iterator can still advance (i.e., visit more atoms)

◆ operator++() [1/2]

OBMolBondBFSIter & operator++ ( )

Preincrement – advance to the next atom in the BFS list and return.

Referenced by OBMolBondBFSIter::operator++(), OBMolBondIter::operator++(), OBAtomAtomIter::operator++(), OBAtomBondIter::operator++(), and OBResidueIter::operator++().

◆ operator++() [2/2]

OBMolBondBFSIter operator++ ( int  )

Postincrement – return the current atom and advance to the next atom.

◆ operator->()

OBBond* operator-> ( ) const
inline
Returns
a pointer to the current atom

◆ operator*()

OBBond& operator* ( ) const
inline
Returns
a reference to the current atom

◆ CurrentDepth()

int CurrentDepth ( ) const
Returns
the current depth of the iterator
Since
version 2.2

The documentation for this class was generated from the following files: