BALL  1.4.2
 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.