BALL::AddHydrogenProcessor Class Reference
[Miscellaneous]

Saturate atoms with hydrogen atoms. More...

#include <addHydrogenProcessor.h>

Inheritance diagram for BALL::AddHydrogenProcessor:
Inheritance graph
[legend]

List of all members.


Public Member Functions

AddHydrogenProcessor (const AddHydrogenProcessor &hbp)
virtual bool start ()
start method
virtual Processor::Result operator() (Composite &composite)
operator ()
Size getConnectivity (Atom &atom)
void setRings (const vector< vector< Atom * > > &rings)
Size getNumberOfAddedHydrogens ()

Protected Member Functions

Size countBondOrders (Atom &atom)
void addHydrogen_ (Atom &atom, Vector3 position)
bool isRingAtom_ (Atom &atom)
vector< Atom * > getPartners_ (Atom &atom)
Vector3 getNormal_ (const Vector3 &v)
bool normalize_ (Vector3 &v)
bool hasMultipleBond_ (Atom &atom)
float getBondLength_ (Position element)

Protected Attributes

HashSet< Atom * > ring_atoms_
Position atom_nr_
Atom * last_atom_
Size nr_hydrogens_

Detailed Description

Saturate atoms with hydrogen atoms.

Only works with main group elements. The formal charge of the atoms are taken into account. The placement of the hydrogen atoms only depends on the direct neighbour atoms. No additional optimization of the atom placement is done. The optimal bond lengths are calculized by a modified Schomaker-Stevenson rule (adapted from the MMFF94 force field).
Usage:

      RingPerceptionProcessor rpp;
      vector<vector<Atom*> > rings;
      rpp.calculateSSSR(rings, system);
      rings = rpp.getAllSmallRings();
      AddHydrogenProcessor ap;
      ap.setRings(rings);
      system.apply(ap);

Generated on Thu Aug 6 18:30:45 2009 for BALL by doxygen 1.5.8