BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
atomBondModelBaseProcessor.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: atomBondModelBaseProcessor.h,v 1.18 2005/12/23 17:02:17 amoll Exp $
5 //
6 
7 #ifndef BALL_VIEW_MODELS_ATOMBONDMODELBASEPROCESSOR_H
8 #define BALL_VIEW_MODELS_ATOMBONDMODELBASEPROCESSOR_H
9 
10 #ifndef BALL_DATATYPE_HASHSET_H
11 # include <BALL/DATATYPE/hashSet.h>
12 #endif
13 
14 #ifndef BALL_VIEW_MODELS_MODELPROCESSOR_H
16 #endif
17 
18 namespace BALL
19 {
20  class Atom;
21  class Bond;
22 
23  namespace VIEW
24  {
32  : public ModelProcessor
33  {
34  public:
35 
37 
38 
41 
46 
50 
53  virtual ~AtomBondModelBaseProcessor();
54 
62  virtual void clear();
63 
65 
68 
73  void set(const AtomBondModelBaseProcessor& processor);
74 
78  const AtomBondModelBaseProcessor& operator = (const AtomBondModelBaseProcessor& processor);
79 
81 
84 
92  virtual Processor::Result operator() (Composite& composite);
93 
95 
98 
106  virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;
107 
109  virtual void clearComposites();
110 
112  virtual bool createGeometricObjects();
113 
114  protected:
115 
117 
126 
132  void insertAtom_(const Atom* atom);
133 
136  void clearUsedAtoms_();
137 
140  std::list<const Atom*>& getAtomList_();
141 
144  HashSet<const Atom*>& getAtomSet_();
145 
151  void buildBondModels_();
152 
154 
155  virtual void visualiseBond_(const Bond& bond);
156 
157  virtual void visualiseRings_(){};
158 
159  vector<vector<Atom*> > rings_;
161 
162  private:
163 
164  std::list<const Atom*> used_atoms_;
166  };
167 
168 # ifndef BALL_NO_INLINE_FUNCTIONS
169 # include <BALL/VIEW/MODELS/atomBondModelBaseProcessor.iC>
170 # endif
171 
172 } } // namespaces
173 
174 #endif // BALL_VIEW_MODELS_ATOMBONDMODELBASEPROCESSOR_H