This repository has been archived on 2023-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
BWMirror-Generator/bwta2-c/BWTA.h
2015-02-27 21:29:33 +01:00

58 lines
2.5 KiB
C++

#pragma once
#include <BWAPI.h>
#include <BWTA/Chokepoint.h>
#include <BWTA/Polygon.h>
#include <BWTA/Region.h>
#include <BWTA/BaseLocation.h>
#include <BWTA/RectangleArray.h>
namespace BWTA
{
void readMap();
void analyze();
void computeDistanceTransform();
void balanceAnalysis();
int getMaxDistanceTransform();
RectangleArray<int>* getDistanceTransformMap();
const std::set<Region*>& getRegions();
const std::set<Chokepoint*>& getChokepoints();
const std::set<BaseLocation*>& getBaseLocations();
const std::set<BaseLocation*>& getStartLocations();
const std::set<Polygon*>& getUnwalkablePolygons();
BaseLocation* getStartLocation(BWAPI::Player player);
Region* getRegion(int x, int y);
Region* getRegion(BWAPI::TilePosition tileposition);
Region* getRegion(BWAPI::Position position);
Chokepoint* getNearestChokepoint(int x, int y);
Chokepoint* getNearestChokepoint(BWAPI::TilePosition tileposition);
Chokepoint* getNearestChokepoint(BWAPI::Position position);
BaseLocation* getNearestBaseLocation(int x, int y);
BaseLocation* getNearestBaseLocation(BWAPI::TilePosition tileposition);
BaseLocation* getNearestBaseLocation(BWAPI::Position position);
Polygon* getNearestUnwalkablePolygon(int x, int y);
Polygon* getNearestUnwalkablePolygon(BWAPI::TilePosition tileposition);
BWAPI::Position getNearestUnwalkablePosition(BWAPI::Position position);
bool isConnected(int x1, int y1, int x2, int y2);
bool isConnected(BWAPI::TilePosition a, BWAPI::TilePosition b);
double getGroundDistance(BWAPI::TilePosition start, BWAPI::TilePosition end);
std::pair<BWAPI::TilePosition, double> getNearestTilePosition(BWAPI::TilePosition start, const std::set<BWAPI::TilePosition>& targets);
std::map<BWAPI::TilePosition, double> getGroundDistances(BWAPI::TilePosition start, const std::set<BWAPI::TilePosition>& targets);
void getGroundDistanceMap(BWAPI::TilePosition start, RectangleArray<double>& distanceMap);
void getGroundWalkDistanceMap(int walkx, int walky, RectangleArray<double>& distanceMap);
std::vector<BWAPI::TilePosition> getShortestPath(BWAPI::TilePosition start, BWAPI::TilePosition end);
std::vector<BWAPI::TilePosition> getShortestPath(BWAPI::TilePosition start, const std::set<BWAPI::TilePosition>& targets);
// HPA* implementation
void buildChokeNodes();
std::list<Chokepoint*> getShortestPath2(BWAPI::TilePosition start, BWAPI::TilePosition target);
int getGroundDistance2(BWAPI::TilePosition start, BWAPI::TilePosition end);
}