From b602c1847524425fa94395139c5aa6a65a2fb615 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Wed, 27 Sep 2017 12:07:42 -0700 Subject: [PATCH 1/2] prevent zero dimensions for Volume3DOverlay --- interface/src/ui/overlays/Volume3DOverlay.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/interface/src/ui/overlays/Volume3DOverlay.cpp b/interface/src/ui/overlays/Volume3DOverlay.cpp index 5be3247cec..8aa8490937 100644 --- a/interface/src/ui/overlays/Volume3DOverlay.cpp +++ b/interface/src/ui/overlays/Volume3DOverlay.cpp @@ -45,7 +45,19 @@ void Volume3DOverlay::setProperties(const QVariantMap& properties) { } if (dimensions.isValid()) { - setDimensions(vec3FromVariant(dimensions)); + glm::vec3 scale = vec3FromVariant(dimensions); + // don't allow a zero or negative dimension component to reach the renderTransform + const float MIN_DIMENSION = 0.0001f; + if (scale.x < MIN_DIMENSION) { + scale.x = MIN_DIMENSION; + } + if (scale.y < MIN_DIMENSION) { + scale.y = MIN_DIMENSION; + } + if (scale.z < MIN_DIMENSION) { + scale.z = MIN_DIMENSION; + } + setDimensions(scale); } } From 26ea7034d84b8afa81c4abdbea31a0fc8b7caaa9 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Wed, 27 Sep 2017 14:30:26 -0700 Subject: [PATCH 2/2] prevent zero scale for Line3DOverlay --- interface/src/ui/overlays/Line3DOverlay.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/interface/src/ui/overlays/Line3DOverlay.cpp b/interface/src/ui/overlays/Line3DOverlay.cpp index 87021cf852..69f52c5f2e 100644 --- a/interface/src/ui/overlays/Line3DOverlay.cpp +++ b/interface/src/ui/overlays/Line3DOverlay.cpp @@ -278,9 +278,10 @@ Transform Line3DOverlay::evalRenderTransform() { auto endPos = getEnd(); auto vec = endPos - transform.getTranslation(); - auto scale = glm::length(vec); + const float MIN_LINE_LENGTH = 0.0001f; + auto scale = glm::max(glm::length(vec), MIN_LINE_LENGTH); auto dir = vec / scale; - auto orientation = glm::rotation(glm::vec3(0,0,-1), dir); + auto orientation = glm::rotation(glm::vec3(0.0f, 0.0f, -1.0f), dir); transform.setRotation(orientation); transform.setScale(scale);