#pragma once #include "libmath.hpp" class Camera final { public: const Mat44& GetView() const { return viewMat_; } void Move(const Point& offset); void MoveTo(const Point& pos); /* scale screen in [1.0, 2.0] */ void Scale(const Point& scale); bool TryCalcView(); private: Mat44 viewMat_; Point position_ = {0, 0}; Point scale_ = {1, 1}; bool dirty_ = false; };