X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=src%2Freverseaction.h;h=e0857803518b2d4aa5acaa72f0c7cfe89f41bf4f;hb=43b1052d74a207fe667b75e41d0c70c1189c2cc8;hp=006c9eb4de9df4446b27ccaee6da4068d435a4a2;hpb=6ed5c4682ee599c7d03d8c67dcca3ac4033a63ec;p=germs.git diff --git a/src/reverseaction.h b/src/reverseaction.h index 006c9eb..e085780 100644 --- a/src/reverseaction.h +++ b/src/reverseaction.h @@ -23,6 +23,7 @@ #include "sortaction.h" #include "genealgorithms.h" +#include "geneorder.h" #include #include @@ -32,15 +33,16 @@ * * \author Michael Andreen */ -class ReverseAction : public SortAction{ +class ReverseAction : public SortActionImpl{ public: /** * Creates a new reverse action for the interval [i,j] */ - ReverseAction(size_t i, size_t j): SortAction(0),_i(i),_j(j){ + ReverseAction(size_t i, size_t j): _i(i),_j(j){ } - ReverseAction(Interval i): SortAction(0){ + + ReverseAction(Interval i){ _i = std::min(i.first,i.second); _j = std::max(i.first,i.second)-1; } @@ -53,7 +55,7 @@ class ReverseAction : public SortAction{ return go; } - virtual bool operator==(const SortAction& sa) const{ + virtual bool operator==(const SortActionImpl& sa) const{ if (const ReverseAction* psa = dynamic_cast(&sa)){ if (_i == psa->_i && _j == psa->_j) return true; @@ -69,6 +71,15 @@ class ReverseAction : public SortAction{ os << "[" << _i << "," << _j << "]"; return os.str(); } + + size_t i() const{ + return _i; + } + size_t j() const{ + return _j; + } + + private: size_t _i; size_t _j;