From 3418488c2f65ae8cf92514cea74df9b5188071a5 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Fri, 19 Feb 2016 14:44:33 -0800 Subject: [PATCH] Fool octree to avoid ui grid overlay culling --- interface/src/ui/overlays/Grid3DOverlay.cpp | 11 +++++++++++ interface/src/ui/overlays/Grid3DOverlay.h | 2 ++ interface/src/ui/overlays/Planar3DOverlay.h | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/interface/src/ui/overlays/Grid3DOverlay.cpp b/interface/src/ui/overlays/Grid3DOverlay.cpp index 8246960110..e73520e973 100644 --- a/interface/src/ui/overlays/Grid3DOverlay.cpp +++ b/interface/src/ui/overlays/Grid3DOverlay.cpp @@ -13,6 +13,8 @@ #include +#include + #include #include @@ -38,6 +40,15 @@ Grid3DOverlay::Grid3DOverlay(const Grid3DOverlay* grid3DOverlay) : updateGrid(); } +AABox Grid3DOverlay::getBounds() const { + if (_followCamera) { + // This is a UI element that should always be in view, lie to the octree to avoid culling + const AABox DOMAIN_BOX = AABox(glm::vec3(-TREE_SCALE / 2), TREE_SCALE); + return DOMAIN_BOX; + } + return Planar3DOverlay::getBounds(); +} + void Grid3DOverlay::render(RenderArgs* args) { if (!_visible) { return; // do nothing if we're not visible diff --git a/interface/src/ui/overlays/Grid3DOverlay.h b/interface/src/ui/overlays/Grid3DOverlay.h index 2a4b487e1b..3614a13000 100644 --- a/interface/src/ui/overlays/Grid3DOverlay.h +++ b/interface/src/ui/overlays/Grid3DOverlay.h @@ -24,6 +24,8 @@ public: Grid3DOverlay(); Grid3DOverlay(const Grid3DOverlay* grid3DOverlay); + virtual AABox getBounds() const; + virtual void render(RenderArgs* args); virtual const render::ShapeKey getShapeKey() override; virtual void setProperties(const QScriptValue& properties); diff --git a/interface/src/ui/overlays/Planar3DOverlay.h b/interface/src/ui/overlays/Planar3DOverlay.h index 63de15a8f8..0542a8b491 100644 --- a/interface/src/ui/overlays/Planar3DOverlay.h +++ b/interface/src/ui/overlays/Planar3DOverlay.h @@ -20,7 +20,7 @@ public: Planar3DOverlay(); Planar3DOverlay(const Planar3DOverlay* planar3DOverlay); - AABox getBounds() const; + virtual AABox getBounds() const; glm::vec2 getDimensions() const { return _dimensions; } void setDimensions(float value) { _dimensions = glm::vec2(value); }