aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/headers
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/headers')
-rw-r--r--src/main/headers/Scene.hpp14
-rw-r--r--src/main/headers/WorldScene.hpp7
2 files changed, 17 insertions, 4 deletions
diff --git a/src/main/headers/Scene.hpp b/src/main/headers/Scene.hpp
index 2b19d31..b7a46e6 100644
--- a/src/main/headers/Scene.hpp
+++ b/src/main/headers/Scene.hpp
@@ -6,7 +6,19 @@
class Scene
{
public:
- virtual void render(sf::RenderWindow &window) = 0;
+ constexpr static float MAX_ZOOM = 10;
+ constexpr static float MIN_ZOOM = .1;
+
+ virtual void render() = 0;
+ virtual void resize(const sf::Event::SizeEvent &size) = 0;
+
+ virtual void zoom(float factor) {}
+
+protected:
+ float _zoom = 1;
+ sf::RenderWindow &_window;
+
+ Scene(sf::RenderWindow &window) : _window(window) {}
};
#endif
diff --git a/src/main/headers/WorldScene.hpp b/src/main/headers/WorldScene.hpp
index acdda63..09f3120 100644
--- a/src/main/headers/WorldScene.hpp
+++ b/src/main/headers/WorldScene.hpp
@@ -14,11 +14,12 @@ public:
constexpr static int ZOOM_MAX = 100;
constexpr static int DEFAULT_TILE_SIZE_PX = 20;
- WorldScene();
+ WorldScene(sf::RenderWindow &window);
- virtual void render(sf::RenderWindow &window);
+ virtual void render();
+ virtual void resize(const sf::Event::SizeEvent &size);
- virtual void zoom(int value);
+ virtual void zoom(float factor);
virtual void pan(int dx, int dy);
private: