BWAPI
|
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;