Getting closer to a subanalysis mode
[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 c
7 ) : sequence(s), 
8     left(l), 
9     count(c)
10 {
11 }
12
13 SequenceLocation::SequenceLocation(
14     const Sequence& s, 
15     int l, 
16     int c
17 ) : left(l), 
18     count(c)
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     count(o.count)
29 {
30 }
31
32 SequenceLocation& SequenceLocation::operator=(const SequenceLocation& o)
33 {
34   if (this != &o) {
35     sequence = o.sequence;
36     left = o.left;
37     count = o.count;
38   }
39   return *this;
40 }
41
42
43 const Sequence& SequenceLocation::getSequence() const
44 {
45   return *sequence;
46 }
47
48 void SequenceLocation::setLeft(int l)
49 {
50   left = l;
51 }
52
53 int SequenceLocation::getLeft() const
54 {
55   return left;
56 }
57
58 void SequenceLocation::setCount(int c)
59 {
60   count = c;
61 }
62
63 int SequenceLocation::getCount() const
64 {
65   return count;
66 }
67
68 void SequenceLocation::setRight(int r)
69 {
70   count = r-left;
71 }
72
73 int SequenceLocation::getRight() const
74 {
75   return left+count;
76 }