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
KERNEL
molecule.h
Go to the documentation of this file.
1
// -*- Mode: C++; tab-width: 2; -*-
2
// vi: set ts=2:
3
//
4
5
#ifndef BALL_KERNEL_MOLECULE_H
6
#define BALL_KERNEL_MOLECULE_H
7
8
#ifndef BALL_KERNEL_ATOMCONTAINER_H
9
# include <
BALL/KERNEL/atomContainer.h
>
10
#endif
11
12
#ifndef BALL_KERNEL_FRAGMENT_H
13
# include <
BALL/KERNEL/fragment.h
>
14
#endif
15
16
#ifndef BALL_KERNEL_FRAGMENTITERATOR_H
17
# include <
BALL/KERNEL/fragmentIterator.h
>
18
#endif
19
20
namespace
BALL
21
{
22
class
System;
23
29
class
BALL_EXPORT
Molecule
30
:
public
AtomContainer
31
{
32
public
:
33
34
BALL_CREATE_DEEP
(
Molecule
)
35
36
39
42
enum
Property
43
{
44
IS_SOLVENT =
AtomContainer::NUMBER_OF_PROPERTIES
,
45
NUMBER_OF_PROPERTIES
46
};
47
49
52
55
Molecule
();
56
59
Molecule
(
const
Molecule
& molecule,
bool
deep =
true
);
60
63
Molecule
(
const
String
& name);
64
67
virtual
~
Molecule
();
68
70
73
77
void
persistentWrite(
PersistenceManager
& pm,
const
char
* name = 0)
const
;
78
82
void
persistentRead(
PersistenceManager
& pm);
83
85
88
93
void
set
(
const
Molecule
& molecule,
bool
deep =
true
);
94
98
Molecule
& operator = (
const
Molecule
& molecule);
99
104
void
get
(
Molecule
& molecule,
bool
deep =
true
)
const
;
105
109
void
swap(
Molecule
& molecule);
110
112
115
119
System
* getSystem();
120
124
const
System
* getSystem()
const
;
125
129
void
prepend(
Atom
& atom);
130
134
void
append(
Atom
& atom);
135
139
void
insert(
Atom
& atom);
140
145
void
insertBefore(
Atom
& atom,
Composite
& before);
146
151
void
insertAfter(
Atom
& atom,
Composite
& after);
152
156
bool
remove
(
Atom
& atom);
157
161
void
prepend(
AtomContainer
& atom_container);
162
166
void
append(
AtomContainer
& atom_container);
167
171
void
insert(
AtomContainer
& atom_container);
172
177
void
insertBefore(
AtomContainer
& atom_container,
Composite
& before);
178
183
void
insertAfter(
AtomContainer
& atom_container,
Composite
& after);
184
188
void
spliceBefore(
AtomContainer
& atom_container);
189
193
void
spliceAfter(
AtomContainer
& atom_container);
194
200
void
splice(
AtomContainer
& atom_container);
201
205
bool
remove
(
AtomContainer
& atom_container);
206
208
211
218
virtual
void
dump(std::ostream& s = std::cout,
Size
depth = 0)
const
;
219
221
226
bool
operator == (
const
Molecule
& molecule)
const
;
227
231
bool
operator != (
const
Molecule
& molecule)
const
;
232
233
234
BALL_KERNEL_DEFINE_ITERATOR_CREATORS
(
Fragment
)
235
236
237
protected:
238
239
Molecule
* getMolecule();
240
241
const
Molecule
* getMolecule() const;
242
243
AtomContainer
* getSuperAtomContainer();
244
245
const
AtomContainer
* getSuperAtomContainer() const;
246
247
void
prepend(
Molecule
& molecule);
248
249
void
append(
Molecule
& molecule);
250
251
void
insert(
Molecule
& molecule);
252
253
void
insertBefore(
Molecule
& molecule,
Composite
& composite);
254
255
void
insertAfter(
Molecule
& molecule,
Composite
& composite);
256
257
bool
remove(
Molecule
& molecule);
258
259
bool
isSubAtomContainerOf(const
AtomContainer
& atom_container) const;
260
};
261
}
// namespace BALL
262
263
#endif // BALL_KERNEL_MOLECULE_H
Generated by
1.8.3.1