BALL 1.5.0
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
10#endif
11
12#ifndef BALL_KERNEL_FRAGMENT_H
13# include <BALL/KERNEL/fragment.h>
14#endif
15
16#ifndef BALL_KERNEL_FRAGMENTITERATOR_H
18#endif
19
20namespace BALL
21{
22 class System;
23
30 : public AtomContainer
31 {
32 public:
33
35
36
39
40
43 {
45 NUMBER_OF_PROPERTIES
46 };
47
49
52
56
59 Molecule(const Molecule& molecule, bool deep = true);
60
63 Molecule(const AtomContainer& atomContainer, bool deep = true);
64
67 Molecule(const String& name);
68
71 virtual ~Molecule();
72
74
77
81 void persistentWrite(PersistenceManager& pm, const char* name = 0) const;
82
87
89
92
97 void set(const Molecule& molecule, bool deep = true);
98
102 Molecule& operator = (const Molecule& molecule);
103
108 void get(Molecule& molecule, bool deep = true) const;
109
113 void swap(Molecule& molecule);
114
116
119
124
128 const System* getSystem() const;
129
133 void prepend(Atom& atom);
134
138 void append(Atom& atom);
139
143 void insert(Atom& atom);
144
149 void insertBefore(Atom& atom, Composite& before);
150
155 void insertAfter(Atom& atom, Composite& after);
156
160 bool remove(Atom& atom);
161
165 void prepend(AtomContainer& atom_container);
166
170 void append(AtomContainer& atom_container);
171
175 void insert(AtomContainer& atom_container);
176
181 void insertBefore(AtomContainer& atom_container, Composite& before);
182
187 void insertAfter(AtomContainer& atom_container, Composite& after);
188
192 void spliceBefore(AtomContainer& atom_container);
193
197 void spliceAfter(AtomContainer& atom_container);
198
204 void splice(AtomContainer& atom_container);
205
209 bool remove(AtomContainer& atom_container);
210
212
216 virtual bool isMolecule() const { return true; }
218
222
229 virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;
230
232
237 bool operator == (const Molecule& molecule) const;
238
242 bool operator != (const Molecule& molecule) const;
243
244
247
248
249 protected:
250
252
253 const Molecule* getMolecule() const;
254
256
258
259 void prepend(Molecule& molecule);
260
261 void append(Molecule& molecule);
262
263 void insert(Molecule& molecule);
264
265 void insertBefore(Molecule& molecule, Composite& composite);
266
267 void insertAfter(Molecule& molecule, Composite& composite);
268
269 bool remove(Molecule& molecule);
270
271 bool isSubAtomContainerOf(const AtomContainer& atom_container) const;
272 };
273} // namespace BALL
274
275#endif // BALL_KERNEL_MOLECULE_H
#define BALL_DECLARE_STD_ITERATOR_WRAPPER(container, type, method_name)
#define BALL_KERNEL_DEFINE_ITERATOR_CREATORS(Type)
Definition: iterator.h:25
#define BALL_CREATE_DEEP(name)
Definition: create.h:26
Definition: constants.h:13
BALL_EXPORT FragmentList fragments(const AtomContainer &fragment, bool selected_only=false)
BALL_EXPORT bool operator==(const String &s1, const String &s2)
BALL_EXPORT bool operator!=(const String &s1, const String &s2)
Property
The number of predefined properties for AtomContainer.
Definition: atomContainer.h:43
void persistentRead(PersistenceManager &pm)
virtual void dump(std::ostream &s=std::cout, Size depth=0) const
void persistentWrite(PersistenceManager &pm, const char *name=0) const
Molecule * getMolecule()
virtual ~Molecule()
void insertBefore(Molecule &molecule, Composite &composite)
const System * getSystem() const
void insert(AtomContainer &atom_container)
bool remove(Atom &atom)
void insertBefore(AtomContainer &atom_container, Composite &before)
void splice(AtomContainer &atom_container)
void prepend(Atom &atom)
void swap(Molecule &molecule)
void prepend(AtomContainer &atom_container)
bool remove(Molecule &molecule)
void set(const Molecule &molecule, bool deep=true)
void insert(Atom &atom)
void get(Molecule &molecule, bool deep=true) const
void append(Atom &atom)
Molecule(const String &name)
void append(Molecule &molecule)
Molecule(const AtomContainer &atomContainer, bool deep=true)
void insertAfter(AtomContainer &atom_container, Composite &after)
System * getSystem()
void insertAfter(Molecule &molecule, Composite &composite)
void insertBefore(Atom &atom, Composite &before)
void spliceBefore(AtomContainer &atom_container)
void insert(Molecule &molecule)
virtual bool isMolecule() const
Definition: molecule.h:216
Molecule(const Molecule &molecule, bool deep=true)
const Molecule * getMolecule() const
bool remove(AtomContainer &atom_container)
void append(AtomContainer &atom_container)
const AtomContainer * getSuperAtomContainer() const
void prepend(Molecule &molecule)
void insertAfter(Atom &atom, Composite &after)
void spliceAfter(AtomContainer &atom_container)
AtomContainer * getSuperAtomContainer()
bool isSubAtomContainerOf(const AtomContainer &atom_container) const
#define BALL_EXPORT
Definition: COMMON/global.h:50