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