#ifndef DIMENSION_HH
#define DIMENSION_HH
#include <iostream>
class Dimension {
public:
uint32_t width;
uint32_t height;
Dimension (uint32_t width, uint32_t height) : width(width), height(height) { }
};
class PositionDelta {
public:
uint32_t dx;
uint32_t dy;
PositionDelta (uint32_t dx, uint32_t dy) : dx(dx), dy(dy) { }
};
class Coordinate {
public:
uint32_t x;
uint32_t y;
Coordinate (uint32_t x, uint32_t y) : x(x), y(y) { }
Coordinate &operator+= (const PositionDelta &d) {
this->x += d.dx;
this->y += d.dy;
return *this;
}
uint32_t scaledX() {
// Scale the coordinate so that it
// matches the pixel resolution
return this->x/1;
}
uint32_t scaledY() {
return this->y/1;
}
};
std::ostream& operator<< (std::ostream &s, const Coordinate &c);
std::ostream& operator<< (std::ostream &s, const PositionDelta &c);
#endif