diff options
Diffstat (limited to 'src/libnr')
| -rw-r--r-- | src/libnr/nr-rect.cpp | 12 | ||||
| -rw-r--r-- | src/libnr/nr-rect.h | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/libnr/nr-rect.cpp b/src/libnr/nr-rect.cpp index 72bced37b..f3036eff1 100644 --- a/src/libnr/nr-rect.cpp +++ b/src/libnr/nr-rect.cpp @@ -266,6 +266,18 @@ Point Rect::midpoint() const { return ( _min + _max ) / 2; } +Point Rect::cornerFarthestFrom(Point const &p) const { + Point m = midpoint(); + unsigned i = 0; + if (p[X] < m[X]) { + i = 1; + } + if (p[Y] < m[Y]) { + i = 3 - i; + } + return corner(i); +} + /** returns a vector from topleft to bottom right. */ Point Rect::dimensions() const { return _max - _min; diff --git a/src/libnr/nr-rect.h b/src/libnr/nr-rect.h index 46aff13f4..439538e29 100644 --- a/src/libnr/nr-rect.h +++ b/src/libnr/nr-rect.h @@ -53,6 +53,8 @@ public: /** returns the midpoint of this rect. */ Point midpoint() const; + Point cornerFarthestFrom(Point const &p) const; + /** True iff either width or height is less than \a epsilon. */ bool isEmpty(double epsilon=1e-6) const { return isEmpty<X>(epsilon) || isEmpty<Y>(epsilon); |
