squaregrid.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef FIFE_MODEL_GRIDS_SQUAREGRID_H
00023 #define FIFE_MODEL_GRIDS_SQUAREGRID_H
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #include "cellgrid.h"
00034
00035 namespace FIFE {
00036 class SquareGrid: public CellGrid {
00037 public:
00038 SquareGrid(bool allow_diagonals=false);
00039 virtual ~SquareGrid();
00040
00041 const std::string& getType() const;
00042 const std::string& getName() const;
00043 bool isAccessible(const ModelCoordinate& curpos, const ModelCoordinate& target);
00044 float getAdjacentCost(const ModelCoordinate& curpos, const ModelCoordinate& target);
00045 unsigned int getCellSideCount() const { return 4; }
00046 ExactModelCoordinate toMapCoordinates(const ExactModelCoordinate& layer_coords);
00047 ModelCoordinate toLayerCoordinates(const ExactModelCoordinate& map_coord);
00048 ExactModelCoordinate toExactLayerCoordinates(const ExactModelCoordinate& map_coord);
00049 void getVertices(std::vector<ExactModelCoordinate>& vtx, const ModelCoordinate& cell);
00050 CellGrid* clone();
00051
00052 private:
00053 bool isAccessibleDiagonal(const ModelCoordinate& curpos, const ModelCoordinate& target);
00054 };
00055 }
00056
00057 #endif