geom/aabb: prefer to use vector operations over loops

This commit is contained in:
Danny Robson 2017-08-24 17:27:31 +10:00
parent e82d770d2b
commit f53b547a40

View File

@ -57,14 +57,7 @@ template <size_t S, typename T>
util::point<S,T> util::point<S,T>
aabb<S,T>::closest (point<S,T> q) const aabb<S,T>::closest (point<S,T> q) const
{ {
point<S,T> res; return limit (q, p0, p1);
for (size_t i = 0; i < S; ++i)
res[i] = q[i] < p0[i] ? p0[i] :
q[i] > p1[i] ? p1[i] :
q[i];
return res;
} }
@ -148,11 +141,7 @@ namespace util::debug {
struct validator<aabb<S,T>> { struct validator<aabb<S,T>> {
static bool is_valid (const aabb<S,T> &b) static bool is_valid (const aabb<S,T> &b)
{ {
for (size_t i = 0; i < S; ++i) return all (b.p0 <= b.p1);
if (b.p1[i] < b.p0[i])
return false;
return true;
} }
}; };
} }