BALL
1.4.2
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
BALL
STRUCTURE
addHydrogenProcessor.h
Go to the documentation of this file.
1
// -*- Mode: C++; tab-width: 2; -*-
2
// vi: set ts=2:
3
//
4
5
#ifndef BALL_STRUCTURE_ADDHYDROGENPROCESSOR_H
6
#define BALL_STRUCTURE_ADDHYDROGENPROCESSOR_H
7
8
#ifndef BALL_CONCEPT_PROCESSOR_H
9
#include <
BALL/CONCEPT/processor.h
>
10
#endif
11
12
#ifndef BALL_MATHS_VECTOR3_H
13
#include <
BALL/MATHS/vector3.h
>
14
#endif
15
16
#ifndef BALL_KERNEL_ATOM_H
17
#include <
BALL/KERNEL/atom.h
>
18
#endif
19
20
#include <vector>
21
22
namespace
BALL
23
{
24
47
class
BALL_EXPORT
AddHydrogenProcessor
48
:
public
UnaryProcessor
<Composite>
49
{
50
51
public
:
52
54
AddHydrogenProcessor
();
55
57
virtual
~
AddHydrogenProcessor
();
58
60
AddHydrogenProcessor
(
const
AddHydrogenProcessor
& hbp);
61
62
virtual
bool
start();
63
65
virtual
Processor::Result
operator() (
Composite
&composite);
66
68
Size
getConnectivity(
Atom
& atom);
69
71
void
setRings(
const
vector<vector<Atom*> >& rings);
72
74
Size
getNumberOfAddedHydrogens
() {
return
nr_hydrogens_;}
75
76
protected
:
77
78
Size
countBondOrders(
Atom
& atom);
79
void
addHydrogen_(
Atom
& atom,
Vector3
position);
80
inline
bool
isRingAtom_(
Atom
& atom);
81
vector<Atom*> getPartners_(
Atom
& atom);
82
Vector3
getNormal_(
const
Vector3
& v);
83
inline
bool
normalize_(
Vector3
& v);
84
bool
hasMultipleBond_(
Atom
& atom);
85
// get the ideal bond length for the given element with hydrogen atoms
86
float
getBondLength_(
Position
element);
87
88
HashSet<Atom*>
ring_atoms_
;
89
Position
atom_nr_
;
90
Atom
*
last_atom_
;
91
Size
nr_hydrogens_
;
92
};
//class AddHydrogenProcessor
93
94
}
//namesspace BALL
95
96
#endif // BALL_STRUCTURE_ADDHYDROGENPROCESSOR_H
Generated by
1.8.3.1