From 118d1accce2eb19185abca1e7040c18149c2b7f8 Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Wed, 16 Sep 2015 02:26:00 +1000 Subject: [PATCH] extent: add a point inclusion query --- extent.hpp | 5 +++++ extent.ipp | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/extent.hpp b/extent.hpp index 8d529b19..60adfb9a 100644 --- a/extent.hpp +++ b/extent.hpp @@ -19,6 +19,8 @@ #include "coord.hpp" #include "vector.hpp" +#include "point.hpp" + #include @@ -40,6 +42,9 @@ namespace util { template U aspect (void) const; + template + bool includes (util::point) const; + extent expanded (vector) const; extent expanded (T) const; extent contracted (vector) const; diff --git a/extent.ipp b/extent.ipp index 3cfa7cbd..3e8cd83b 100644 --- a/extent.ipp +++ b/extent.ipp @@ -24,7 +24,7 @@ #include -//----------------------------------------------------------------------------- +/////////////////////////////////////////////////////////////////////////////// template template U @@ -32,3 +32,16 @@ util::extent::aspect (void) const { return static_cast (this->w) / this->h; } + + +/////////////////////////////////////////////////////////////////////////////// +template +template +bool +util::extent::includes (point p) const +{ + for (size_t i = 0; i < S; ++i) + if (p[i] < 0 || static_cast (p[i]) >= this->data[i]) + return false; + return true; +}