BWAPI
Skynet/Skynet/Chokepoint.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Interface.h"
00004 
00005 class RegionClass;
00006 typedef std::tr1::shared_ptr<RegionClass> Region;
00007 typedef std::tr1::weak_ptr<RegionClass> WeakRegion;
00008 
00009 class ChokepointClass
00010 {
00011 public:
00012         ChokepointClass(Position side1, Position side2, int clearance);
00013 
00014         std::pair<Position, Position> getSides() { return mSides; }
00015         Position getCenter() { return mCenter; }
00016 
00017         std::pair<Region, Region> getRegions();
00018 
00019         const std::pair<TilePosition, TilePosition> &getBuildTiles() { return mChoketiles; }
00020         void addChokepointTile(WeakRegion region, TilePosition tile);
00021 
00022         void draw(BWAPI::Color color);
00023 
00024         void setRegion1(WeakRegion region) { mRegions.first = region; }
00025         void setRegion2(WeakRegion region) { mRegions.second = region; }
00026 
00027         int getClearance() const { return mClearance; }
00028 
00029 private:
00030         std::pair<WeakRegion, WeakRegion> mRegions;
00031 
00032         std::pair<TilePosition, TilePosition> mChoketiles;
00033 
00034         Position mCenter;
00035         std::pair<Position, Position> mSides;
00036         int mClearance;
00037 };
00038 
00039 typedef std::tr1::shared_ptr<ChokepointClass> Chokepoint;
00040 typedef std::tr1::weak_ptr<ChokepointClass> WeakChokepoint;
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines