From 7f00f92e59e54d6a59612c01054d84d0b3cfc265 Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Mon, 21 May 2018 10:47:30 +1000 Subject: [PATCH] geom/aabb: add query for aabb corners --- geom/aabb.cpp | 20 ++++++++++++++++++++ geom/aabb.hpp | 3 +++ 2 files changed, 23 insertions(+) diff --git a/geom/aabb.cpp b/geom/aabb.cpp index 0acb5453..c73a60c7 100644 --- a/geom/aabb.cpp +++ b/geom/aabb.cpp @@ -24,6 +24,26 @@ using util::geom::aabb; +/////////////////////////////////////////////////////////////////////////////// +template <> +std::array< + util::point3f,8 +> +aabb<3,float>::vertices (void) const noexcept +{ + return {{ + { lo.x, lo.y, lo.z }, + { lo.x, lo.y, hi.z }, + { lo.x, hi.y, lo.z }, + { lo.x, hi.y, hi.z }, + { hi.x, lo.y, lo.z }, + { hi.x, lo.y, hi.z }, + { hi.x, hi.y, lo.z }, + { hi.x, hi.y, hi.z }, + }}; +} + + /////////////////////////////////////////////////////////////////////////////// namespace util::debug { template diff --git a/geom/aabb.hpp b/geom/aabb.hpp index d6ceed53..3a1189d8 100644 --- a/geom/aabb.hpp +++ b/geom/aabb.hpp @@ -117,6 +117,9 @@ namespace util::geom { }; } + std::array,util::pow(2,S)> + vertices (void) const noexcept; + ::util::point lo; ::util::point hi;