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 */
AlignmentSteps()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();
getSteps()37         const vector<vector<int> >* getSteps(){return &steps;};
getStep(int i)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
52