BWAPI
Skynet/Skynet/Region.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Interface.h"
00004 
00005 class ChokepointClass;
00006 typedef std::tr1::shared_ptr<ChokepointClass> Chokepoint;
00007 typedef std::tr1::weak_ptr<ChokepointClass> WeakChokepoint;
00008 
00009 class BaseClass;
00010 typedef std::tr1::shared_ptr<BaseClass> Base;
00011 
00012 class RegionClass
00013 {
00014 public:
00015         RegionClass(Position center, int clearance);
00016 
00017         std::set<Chokepoint> getChokepoints() const;
00018 
00019         void addChokepoint(WeakChokepoint chokepoint);
00020         void addChokepointTile(WeakChokepoint chokepoint, TilePosition tile);
00021 
00022         const std::set<TilePosition> &getChokepointTiles() { return mChokePointTiles; }
00023 
00024         void addBase(Base base) { mBases.insert(base); }
00025         const std::set<Base> &getBases() const { return mBases; }
00026 
00027         const Position &getCenter() const { return mCenter; }
00028         int getClearance() const { return mClearance; }
00029 
00030         bool isConnected(std::tr1::shared_ptr<RegionClass> region) const;
00031 
00032         void setSize(int size) { mSize = size; }
00033         int getSize() const { return mSize; }
00034 
00035         void draw(BWAPI::Color color);
00036 
00037         void removeChokepoint(WeakChokepoint chokepoint);
00038 
00039 private:
00040         Position mCenter;
00041         int mClearance;
00042         int mSize;
00043 
00044         std::set<WeakChokepoint> mChokepoints;
00045         std::map<WeakChokepoint, TilePosition> mChokePointToTiles;
00046         std::set<TilePosition> mChokePointTiles;
00047 
00048         std::set<Base> mBases;
00049 };
00050 
00051 typedef std::tr1::shared_ptr<RegionClass> Region;
00052 typedef std::tr1::weak_ptr<RegionClass> WeakRegion;
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines