MapViewModel.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * MapViewModel.h, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #pragma once
  11. #include "../lib/Rect.h"
  12. class MapViewModel
  13. {
  14. Point tileSize;
  15. Point viewCenter;
  16. Point viewDimensions;
  17. int mapLevel = 0;
  18. public:
  19. void setTileSize(const Point & newValue);
  20. void setViewCenter(const Point & newValue);
  21. void setViewDimensions(const Point & newValue);
  22. void setLevel(int newLevel);
  23. /// returns maximal possible size for a single tile
  24. Point getSingleTileSizeUpperLimit() const;
  25. /// returns minimal possible size for a single tile
  26. Point getSingleTileSizeLowerLimit() const;
  27. /// returns current size of map tile in pixels
  28. Point getSingleTileSize() const;
  29. /// returns center point of map view, in Map coordinates
  30. Point getMapViewCenter() const;
  31. /// returns total number of visible tiles
  32. Point getTilesVisibleDimensions() const;
  33. /// returns rect encompassing all visible tiles
  34. Rect getTilesTotalRect() const;
  35. /// returns required area in pixels of cache canvas
  36. Point getCacheDimensionsPixels() const;
  37. /// returns actual player-visible area
  38. Point getPixelsVisibleDimensions() const;
  39. /// returns area covered by specified tile in map cache
  40. Rect getCacheTileArea(const int3 & coordinates) const;
  41. /// returns area covered by specified tile in target view
  42. Rect getTargetTileArea(const int3 & coordinates) const;
  43. /// returns tile under specified position in target view
  44. int3 getTileAtPoint(const Point & position) const;
  45. /// returns currently visible map level
  46. int getLevel() const;
  47. };