36 lines
923 B
C
36 lines
923 B
C
|
//
|
||
|
// Created by max on 27.04.23.
|
||
|
//
|
||
|
|
||
|
#ifndef HOLESOME_TRANSLATED_COORDINATES_H
|
||
|
#define HOLESOME_TRANSLATED_COORDINATES_H
|
||
|
|
||
|
#include <memory>
|
||
|
#include "coordinates.h"
|
||
|
#include "isometric_coordinate_transformer.h"
|
||
|
|
||
|
#define INITIAL_WORLD_TO_GRID_FACTOR 0.25f
|
||
|
|
||
|
class TranslatedCoordinates {
|
||
|
public:
|
||
|
explicit TranslatedCoordinates(WorldCoordinates worldCoordinates);
|
||
|
|
||
|
WorldCoordinates getWorldCoordinates() const;
|
||
|
|
||
|
ScreenCoordinates getScreenCoordinates() const;
|
||
|
|
||
|
GridCoordinates getGridCoordinates() const;
|
||
|
|
||
|
void set(WorldCoordinates newWorldCoordinates);
|
||
|
|
||
|
void move(WorldCoordinates deltaWorldCoordinates);
|
||
|
|
||
|
private:
|
||
|
WorldCoordinates worldCoordinates;
|
||
|
const float worldToGridFactor = INITIAL_WORLD_TO_GRID_FACTOR;
|
||
|
const std::shared_ptr<IsometricCoordinateTransformer> isoCoordTransformer = std::make_shared<IsometricCoordinateTransformer>();
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif //HOLESOME_TRANSLATED_COORDINATES_H
|