Victor
 All Data Structures Functions Variables Friends Pages
SeqSaver.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 
18 #ifndef _SEQ_SAVER_H_
19 #define _SEQ_SAVER_H_
20 
21 // Includes:
22 #include <SideChain.h>
23 #include <AminoAcid.h>
24 #include <Spacer.h>
25 #include <Saver.h>
26 #include <Debug.h>
27 #include <string>
28 #include <iostream>
29 #include <Ligand.h>
30 
31 // Global constants, typedefs, etc. (to avoid):
32 
33 namespace Victor { namespace Biopool {
34 
35 
36  class SeqSaver : public Saver {
37  public:
38 
39  // CONSTRUCTORS/DESTRUCTOR:
40 
41  SeqSaver(ostream& _output = cout)
42  : output(_output), writeChi(true) {
43  }
44  // this class uses the implicit copy operator.
45 
46  virtual ~SeqSaver() {
47  PRINT_NAME;
48  }
49 
50  // MODIFIERS:
51 
52  void setWriteChi(bool _w) {
53  writeChi = _w;
54  }
55  virtual void saveSideChain(SideChain& sc, bool header = 1);
56  virtual void saveAminoAcid(AminoAcid& aa);
57  virtual void saveSpacer(Spacer& sp);
58  virtual void saveLigand(Ligand& l);
59 
60  protected:
61 
62  private:
63  ostream& output; // output stream
64  bool writeChi; // switch: write chi angles?
65  };
66 
67 }} //namespace
68 #endif //_SEQ_SAVER_H_