X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Frect.h;h=1373c6fc217ae267462cf5267cefa21639b66a30;hb=7d41c1b8d1da72ef3e238f93ee7622ae9affb9de;hp=a79f6ac441da510ee438b3fc6720a511682fd3d9;hpb=f59f24dff392428d7219ba2d6be5e1e81c344ee0;p=ipdf%2Fcode.git diff --git a/src/rect.h b/src/rect.h index a79f6ac..1373c6f 100644 --- a/src/rect.h +++ b/src/rect.h @@ -18,7 +18,37 @@ namespace IPDF s << "{" << Float(x) << ", " << Float(y) << ", " << Float(w) << ", " << Float(h) << "}"; return s.str(); } + inline bool PointIn(Real pt_x, Real pt_y) const + { + if (pt_x < x) return false; + if (pt_y < y) return false; + if (pt_x > x + w) return false; + if (pt_y > y + h) return false; + return true; + } }; + + inline Rect TransformRectCoordinates(const Rect& view, const Rect& r) + { + Rect out; + Real w = (view.w == Real(0))?Real(1):view.w; + Real h = (view.h == Real(0))?Real(1):view.h; + out.x = (r.x - view.x) / w; + out.y = (r.y - view.y) / h; + out.w = r.w / w; + out.h = r.h / h; + return out; + } + + inline Vec2 TransformPointCoordinates(const Rect& view, const Vec2& v) + { + Vec2 out; + out.x = (v.x - view.x) / view.w; + out.y = (v.y - view.y) / view.h; + return out; + } + + } #endif //_RECT_H