BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
KERNEL/system.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_SYSTEM_H
6 #define BALL_KERNEL_SYSTEM_H
7 
8 #ifndef BALL_KERNEL_ATOM_H
10 #endif
11 
12 #ifndef BALL_KERNEL_MOLECULEITERATOR_H
14 #endif
15 
16 #ifndef BALL_KERNEL_PROTEINITERATOR_H
18 #endif
19 
20 #ifndef BALL_KERNEL_NUCLEICACIDITERATOR_H
22 #endif
23 
24 #ifndef BALL_KERNEL_NUCLEOTIDEIDITERATOR_H
26 #endif
27 
28 #define BALL_SYSTEM_DEFAULT_NAME ""
29 
30 namespace BALL
31 {
39  : public AtomContainer
40  {
41  public:
42 
44 
45 
48 
50  System();
51 
53  System(const System& system, bool deep = true);
54 
56  System(const String& name);
57 
59  virtual ~System();
60 
62 
65 
69  void persistentWrite(PersistenceManager& pm, const char* name = 0) const;
70 
74  void persistentRead(PersistenceManager& pm);
75 
77 
80 
86  void set(const System& system, bool deep = true);
87 
92  System& operator = (const System& system);
93 
98  void get(System& system, bool deep = true) const;
99 
101 
106  bool operator == (const System& system) const;
107 
111  bool operator != (const System& system) const;
112 
116 
125  Molecule* getMolecule(Position position);
126 
135  const Molecule* getMolecule(Position position) const;
136 
145  Protein* getProtein(Position position);
146 
155  const Protein* getProtein(Position position) const;
156 
160  Size countMolecules() const;
161 
165  Size countFragments() const;
166 
170  Size countAtoms() const;
171 
175  Size countProteins() const;
176 
180  Size countChains() const;
181 
185  Size countSecondaryStructures() const;
186 
190  Size countResidues() const;
191 
195  Size countNucleicAcids() const;
196 
200  Size countNucleotides() const;
201 
205  void prepend(Molecule& molecule);
206 
210  void append(Molecule& molecule);
211 
215  void insert(Molecule& molecule);
216 
221  void insertBefore(Molecule& molecule, Composite& before);
222 
227  void insertAfter(Molecule& molecule, Composite& after);
228 
232  bool remove(Molecule& molecule);
233 
238  void spliceBefore(System& system);
239 
244  void spliceAfter(System& system);
245 
249  void splice(System& system);
250 
252 
253  // --- EXTERNAL ITERATORS ---
254 
265 
266  };
267 } // namespace BALL
268 
269 #endif // BALL_KERNEL_SYSTEM_H