1 #include "position.hpp"
10 Position::Position (int initial_position)
11 : major_(initial_position)
14 // Intentionally Empty
17 bool Position::operator== (const Position& rhs) const
19 return (major_ == rhs.major_) && (minor_ == rhs.minor_);
22 bool Position::operator!= (const Position& rhs) const
24 return ! (*this == rhs);
27 Position& Position::operator+= (const float rhs)
30 int minor = (int)((rhs - major) * 10);
35 /* Check for overflow */
45 Position& Position::operator-= (const float rhs)
48 int minor = (int)((rhs - major) * 10);
53 /* Check for underflow */
63 bool Position::operator< (const Position& rhs) const
65 if (major_ < rhs.major_)
68 if (major_ == rhs.major_)
69 if (minor_ < rhs.minor_)
75 bool Position::operator> (const Position& rhs) const
77 if (major_ > rhs.major_)
80 if (major_ == rhs.major_)
81 if (minor_ > rhs.minor_)
87 Position Position::operator- (const Position& rhs) const
91 int major = major_ - rhs.major_;
92 int minor = minor_ - rhs.minor_;
94 /* Check for underflow */
107 Position::operator float() const
112 temp += minor_ / 10.0;
117 std::ostream& operator<< (std::ostream& os, const Position& rhs)
119 os << "Position(" << rhs.major_ << "." << rhs.minor_ << ")";
123 /* vim: set ts=4 sts=4 sw=4 noexpandtab textwidth=112: */