]> git.localhorst.tv Git - space.git/blobdiff - src/graphics/Camera.h
dynamic zoom
[space.git] / src / graphics / Camera.h
index 10699f097e2f5e6d9ca38892bd5d78a3aa5bff7e..ad1a997ef6383cad9283ff884321b46133822e33 100644 (file)
@@ -12,16 +12,34 @@ public:
        Camera(int w, int h, const Vector<float> &);
 
 public:
+       void SetTarget(const Vector<float> &t) { target = &t; }
+       void SetZoom(float z) { zoom = z; }
+
        void Resize(int w, int h);
+       void Update(float deltaT);
+
+       void StartZoom();
+       void StopZoom();
+       void StartShrink();
+       void StopShrink();
 
-       Vector<float> Offset() {
-               return -(*target - offset);
+       Vector<int> ToScreen(Vector<float> v) const {
+               return Vector<int>(OffsetOf(v));
+       }
+       Vector<float> OffsetOf(Vector<float> v) const {
+               return ToScale(v - *target) + offset;
+       }
+       Vector<float> ToScale(Vector<float> v) const {
+               return v * zoom;
        }
 
 private:
        const Vector<float> *target;
        Vector<float> offset;
 
+       float zoom;
+       int zoomAcc;
+
 };
 
 }