Stop inherits from Position
[cs356-p1-elevator.git] / position.cpp
1 #include "position.hpp"
2
3 Position::Position ()
4         : _major(0)
5         , _minor(0)
6 {
7         // Intentionally Empty
8 }
9
10 Position::Position (int initial_position)
11         : _major(initial_position)
12         , _minor(0)
13 {
14         // Intentionally Empty
15 }
16
17 bool Position::operator== (const Position& rhs)
18 {
19         return (_major == rhs._major) && (_minor == rhs._minor);
20 }
21
22
23 bool Position::operator== (const int rhs)
24 {
25         return (_major == rhs) && (_minor == 0);
26 }
27
28 Position& Position::operator+= (const float rhs)
29 {
30         int major = (int)rhs;
31         int minor = (int)((rhs - major) * 10);
32
33         _major += major;
34         _minor += minor;
35
36         return *this;
37 }
38
39 Position& Position::operator-= (const float rhs)
40 {
41         *this += -rhs;
42
43         return *this;
44 }
45
46 bool Position::operator< (const Position& rhs)
47 {
48         if (_major < rhs._major)
49                 return true;
50
51         if (_major == rhs._major)
52                 if (_minor < rhs._minor)
53                         return true;
54
55         return false;
56 }
57 #include <iostream>
58
59 bool Position::operator> (const Position& rhs)
60 {
61         if (_major > rhs._major)
62                 return true;
63
64         if (_major == rhs._major)
65                 if (_minor > rhs._minor)
66                         return true;
67
68         return false;
69 }
70
71
72 /* vim: set ts=4 sts=4 sw=4 noexpandtab textwidth=112: */