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); 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); } }