OBMolTorsionIter Class Reference

Iterate over all torsions in an OBMol. More...

#include <openbabel/obiter.h>

List of all members.

Public Member Functions

 OBMolTorsionIter ()
 OBMolTorsionIter (OBMol *mol)
 OBMolTorsionIter (OBMol &mol)
 OBMolTorsionIter (const OBMolTorsionIter &ai)
 ~OBMolTorsionIter ()
OBMolTorsionIteroperator= (const OBMolTorsionIter &ai)
 operator bool () const
OBMolTorsionIteroperator++ ()
std::vector< unsigned int > operator* () const


Detailed Description

Iterate over all torsions in an OBMol.

Since:
version 2.1
To facilitate iteration through all torsions in a molecule, without resorting to atom indexes (which will change in the future), a variety of iterator methods are provided.

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

      \#define FOR_TORSIONS_OF_MOL(t,m)  for( OBMolTorsionIter   t(m); t; t++ )

Here is an example:

      #include <openbabel/obiter.h>
      #include <openbabel/mol.h>

      OBMol mol;
      OBAtom *a, *b, *c, *d;
      double tor;
  
      FOR_TORSIONS_OF_MOL(t, mol)
      {
         // The variable a behaves like OBTorsion* when used with -> and * but
         // but needs to be explicitly converted when appearing as a parameter
         // in a function call - use &*t

         a = _mol.GetAtom((*t)[0] + 1); // indices in vector start from 0!!!
         b = _mol.GetAtom((*t)[1] + 1);
         c = _mol.GetAtom((*t)[2] + 1);
         d = _mol.GetAtom((*t)[3] + 1);
         tor = mol.GetTorsion(a->GetIdx(), b->GetIdx(), c->GetIdx(), d->GetIdx());
      }

Constructor & Destructor Documentation

OBMolTorsionIter (  )  [inline]

OBMolTorsionIter ( OBMol mol  ) 

OBMolTorsionIter ( OBMol mol  ) 

OBMolTorsionIter ( const OBMolTorsionIter ai  ) 

~OBMolTorsionIter (  )  [inline]


Member Function Documentation

OBMolTorsionIter & operator= ( const OBMolTorsionIter ai  ) 

operator bool (  )  const [inline]

Returns:
Whether the iterator can still advance (i.e., visit more torsions)

OBMolTorsionIter & operator++ (  ) 

Preincrement -- advance to the next torsion and return.

std::vector<unsigned int> operator* (  )  const [inline]

Returns:
A vector of four atom indexes specifying the torsion
See also:
OBAtom::GetIdx()


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