Next version of JABA
[jabaws.git] / binaries / src / clustalw / src / tree / AlignmentSteps.h
1 /**
2  * Author: Mark Larkin
3  * 
4  * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson.  
5  */
6 /**
7  * The AlignmentSteps class is used to hold the progressive alignment steps that have
8  * been calculated from the guide tree.
9  *
10  * Note: I have pushed an empty vector onto steps, so that the steps will match up
11  * with the old sets array.
12  *
13  ***************************************************************************************/
14  
15 #ifndef ALIGNMENTSTEPS_H
16 #define ALIGNMENTSTEPS_H
17
18 #include <vector>
19 #include <string>
20 #include <iostream>
21
22 using namespace std;
23
24 namespace clustalw
25 {
26
27 class AlignmentSteps
28 {
29     public:
30         /* Functions */
31         AlignmentSteps() : numSteps(0){steps.push_back(vector<int>());}; // Empty vector 
32         void saveSet(int n, int *groups);
33         void saveSet(vector<int>* groups);
34         int getNumSteps();
35         string getNextStep();
36         void printAlignSteps();
37         const vector<vector<int> >* getSteps(){return &steps;};
38         vector<int>* getStep(int i){return &steps[i];};
39         void clear();
40         /* Attributes */
41
42     private:
43         /* Functions */
44         
45         /* Attributes */
46         vector<vector<int> > steps;
47         int numSteps;
48 };
49
50 }
51 #endif