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
hybridisationProcessor.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_HYBRIDISATIONPROCESSOR_H
6
#define BALL_STRUCTURE_HYBRIDISATIONPROCESSOR_H
7
8
#ifndef BALL_CONCEPT_PROCESSOR_H
9
#include <
BALL/CONCEPT/processor.h
>
10
#endif
11
12
#ifndef BALL_KERNEL_ATOMCONTAINER_H
13
#include <
BALL/KERNEL/atomContainer.h
>
14
#endif
15
16
#ifndef BALL_DATATYPE_HASHMAP_H
17
#include <
BALL/DATATYPE/hashMap.h
>
18
#endif
19
20
#ifndef BALL_KERNEL_BOND_H
21
#include <
BALL/KERNEL/bond.h
>
22
#endif
23
24
#ifndef BALL_DATATYPE_OPTIONS_H
25
#include <
BALL/DATATYPE/options.h
>
26
#endif
27
28
#ifndef BALL_DATATYPE_STRINGHASHMAP_H
29
#include <
BALL/DATATYPE/stringHashMap.h
>
30
#endif
31
32
33
#include <map>
34
35
36
namespace
BALL
37
{
38
42
class
BALL_EXPORT
HybridisationProcessor
43
:
public
UnaryProcessor
<AtomContainer>
44
{
45
46
public
:
47
51
52
struct
BALL_EXPORT
Option
53
{
57
static
const
char
*
ATOM_TYPE_SMARTS_FILENAME
;
58
62
static
const
char
*
ATOM_TYPE_FF_FILENAME
;
63
73
static
const
String
METHOD
;
74
75
};
76
78
struct
BALL_EXPORT
Default
79
{
81
static
const
char
*
ATOM_TYPE_SMARTS_FILENAME
;
82
86
static
const
char
*
ATOM_TYPE_FF_FILENAME
;
87
91
static
const
String
METHOD
;
92
};
93
94
struct
BALL_EXPORT
Method
95
{
96
static
const
String
SMART_MATCHING
;
97
static
const
String
STRUCTURE_BASED
;
98
static
const
String
FF_BASED
;
99
};
100
101
103
104
108
109
BALL_CREATE
(
HybridisationProcessor
);
110
112
HybridisationProcessor
();
113
115
HybridisationProcessor
(
const
HybridisationProcessor
& hp);
116
119
HybridisationProcessor
(
const
String
& smarts_file_name,
const
String
& ff_file_name)
throw
(
Exception::FileNotFound
);
120
122
virtual
~
HybridisationProcessor
();
124
128
130
virtual
bool
start();
131
133
virtual
Processor::Result
operator () (
AtomContainer
& ac);
135
139
140
Size
getNumberOfHybridisationStatesSet();
141
143
void
setAtomTypeSmarts(
const
String
& file_name)
throw
(
Exception::FileNotFound
);
144
146
vector< std::pair<String, Size> >
getHybridisationMap
() {
return
atom_type_smarts_;};
148
152
153
HybridisationProcessor
& operator = (
const
HybridisationProcessor
& hp);
155
159
160
Options
options
;
161
164
void
setDefaultOptions();
166
167
protected
:
168
171
struct
Elements_
172
{
174
String
type
;
176
unsigned
char
hyb
;
177
};
178
181
struct
AtomNames_
182
{
184
String
a1
;
186
String
a2
;
188
String
a3
;
189
};
190
192
bool
readAtomTypeSmartsFromFile_(
const
String
& file_name =
""
) throw(Exception::FileNotFound);
193
195
Size
num_hybridisation_states_;
196
198
vector< std::pair<
String
,
Size
> > atom_type_smarts_;
199
203
StringHashMap
<
StringHashMap
<
StringHashMap
<std::multimap<
float
,
AtomNames_
> > > > bond_angles_;
204
205
bool
readAndInitBondAnglesFromFile_(const String& file_name = "") throw(Exception::FileNotFound);
206
209
StringHashMap
<
Elements_
> elements_;
210
211
213
bool
valid_;
214
215
217
double
AverageBondAngle_(
Atom
* a);
218
219
};
220
221
}
// namespace BALL
222
223
224
#endif // BALL_STRUCTURE_HYBRIDISATIONPROCESSOR_H
Generated by
1.8.3.1