BWAPI
Skynet/Skynet/BorderTracker.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Interface.h"
00004 
00005 #include "Singleton.h"
00006 #include "BorderPosition.h"
00007 
00008 class BorderTrackerClass
00009 {
00010 public:
00011         BorderTrackerClass(){}
00012 
00013         const std::map<PositionType, std::set<BorderPosition>>& getBorderPositions() const { return mBorderPositions; }
00014         const std::set<BorderPosition>& getBorderPositions(PositionType type) { return mBorderPositions[type]; }
00015 
00016         void onBegin();
00017         void update();
00018 
00019         void toggleDebugInfo() { mShowDebugInfo = !mShowDebugInfo; }
00020 
00021 private:
00022         void recalculateBorders();
00023 
00024         std::map<PositionType, std::set<BorderPosition>> mBorderPositions;
00025 
00026         std::set<Base> mMyBases;
00027         std::set<Base> mEnemyBases;
00028 
00029         std::set<Region> mMyRegions;
00030         std::set<Region> mMyForwardRegions;
00031         std::set<Region> mEnemyRegions;
00032 
00033         std::set<Chokepoint> mMyBorder;
00034         std::set<Chokepoint> mMyForwardBorder;
00035         std::set<Chokepoint> mEnemyBorder;
00036 
00037         bool mShowDebugInfo;
00038 
00039         std::set<Region> mLargeRegions;
00040 
00041         void drawDebugInfo(std::map<PositionType, std::set<BorderPosition>>::const_iterator it);
00042 };
00043 
00044 typedef Singleton<BorderTrackerClass> BorderTracker;
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines