aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/headers/Scene.hpp
blob: 757202c4d2316ab2d0802f5f018d7baa8f777c11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef SCENE_HPP
#define SCENE_HPP

#include <SFML/Graphics.hpp>

class Scene
{
public:
    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 click(const sf::Event::MouseButtonEvent &click) {}
    virtual void keyPress(const sf::Event::KeyEvent &event) {}
    virtual void zoom(float factor) {}

protected:
    float _zoom = 1;
    sf::RenderWindow &_window;

    Scene(sf::RenderWindow &window) : _window(window) {}
};

#endif