BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
reconstructFragmentProcessor.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_RECONSTRUCFRAGMENTPROCESSOR_H
6 #define BALL_STRUCTURE_RECONSTRUCFRAGMENTPROCESSOR_H
7 
8 #include <list>
9 
10 #ifndef BALL_COMMON_H
11 # include <BALL/common.h>
12 #endif
13 
14 #ifndef BALL_DATATYPE_TRIPLE_H
15 # include <BALL/DATATYPE/triple.h>
16 #endif
17 
18 #ifndef BALL_MATHS_MATRIX44_H
19 # include <BALL/MATHS/matrix44.h>
20 #endif
21 
22 #ifndef BALL_KERNEL_FRAGMENT_H
23 # include <BALL/KERNEL/fragment.h>
24 #endif
25 
26 namespace BALL
27 {
28  class FragmentDB;
29 
34  : public UnaryProcessor<Fragment>
35  {
36 
37  public:
38 
42 
49 
55 
59 
63 
65 
68 
71  virtual bool start();
72 
75  virtual bool finish();
76 
81  virtual Processor::Result operator() (Fragment&);
82 
84 
88 
91  list<Atom*>& getInsertedAtoms();
92 
95  Size getNumberOfInsertedAtoms() const;
96 
99  void setFragmentDB(const FragmentDB& fragment_db);
100 
103  const FragmentDB* getFragmentDB() const;
104 
106 
110  // ???? This should be replaced by the corresponding method in StructureMapper
111  // We don't need two implementations with the same code.
124  static Matrix4x4 mapThreeVectors
125  (const Vector3& w1, const Vector3& w2, const Vector3& w3,
126  const Vector3& v1, const Vector3& v2, const Vector3& v3);
127 
135  getTwoReferenceAtoms(const Atom& ref_center_atom, const HashSet<const Atom*>& allowed)
136  ;
137 
140  static list<Atom*> reconstructFragment(Fragment& frag, const Fragment& tplate);
142 
143  protected:
144 
145  /*_ @name Protected attributes
146  */
147  //_@{
148 
149  /*_ Pointer to the fragment DB
150  */
152 
153  /*_ List of atoms inserted during the last application of the processor.
154  */
155  list<Atom*> inserted_atoms_;
156  //_@}
157  };
158 
159 } // namespace BALL
160 
161 #endif // BALL_STRUCTURE_RECONSTRUCFRAGMENTPROCESSOR_H