Victor
 All Data Structures Functions Variables Friends Pages
Visitor.h
1 /* This file is part of Victor.
2 
3  Victor is free software: you can redistribute it and/or modify
4  it under the terms of the GNU General Public License as published by
5  the Free Software Foundation, either version 3 of the License, or
6  (at your option) any later version.
7 
8  Victor is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with Victor. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 #ifndef _VISITOR_H_
18 #define _VISITOR_H_
19 
20 // Includes:
21 #include <Debug.h>
22 
23 // Global constants, typedefs, etc. (to avoid):
24 
25 namespace Victor { namespace Biopool {
26 
27  class Group;
28  class SideChain;
29  class AminoAcid;
30  class Spacer;
31 
38  class EnergyVisitor {
39  public:
40 
41  // CONSTRUCTORS/DESTRUCTOR:
42 
43  EnergyVisitor() {
44  };
45 
46  virtual ~EnergyVisitor() {
47  };
48 
49  // MODIFIERS:
50  virtual void PrepareGroup(Group& group) = 0;
51  virtual void PrepareSideChain(SideChain& node) = 0;
52  virtual void PrepareAminoAcid(AminoAcid& node) = 0;
53  virtual void PrepareSpacer(Spacer& node) = 0;
54 
55  protected:
56 
57  private:
58 
59  };
60 
67  public:
68 
69  // CONSTRUCTORS/DESTRUCTOR:
70 
72  };
73  //
74 
75  virtual ~OptimizationVisitor() {
76  };
77 
78  // MODIFIERS:
79  virtual void PrepareGroup(Group& group) = 0;
80  virtual void PrepareSideChain(SideChain& node) = 0;
81  virtual void PrepareAminoAcid(AminoAcid& node) = 0;
82  virtual void PrepareSpacer(Spacer& node) = 0;
83 
84  protected:
85 
86  private:
87 
88  };
89 
90 }} //namespace
91 #endif //_SAVER_H_
This class implements a side chain.
Definition: SideChain.h:32
This class implements a simple chemical group.
Definition: Group.h:35
Base class implementing the visitor pattern.
Definition: Visitor.h:38
Base class Optimizacion Patter.
Definition: Visitor.h:66
It mplements a simple amino acid.
Definition: AminoAcid.h:43
Implements a "Spacer" for a protein chain. Includes methods to obtain values from the atoms and its p...
Definition: Spacer.h:42