| 299 | } |
| 300 | |
| 301 | void TransformedView::ZoomAtScreenPos(const float fDeltaZoom, const olc::vi2d& vPos) |
| 302 | { |
| 303 | olc::vf2d vOffsetBeforeZoom = ScreenToWorld(vPos); |
| 304 | m_vWorldScale *= fDeltaZoom; |
| 305 | if (m_bZoomClamp) m_vWorldScale = m_vWorldScale.clamp(m_vMinScale, m_vMaxScale); |
| 306 | olc::vf2d vOffsetAfterZoom = ScreenToWorld(vPos); |
| 307 | m_vWorldOffset += vOffsetBeforeZoom - vOffsetAfterZoom; |
| 308 | } |
| 309 | |
| 310 | void TransformedView::SetZoom(const float fZoom, const olc::vf2d& vPos) |
| 311 | { |