3aca443b4164352817ff84e5edfb7e6abe6477e5
[mussa.git] / alg / sequence_location.hpp
1 #ifndef _SEQUENCE_LOCATION_H_
2 #define _SEQUENCE_LOCATION_H_
3
4 #include <boost/shared_ptr.hpp>
5 #include "alg/sequence.hpp"
6
7 //! convenience structure for holding selected track segments
8 class SequenceLocation {
9   public:
10     SequenceLocation(boost::shared_ptr<Sequence> s, int l, int r);
11     SequenceLocation(const Sequence& s, int l, int r);
12     SequenceLocation(const SequenceLocation& );
13     SequenceLocation& operator=(const SequenceLocation&);
14
15     //! get the sequence we're selecting from
16     const Sequence& getSequence() const;
17     //! return the selected subsequence
18     Sequence getSelectedSequence() const;
19     void setLeft(int l);
20     int getLeft() const;
21     void setCount(int c);
22     int getCount() const ;
23     //! set one past the right-most base 
24     void setRight(int r);
25     int getRight() const;
26
27   private:
28     boost::shared_ptr<Sequence> sequence;
29     int left;
30     int right;
31   };
32 #endif