src/proto2/Dimension.hh
author terom
Sat, 08 Nov 2008 21:25:56 +0000
changeset 23 8d802b573cf0
parent 6 faa4e777cc6e
child 24 b81cb670e6b2
permissions -rw-r--r--
fixed more network code, there's actually a high probability of it working now
#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