#ifndef HOLESOME_TRANSLATED_COORDINATES_H #define HOLESOME_TRANSLATED_COORDINATES_H #include #include "coordinates.h" #include "coordinate_transformer.h" class TranslatedCoordinates { public: explicit TranslatedCoordinates(WorldCoordinates worldCoordinates); explicit TranslatedCoordinates(GridCoordinates gridCoordinates); [[nodiscard]] WorldCoordinates world() const; [[nodiscard]] IsometricCoordinates isometric() const; [[nodiscard]] GridCoordinates grid() const; void setWorld(WorldCoordinates newWorldCoordinates); void setTranslated(const TranslatedCoordinates& newCoordinates); void setIsometric(IsometricCoordinates newIsometricCoordinates); void setGrid(GridCoordinates newGridCoordinates); void move(WorldCoordinates deltaWorldCoordinates); void move(sf::Vector2f deltaWorldCoordinates); void setParent(std::shared_ptr parent, WorldCoordinates offset = {0, 0}); void setWorldOffset(WorldCoordinates offset); void setScreenOffset(IsometricCoordinates offset); private: WorldCoordinates worldCoordinates{}; std::shared_ptr parent = nullptr; }; #endif //HOLESOME_TRANSLATED_COORDINATES_H