Open Babel: OBMolTorsionIter Class Reference

Public Member Functions

# 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 ()
OBMolTorsionIter & | operator= (const OBMolTorsionIter &ai)
| operator bool () const
OBMolTorsionIter & | operator++ ()
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:

- obiter.h
- obiter.cpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines