BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
10 #endif
11 
12 #ifndef BALL_KERNEL_ATOMCONTAINERITERATOR_H
14 #endif
15 
16 #define BALL_ATOMCONTAINER_DEFAULT_NAME ""
17 
18 namespace BALL
19 {
20  class Molecule;
21 
30  : public Composite,
31  public PropertyManager
32  {
33  public:
34 
36 
37 
40 
42  enum Property
43  {
45  NUMBER_OF_PROPERTIES = 0
46  };
47 
49 
52 
55  AtomContainer();
56 
61  AtomContainer(const AtomContainer& atom_container, bool deep = true);
62 
66  AtomContainer(const String& name);
67 
70  virtual ~AtomContainer();
71 
76  virtual void clear();
77 
82  virtual void destroy();
83 
85 
88 
92  virtual void persistentWrite(PersistenceManager& pm, const char* name = 0) const;
93 
97  virtual void persistentRead(PersistenceManager& pm);
98 
100 
103 
110  void set(const AtomContainer& atom_container, bool deep = true);
111 
118  AtomContainer& operator = (const AtomContainer& atom_container);
119 
125  void get(AtomContainer& atom_container, bool deep = true) const;
126 
130  void swap(AtomContainer& atom_container);
131 
133 
136 
140  bool operator == (const AtomContainer& atom_container) const;
141 
145  bool operator != (const AtomContainer& atom_container) const;
146 
148 
151 
155  void setName(const String& name);
156 
160  const String& getName() const;
161 
166  AtomContainer* getSuperAtomContainer();
167 
172  const AtomContainer* getSuperAtomContainer() const;
173 
180  AtomContainer* getAtomContainer(Position position);
181 
188  const AtomContainer* getAtomContainer(Position position) const;
189 
196  Atom* getAtom(Position position);
197 
204  const Atom* getAtom(Position position) const;
205 
212  Atom* getAtom(const String& name);
213 
220  const Atom* getAtom(const String& name) const;
221 
225  Size countAtomContainers() const;
226 
230  Size countAtoms() const;
231 
235  Size countBonds() const;
236 
240  Size countInterBonds() const;
241 
245  Size countIntraBonds() const;
246 
250  void prepend(Atom& atom);
251 
255  void append(Atom& atom);
256 
260  void insert(Atom& atom);
261 
266  void insertBefore(Atom& atom, Composite& before);
267 
272  void insertAfter(Atom& atom, Composite& after);
273 
277  bool remove(Atom& atom);
278 
279  Size removeHavingProperty(BALL::Property p);
280  Size removeNotHavingProperty(BALL::Property p);
281  Size removeHavingProperty(const string& name);
282  Size removeNotHavingProperty(const string& name);
283 
287  void prepend(AtomContainer& atom_container);
288 
292  void append(AtomContainer& atom_container);
293 
297  void insert(AtomContainer& atom_container);
298 
303  void insertBefore(AtomContainer& atom_container, Composite& before);
304 
309  void insertAfter(AtomContainer& atom_container, Composite& after);
310 
315  void spliceBefore(AtomContainer& atom_container);
316 
321  void spliceAfter(AtomContainer& atom_container);
322 
328  void splice(AtomContainer& atom_container);
329 
334  bool remove(AtomContainer& atom_container);
335 
337 
340 
343  void destroyBonds();
344 
346 
349 
353  bool isSubAtomContainerOf(const AtomContainer& atom_container) const;
354 
358  bool isSuperAtomContainerOf(const AtomContainer& atom_container) const;
359 
361 
364 
370  virtual bool isValid() const;
371 
378  virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;
379 
381 
384 
386  bool applyIntraBond(UnaryProcessor<Bond>& processor);
387 
389  bool applyInterBond(UnaryProcessor<Bond>& processor);
390 
392 
393  // --- EXTERNAL ITERATORS
394 
397 
399  BALL_DECLARE_STD_ITERATOR_WRAPPER(AtomContainer, AtomContainer, atomContainers)
400 
401  private:
402 
403  /*_ The name of this container
404  */
405  String name_;
406 
407  };
408 
409 } // namespace BALL
410 
411 #endif // BALL_KERNEL_ATOMCONTAINER_H
#define BALL_KERNEL_DEFINE_ITERATOR_CREATORS(Type)
Definition: iterator.h:25
BALL_EXPORT AtomList atoms(const AtomContainer &fragment, const String &expression=String())
Property
The number of predefined properties for AtomContainer.
Definition: atomContainer.h:42
BALL_EXPORT bool operator!=(const String &s1, const String &s2)
const char * getName()
Definition: rtti.h:97
#define BALL_CREATE_DEEP(name)
Definition: create.h:26
#define BALL_DECLARE_STD_ITERATOR_WRAPPER(container, type, method_name)
BALL_EXPORT bool operator==(const String &s1, const String &s2)
BALL_EXPORT AtomContainerList atomContainers(const AtomContainer &fragment, bool selected_only=false)
#define BALL_EXPORT
Definition: COMMON/global.h:50