SequenceLocation::SequenceLocation(
const boost::shared_ptr<Sequence> s,
int l,
- int c
+ int r
) : sequence(s),
left(l),
- count(c)
+ right(r)
{
}
SequenceLocation::SequenceLocation(
const Sequence& s,
int l,
- int c
+ int r
) : left(l),
- count(c)
+ right(r)
{
boost::shared_ptr<Sequence> copy(new Sequence(s));
sequence = copy;
SequenceLocation::SequenceLocation(const SequenceLocation& o)
: sequence(o.sequence),
left(o.left),
- count(o.count)
+ right(o.right)
{
}
{
if (this != &o) {
sequence = o.sequence;
- left = o.left;
- count = o.count;
+ left = o.getLeft();
+ right = o.getRight();
}
return *this;
}
Sequence SequenceLocation::getSelectedSequence() const
{
- return sequence->subseq(left, count);
+ return sequence->subseq(getLeft(), getCount());
}
void SequenceLocation::setLeft(int l)
void SequenceLocation::setCount(int c)
{
- count = c;
+ right = left + c;
}
int SequenceLocation::getCount() const
{
- return count;
+ return right - left;
}
void SequenceLocation::setRight(int r)
{
- count = r-left;
+ right = r;
}
int SequenceLocation::getRight() const
{
- return left+count;
+ return right;
}
//! convenience structure for holding selected track segments
class SequenceLocation {
public:
- SequenceLocation(boost::shared_ptr<Sequence> s, int l, int c);
- SequenceLocation(const Sequence& s, int l, int c);
+ SequenceLocation(boost::shared_ptr<Sequence> s, int l, int r);
+ SequenceLocation(const Sequence& s, int l, int r);
SequenceLocation(const SequenceLocation& );
SequenceLocation& operator=(const SequenceLocation&);
int getLeft() const;
void setCount(int c);
int getCount() const ;
+ //! set one past the right-most base
void setRight(int r);
int getRight() const;
private:
boost::shared_ptr<Sequence> sequence;
int left;
- int count;
+ int right;
};
#endif