#pragma once #include #include #include namespace BWTA { class Chokepoint; class BaseLocation; class Region { public: virtual ~Region() {}; virtual const Polygon& getPolygon() const = 0; virtual const BWAPI::Position& getCenter() const = 0; virtual const std::set& getChokepoints() const = 0; virtual const std::set& getBaseLocations() const = 0; virtual bool isReachable(Region* region) const = 0; virtual const std::set& getReachableRegions() const = 0; virtual const int getMaxDistance() const = 0; }; }