BALL  1.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BALL::AddHydrogenProcessor Class Reference

#include <BALL/STRUCTURE/addHydrogenProcessor.h>

Inheritance diagram for BALL::AddHydrogenProcessor:
BALL::UnaryProcessor< Composite > BALL::UnaryFunctor< Composite, Processor::Result >

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 ()
- Public Member Functions inherited from BALL::UnaryProcessor< Composite >
 UnaryProcessor ()
 UnaryProcessor (const UnaryProcessor &)
virtual ~UnaryProcessor ()
virtual bool finish ()

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_

Additional Inherited Members

- Public Types inherited from BALL::UnaryFunctor< Composite, Processor::Result >
typedef Processor::Result result_type
typedef Composite argument_type
typedef Compositeargument_reference
typedef const Compositeconst_argument_reference
typedef Compositeargument_pointer
typedef const Compositeconst_argument_pointer

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();
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)
inlineprotected
bool BALL::AddHydrogenProcessor::normalize_ ( Vector3 v)
inlineprotected
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

Position BALL::AddHydrogenProcessor::atom_nr_
protected

Definition at line 89 of file addHydrogenProcessor.h.

Atom* BALL::AddHydrogenProcessor::last_atom_
protected

Definition at line 90 of file addHydrogenProcessor.h.

Size BALL::AddHydrogenProcessor::nr_hydrogens_
protected

Definition at line 91 of file addHydrogenProcessor.h.

HashSet<Atom*> BALL::AddHydrogenProcessor::ring_atoms_
protected

Definition at line 88 of file addHydrogenProcessor.h.