BALL::AddHydrogenProcessor Class Reference
[Miscellaneous]

#include <BALL/STRUCTURE/addHydrogenProcessor.h>

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

List of all members.

Public Member Functions

 AddHydrogenProcessor ()
virtual ~AddHydrogenProcessor ()
 AddHydrogenProcessor (const AddHydrogenProcessor &hbp)
virtual bool start ()
virtual Processor::Result operator() (Composite &composite)
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_
Atomlast_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);

Definition at line 47 of file addHydrogenProcessor.h.


Constructor & Destructor Documentation

BALL::AddHydrogenProcessor::AddHydrogenProcessor (  ) 
virtual BALL::AddHydrogenProcessor::~AddHydrogenProcessor (  )  [virtual]
BALL::AddHydrogenProcessor::AddHydrogenProcessor ( const AddHydrogenProcessor hbp  ) 

Member Function Documentation

void BALL::AddHydrogenProcessor::addHydrogen_ ( Atom atom,
Vector3  position 
) [protected]
Size BALL::AddHydrogenProcessor::countBondOrders ( Atom atom  )  [protected]
float BALL::AddHydrogenProcessor::getBondLength_ ( Position  element  )  [protected]
Size BALL::AddHydrogenProcessor::getConnectivity ( Atom atom  ) 
Vector3 BALL::AddHydrogenProcessor::getNormal_ ( const Vector3 v  )  [protected]
Size BALL::AddHydrogenProcessor::getNumberOfAddedHydrogens (  )  [inline]

Definition at line 74 of file addHydrogenProcessor.h.

vector<Atom*> BALL::AddHydrogenProcessor::getPartners_ ( Atom atom  )  [protected]
bool BALL::AddHydrogenProcessor::hasMultipleBond_ ( Atom atom  )  [protected]
bool BALL::AddHydrogenProcessor::isRingAtom_ ( Atom atom  )  [inline, protected]
bool BALL::AddHydrogenProcessor::normalize_ ( Vector3 v  )  [inline, protected]
virtual Processor::Result BALL::AddHydrogenProcessor::operator() ( Composite  )  [virtual]

operator ()

Reimplemented from BALL::UnaryProcessor< Composite >.

void BALL::AddHydrogenProcessor::setRings ( const vector< vector< Atom * > > &  rings  ) 
virtual bool BALL::AddHydrogenProcessor::start (  )  [virtual]

start method

Reimplemented from BALL::UnaryProcessor< Composite >.


Member Data Documentation

Definition at line 89 of file addHydrogenProcessor.h.

Definition at line 90 of file addHydrogenProcessor.h.

Definition at line 91 of file addHydrogenProcessor.h.

Definition at line 88 of file addHydrogenProcessor.h.

Generated by  doxygen 1.6.3