From f36a14973a259c9dd4e3a7f748b2779f2412a577 Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Fri, 11 Aug 2017 14:39:46 +1000 Subject: [PATCH] region: add `encloses' test for subregions --- region.cpp | 9 +++++++++ region.hpp | 3 +++ 2 files changed, 12 insertions(+) diff --git a/region.cpp b/region.cpp index a39d49d9..164ddf14 100644 --- a/region.cpp +++ b/region.cpp @@ -252,6 +252,15 @@ util::region::intersection (region rhs) const //----------------------------------------------------------------------------- template +bool +util::region::encloses (const region r) const noexcept +{ + return all (p <= r.p) && all (p + e >= r.p + r.e); +} + + +/////////////////////////////////////////////////////////////////////////////// +template util::region util::region::inset (T mag) const { diff --git a/region.hpp b/region.hpp index 379eefcc..e052bc4b 100644 --- a/region.hpp +++ b/region.hpp @@ -83,6 +83,9 @@ namespace util { // Compute binary region combinations region intersection (region) const; + // Test if a region lies completely within our space + bool encloses (region) const noexcept; + //--------------------------------------------------------------------- // Compute a region `mag` units into the region region inset (T mag) const;