#include "pch.h" ////////////////////////////////////////////////////////////////////////////// // // Viewport // ////////////////////////////////////////////////////////////////////////////// const Rect& Viewport::GetRect() { return GetViewRect()->GetValue(); } float Viewport::GetAspect() { const Rect& rect = GetViewRect()->GetValue(); return rect.YSize() / rect.XSize(); } Point Viewport::TransformNDCToImage(const Point& point) { const Rect& rect = GetViewRect()->GetValue(); return rect.Center() + point * (rect.XSize() * 0.5f); } WinPoint Viewport::TransformImageToScreen(const Point& point) { const Rect& rect = GetViewRect()->GetValue(); return WinPoint( (int)point.X(), (int)(rect.YMin() + rect.YMax() - point.Y()) ); } WinPoint Viewport::TransformNDCToScreen(const Point& point) { return TransformImageToScreen(TransformNDCToImage(point)); }