BWAPI
SnippyHolloW-BroodwarBotQ-f01ab56/src/Regions/WalkTilePosition.h
Go to the documentation of this file.
00001 #pragma once
00002 #include <BWAPI.h>
00003 #include <math.h>
00004 
00005 class WalkTilePosition
00006 {
00007     public:
00008         WalkTilePosition()
00009             : _x(0), _y(0)
00010         { 
00011         }
00012         WalkTilePosition(const BWAPI::Position& position) 
00013             : _x(position.x() / 8), _y(position.y() / 8) // 8 pixels for a WalkTile
00014             //: _x((position.x() + 4)/ 8), _y((position.y()+4) / 8) // 8 pixels for a WalkTile
00015         {
00016         }
00017         WalkTilePosition(const BWAPI::TilePosition& tile)
00018             : _x(tile.x() * 4), _y(tile.y() * 4)
00019         {
00020         }
00021         WalkTilePosition(int x, int y) 
00022             : _x(x), _y(y)
00023         {
00024         }
00025         ~WalkTilePosition() { }
00026         bool operator == (const WalkTilePosition& walkTilePosition) const 
00027         {
00028             return (_x == walkTilePosition.x() && _y == walkTilePosition.y());
00029         }
00030         bool operator != (const WalkTilePosition& walkTilePosition) const
00031         {
00032             return (_x != walkTilePosition.x() || _y != walkTilePosition.y());
00033         }
00034         bool operator < (const WalkTilePosition& walkTilePosition) const
00035         {
00036             return (_x < walkTilePosition.x() ||
00037                    (_x == walkTilePosition.x() && _y < walkTilePosition.y()));
00038         }
00039         WalkTilePosition operator+ (const WalkTilePosition& position) const
00040         {
00041             return WalkTilePosition(_x + position.x(), _y + position.y());
00042         }
00043         WalkTilePosition operator- (const WalkTilePosition& position) const
00044         {
00045             return WalkTilePosition(_x - position.x(), _y - position.y());
00046         }
00047         WalkTilePosition operator+= (const WalkTilePosition& position)
00048         {
00049             _x += position.x();
00050             _y += position.y();
00051         }
00052         WalkTilePosition operator-= (const WalkTilePosition& position)
00053         {
00054             _x -= position.x();
00055             _y -= position.y();
00056         }
00057         double getDistance(const WalkTilePosition& position) const
00058         {
00059             double xx = _x - position.x();
00060             double yy = _y - position.y();
00061             return sqrt(xx*xx + yy*yy); // in WALKTILES!!
00062         }
00063         BWAPI::Position getPosition() const
00064         {
00065             return BWAPI::Position(8*_x + 4, 8*_y + 4);
00066         }
00067         // double getLength() const;
00068         int x() const
00069         {
00070             return _x;
00071         }
00072         int y() const
00073         {
00074             return _y;
00075         }
00076     private:
00077         int _x;
00078         int _y;
00079 };
00080 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines