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
atomContainer.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_ATOMCONTAINER_H
6
#define BALL_KERNEL_ATOMCONTAINER_H
7
8
#ifndef BALL_KERNEL_ATOMITERATOR_H
9
# include <
BALL/KERNEL/atomIterator.h
>
10
#endif
11
12
#ifndef BALL_KERNEL_ATOMCONTAINERITERATOR_H
13
# include <
BALL/KERNEL/atomContainerIterator.h
>
14
#endif
15
16
17
#define BALL_ATOMCONTAINER_DEFAULT_NAME ""
18
19
namespace
BALL
20
{
21
class
Molecule;
22
30
class
BALL_EXPORT
AtomContainer
31
:
public
Composite
,
32
public
PropertyManager
33
{
34
public
:
35
36
BALL_CREATE_DEEP
(
AtomContainer
)
37
38
41
43
enum
Property
44
{
46
NUMBER_OF_PROPERTIES = 0
47
};
48
50
53
56
AtomContainer
();
57
62
AtomContainer
(
const
AtomContainer
& atom_container,
bool
deep =
true
);
63
67
AtomContainer
(
const
String
& name);
68
71
virtual
~
AtomContainer
();
72
77
virtual
void
clear();
78
83
virtual
void
destroy();
84
86
89
93
virtual
void
persistentWrite(
PersistenceManager
& pm,
const
char
* name = 0)
const
;
94
98
virtual
void
persistentRead(
PersistenceManager
& pm);
99
101
104
111
void
set
(
const
AtomContainer
& atom_container,
bool
deep =
true
);
112
119
AtomContainer
& operator = (
const
AtomContainer
& atom_container);
120
126
void
get
(
AtomContainer
& atom_container,
bool
deep =
true
)
const
;
127
131
void
swap(
AtomContainer
& atom_container);
132
134
137
141
bool
operator == (
const
AtomContainer
& atom_container)
const
;
142
146
bool
operator != (
const
AtomContainer
& atom_container)
const
;
147
149
152
156
void
setName(
const
String
& name);
157
161
const
String
&
getName
()
const
;
162
167
AtomContainer
* getSuperAtomContainer();
168
173
const
AtomContainer
* getSuperAtomContainer()
const
;
174
181
AtomContainer
* getAtomContainer(
Position
position);
182
189
const
AtomContainer
* getAtomContainer(
Position
position)
const
;
190
197
Atom
* getAtom(
Position
position);
198
205
const
Atom
* getAtom(
Position
position)
const
;
206
213
Atom
* getAtom(
const
String
& name);
214
221
const
Atom
* getAtom(
const
String
& name)
const
;
222
226
Size
countAtomContainers()
const
;
227
231
Size
countAtoms()
const
;
232
236
Size
countBonds()
const
;
237
241
Size
countInterBonds()
const
;
242
246
Size
countIntraBonds()
const
;
247
251
void
prepend(
Atom
& atom);
252
256
void
append(
Atom
& atom);
257
261
void
insert(
Atom
& atom);
262
267
void
insertBefore(
Atom
& atom,
Composite
& before);
268
273
void
insertAfter(
Atom
& atom,
Composite
& after);
274
278
bool
remove
(
Atom
& atom);
279
280
Size
removeHavingProperty(
BALL::Property
p);
281
Size
removeNotHavingProperty(
BALL::Property
p);
282
Size
removeHavingProperty(
const
string
& name);
283
Size
removeNotHavingProperty(
const
string
& name);
284
288
void
prepend(
AtomContainer
& atom_container);
289
293
void
append(
AtomContainer
& atom_container);
294
298
void
insert(
AtomContainer
& atom_container);
299
304
void
insertBefore(
AtomContainer
& atom_container,
Composite
& before);
305
310
void
insertAfter(
AtomContainer
& atom_container,
Composite
& after);
311
316
void
spliceBefore(
AtomContainer
& atom_container);
317
322
void
spliceAfter(
AtomContainer
& atom_container);
323
329
void
splice(
AtomContainer
& atom_container);
330
335
bool
remove
(
AtomContainer
& atom_container);
336
338
341
344
void
destroyBonds();
345
347
350
354
bool
isSubAtomContainerOf(
const
AtomContainer
& atom_container)
const
;
355
359
bool
isSuperAtomContainerOf(
const
AtomContainer
& atom_container)
const
;
360
362
365
371
virtual
bool
isValid()
const
;
372
379
virtual
void
dump(std::ostream& s = std::cout,
Size
depth = 0)
const
;
380
382
385
387
bool
applyIntraBond(
UnaryProcessor<Bond>
& processor);
388
390
bool
applyInterBond(
UnaryProcessor<Bond>
& processor);
391
393
394
// --- EXTERNAL ITERATORS
395
396
BALL_KERNEL_DEFINE_ITERATOR_CREATORS
(
Atom
)
397
BALL_KERNEL_DEFINE_ITERATOR_CREATORS
(
AtomContainer
)
398
399
400
private:
401
402
/*_ The name of this container
403
*/
404
String
name_;
405
406
};
407
}
// namespace BALL
408
409
#endif // BALL_KERNEL_ATOMCONTAINER_H
Generated by
1.8.3.1