void Resize(int w, int h);
void Update(float deltaT);
- void DoubleZoom();
- void HalfZoom();
+ void StartZoom();
+ void StopZoom();
+ void StartShrink();
+ void StopShrink();
Vector<int> ToScreen(Vector<float> v) const {
return Vector<int>(OffsetOf(v));
return ToScale(v - *target) + offset;
}
Vector<float> ToScale(Vector<float> v) const {
- if (zoom == 0) {
- return v;
- } else if (zoom > 0) {
- return v * float(1 << zoom);
- } else {
- return v / float(1 << -zoom);
- }
+ return v * zoom;
}
private:
const Vector<float> *target;
Vector<float> offset;
- int zoom;
+ float zoom;
+ int zoomAcc;
};