diff options
Diffstat (limited to 'engine')
-rw-r--r-- | engine/include/kurator/engine/Camera.h | 3 | ||||
-rw-r--r-- | engine/src/Camera.cpp | 21 |
2 files changed, 24 insertions, 0 deletions
diff --git a/engine/include/kurator/engine/Camera.h b/engine/include/kurator/engine/Camera.h index 2eb192a..d5253df 100644 --- a/engine/include/kurator/engine/Camera.h +++ b/engine/include/kurator/engine/Camera.h @@ -15,6 +15,9 @@ struct Camera double scale = 1.0; Point to_world(const Point& screen) const; Point to_screen(const Point& world) const; + Point top_left() const; + Point center() const; + Point bottom_right() const; }; diff --git a/engine/src/Camera.cpp b/engine/src/Camera.cpp index 41cc5ab..4a95ad8 100644 --- a/engine/src/Camera.cpp +++ b/engine/src/Camera.cpp @@ -29,6 +29,27 @@ Camera::to_screen(const Point& world) const Point +Camera::top_left() const +{ + return to_world({0.0, 0.0}); +} + + +Point +Camera::center() const +{ + return to_world(viewport().scale(0.5)); +} + + +Point +Camera::bottom_right() const +{ + return to_world(viewport()); +} + + +Point viewport() { return {static_cast<double>(GetScreenWidth()), static_cast<double>(GetScreenHeight())}; |