BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
geometricProperties.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_STRUCTURE_GEOMETRICPROPERTIES_H
6 #define BALL_STRUCTURE_GEOMETRICPROPERTIES_H
7 
8 #ifndef BALL_COMMON_H
9 # include <BALL/common.h>
10 #endif
11 
12 #ifndef BALL_MATHS_VECTOR3_H
13 # include <BALL/MATHS/vector3.h>
14 #endif
15 
16 #ifndef BALL_MATHS_SIMPLEBOX3_H
17 # include <BALL/MATHS/simpleBox3.h>
18 #endif
19 
20 #ifndef BALL_KERNEL_ATOM_H
21 # include <BALL/KERNEL/atom.h>
22 #endif
23 
24 #ifndef BALL_KERNEL_FRAGMENT_H
25 # include <BALL/KERNEL/fragment.h>
26 #endif
27 
28 #ifndef BALL_CONCEPT_PROCESSOR_H
29 # include <BALL/CONCEPT/processor.h>
30 #endif
31 
32 #ifndef BALL_DATATYPE_STRING_H
33 # include <BALL/DATATYPE/string.h>
34 #endif
35 
36 #include <vector>
37 
38 namespace BALL
39 {
40 
57  : public UnaryProcessor<Atom>
58  {
59  public:
60 
64 
67  virtual bool start()
68  ;
69 
72  virtual bool finish()
73  ;
74 
77  virtual Processor::Result operator () (Atom& atom)
78  { return operator() (atom.getPosition());}
79 
82  virtual Processor::Result operator () (const Vector3& v)
83  ;
84 
85 
87 
90 
93  SimpleBox3 getBox() const
94  ;
95 
98  const Vector3& getLower() const
99  ;
100 
103  const Vector3& getUpper() const
104  ;
105 
107 
108  private:
109 
112  };
113 
125  : public UnaryProcessor<Atom>
126  {
127  public:
128 
132 
135  virtual bool start()
136  ;
137 
140  virtual bool finish()
141  ;
142 
145  virtual Processor::Result operator()(Atom& atom)
146  { return operator()(atom.getPosition());}
147 
150  virtual Processor::Result operator()(const Vector3& v)
151  ;
152 
154 
157 
160  Vector3& getCenter()
161  ;
162 
164 
165  private:
166 
169  };
170 
171 
190  : public UnaryProcessor<Composite>
191  {
192  public:
193 
197 
201  ;
202 
207  FragmentDistanceCollector(const Composite& composite)
208  ;
209 
215  FragmentDistanceCollector(const Composite& composite, float distance)
216  ;
217 
219 
220  {}
221 
223 
226 
229  virtual bool start()
230  ;
231 
234  virtual bool finish()
235  ;
236 
239  virtual Processor::Result operator()(Composite& composite)
240  ;
241 
243 
246 
250  Size getNumberOfFragments()
251  ;
252 
256  void setComposite(const Composite& composite)
257  ;
258 
262  const Composite* getComposite() const
263  ;
264 
268  float getDistance() const
269  ;
270 
274  void setDistance(float distance)
275  ;
276 
278 
281  std::vector<Fragment*> fragments;
282 
283 
284  protected:
285 
286  std::vector<Fragment*> all_fragments_;
289  };
290 
291 
293 
297 
300  BALL_EXPORT Angle calculateTorsionAngle(const Atom& a1, const Atom& a2, const Atom& a3, const Atom& a4)
302 
311  BALL_EXPORT bool setTorsionAngle(const Atom& a1, const Atom& a2, Atom& a3, const Atom& a4, Angle angle);
312 
315  BALL_EXPORT Angle calculateBondAngle(const Atom& a1, const Atom& a2, const Atom& a3)
317 
319 } // namespace BALL
320 
321 #endif // BALL_STRUCTURE_GEOMETRICPROPERTIES_H