From: John Tsiombikas Date: Wed, 14 Mar 2018 08:31:54 +0000 (+0200) Subject: take into account the center of the aabb when calculating side planes X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=commitdiff_plain;h=74034a459f47934ef60ba295033b9cb7e597d32a take into account the center of the aabb when calculating side planes --- diff --git a/src/geom.cc b/src/geom.cc index 1813eea..a96066f 100644 --- a/src/geom.cc +++ b/src/geom.cc @@ -147,19 +147,20 @@ Vec3 AABox::get_corner(int idx) const Plane AABox::get_plane(int pidx) const { + Vec3 c = (max - min) * 0.5f; switch(pidx) { case AABOX_PLANE_PX: - return Plane(Vec3(max.x, 0, 0), Vec3(1, 0, 0)); + return Plane(Vec3(max.x, c.y, c.z), Vec3(1, 0, 0)); case AABOX_PLANE_NX: - return Plane(Vec3(min.x, 0, 0), Vec3(-1, 0, 0)); + return Plane(Vec3(min.x, c.y, c.z), Vec3(-1, 0, 0)); case AABOX_PLANE_PY: - return Plane(Vec3(0, max.x, 0), Vec3(0, 1, 0)); + return Plane(Vec3(c.x, max.x, c.z), Vec3(0, 1, 0)); case AABOX_PLANE_NY: - return Plane(Vec3(0, min.x, 0), Vec3(0, -1, 0)); + return Plane(Vec3(c.x, min.x, c.z), Vec3(0, -1, 0)); case AABOX_PLANE_PZ: - return Plane(Vec3(0, 0, max.z), Vec3(0, 0, 1)); + return Plane(Vec3(c.x, c.y, max.z), Vec3(0, 0, 1)); case AABOX_PLANE_NZ: - return Plane(Vec3(0, 0, min.z), Vec3(0, 0, -1)); + return Plane(Vec3(c.x, c.y, min.z), Vec3(0, 0, -1)); default: break; }