summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/include/kurator/engine/Camera.h3
-rw-r--r--engine/src/Camera.cpp21
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())};