BWAPI
Skynet/Skynet/Region.cpp
Go to the documentation of this file.
00001 #include "Region.h"
00002 
00003 #include "Chokepoint.h"
00004 #include "Base.h"
00005 #include "TerrainAnaysis.h"
00006 
00007 RegionClass::RegionClass(Position center, int clearance)
00008         : mCenter(center)
00009         , mClearance(clearance)
00010 {
00011 }
00012 
00013 std::set<Chokepoint> RegionClass::getChokepoints() const
00014 {
00015         std::set<Chokepoint> chokepoints;
00016         for each(WeakChokepoint chokepoint in mChokepoints)
00017         {
00018                 chokepoints.insert(chokepoint.lock());
00019         }
00020         return chokepoints;
00021 }
00022 
00023 void RegionClass::addChokepointTile(WeakChokepoint chokepoint, TilePosition tile)
00024 {
00025         mChokePointToTiles[chokepoint] = tile;
00026         mChokePointTiles.insert(tile);
00027 }
00028 
00029 void RegionClass::addChokepoint(WeakChokepoint chokepoint)
00030 {
00031         mChokepoints.insert(chokepoint);
00032 }
00033 
00034 void RegionClass::draw(BWAPI::Color color)
00035 {
00036         BWAPI::Broodwar->drawCircle(BWAPI::CoordinateType::Map, mCenter.x(), mCenter.y(), 64, color);
00037         for each(WeakChokepoint chokepoint in mChokepoints)
00038         {
00039                 Chokepoint choke = chokepoint.lock();
00040                 BWAPI::Broodwar->drawLine(BWAPI::CoordinateType::Map, choke->getCenter().x(), choke->getCenter().y(), mCenter.x(), mCenter.y(), color);
00041         }
00042 }
00043 
00044 bool RegionClass::isConnected(Region region) const
00045 {
00046         return TerrainAnaysis::Instance().getWalkConnectivity(mCenter) == TerrainAnaysis::Instance().getWalkConnectivity(region->getCenter());
00047 }
00048 
00049 void RegionClass::removeChokepoint(WeakChokepoint chokepoint)
00050 {
00051         mChokepoints.erase(chokepoint);
00052         mChokePointTiles.erase(mChokePointToTiles[chokepoint]);
00053         mChokePointToTiles.erase(chokepoint);
00054 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines