704cb89e4469c974b772e684c2ab9daedd368f88
[mussa.git] / alg / sequence_location.cpp
1 #include "alg/sequence_location.hpp"
2     
3 SequenceLocation::SequenceLocation(
4     const boost::shared_ptr<Sequence> s, 
5     int l, 
6     int r
7 ) : sequence(s), 
8     left(l), 
9     right(r)
10 {
11 }
12
13 SequenceLocation::SequenceLocation(
14     const Sequence& s, 
15     int l, 
16     int r
17 ) : left(l), 
18     right(r)
19 {
20   boost::shared_ptr<Sequence> copy(new Sequence(s));
21   sequence = copy;
22 }
23
24
25 SequenceLocation::SequenceLocation(const SequenceLocation& o) 
26   : sequence(o.sequence),
27     left(o.left),
28     right(o.right)
29 {
30 }
31
32 SequenceLocation& SequenceLocation::operator=(const SequenceLocation& o)
33 {
34   if (this != &o) {
35     sequence = o.sequence;
36     left = o.getLeft();
37     right = o.getRight();
38   }
39   return *this;
40 }
41
42
43 const Sequence& SequenceLocation::getSequence() const
44 {
45   return *sequence;
46 }
47
48 Sequence SequenceLocation::getSelectedSequence() const
49 {
50   return sequence->subseq(getLeft(), getCount());
51 }
52
53 void SequenceLocation::setLeft(int l)
54 {
55   left = l;
56 }
57
58 int SequenceLocation::getLeft() const
59 {
60   return left;
61 }
62
63 void SequenceLocation::setCount(int c)
64 {
65   right = left + c;
66 }
67
68 int SequenceLocation::getCount() const
69 {
70   return right - left;
71 }
72
73 void SequenceLocation::setRight(int r)
74 {
75   right = r;
76 }
77
78 int SequenceLocation::getRight() const
79 {
80   return right;
81 }