#ifndef __GENESORTER_H__
#define __GENESORTER_H__
-#include "geneorder.h"
-#include "sortaction.h"
-
#include <vector>
+class SortAction;
+class GeneOrder;
+class Model;
/**
- * Abstract baseclass for different gene sorters.
+ * Sorts genes
+ *
* \author Michael Andreen
*/
class GeneSorter{
* Takes a GeneOrder, finds the actions to transform it into a sorted
* permutation and returns the list with required actions.
*/
- virtual ActionList sort(const GeneOrder& go1) = 0;
+ ActionList sort(const GeneOrder& go1, const Model& m);
/**
* Find the safe actions for this GeneOrder.
*/
- virtual ActionList safeActions(const GeneOrder& go1) = 0;
+ ActionList safeActions(const GeneOrder& go1);
+
+ /**
+ * Calculates the score for an action given a gene order
+ */
+ size_t scoreAction(const GeneOrder& go, SortAction& sa);
- virtual ~GeneSorter(){};
+ ~GeneSorter(){};
};
#endif