From 0d29f59e398b90cfc92d2c06e9abf50e2a40a1f3 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Mon, 15 Feb 2016 14:00:23 -0800 Subject: [PATCH] Remove drawOnHUD from 3d overlays --- interface/src/ui/overlays/Base3DOverlay.cpp | 16 +------ interface/src/ui/overlays/Base3DOverlay.h | 3 -- interface/src/ui/overlays/Overlays.cpp | 43 +++++-------------- interface/src/ui/overlays/OverlaysPayload.cpp | 4 +- 4 files changed, 14 insertions(+), 52 deletions(-) diff --git a/interface/src/ui/overlays/Base3DOverlay.cpp b/interface/src/ui/overlays/Base3DOverlay.cpp index 4d7ca90925..e648a22650 100644 --- a/interface/src/ui/overlays/Base3DOverlay.cpp +++ b/interface/src/ui/overlays/Base3DOverlay.cpp @@ -26,8 +26,7 @@ Base3DOverlay::Base3DOverlay() : _isSolid(DEFAULT_IS_SOLID), _isDashedLine(DEFAULT_IS_DASHED_LINE), _ignoreRayIntersection(false), - _drawInFront(false), - _drawOnHUD(false) + _drawInFront(false) { } @@ -38,8 +37,7 @@ Base3DOverlay::Base3DOverlay(const Base3DOverlay* base3DOverlay) : _isSolid(base3DOverlay->_isSolid), _isDashedLine(base3DOverlay->_isDashedLine), _ignoreRayIntersection(base3DOverlay->_ignoreRayIntersection), - _drawInFront(base3DOverlay->_drawInFront), - _drawOnHUD(base3DOverlay->_drawOnHUD) + _drawInFront(base3DOverlay->_drawInFront) { } @@ -53,13 +51,6 @@ void Base3DOverlay::setProperties(const QScriptValue& properties) { setDrawInFront(value); } - QScriptValue drawOnHUD = properties.property("drawOnHUD"); - - if (drawOnHUD.isValid()) { - bool value = drawOnHUD.toVariant().toBool(); - setDrawOnHUD(value); - } - QScriptValue position = properties.property("position"); // if "position" property was not there, check to see if they included aliases: point, p1 @@ -163,9 +154,6 @@ QScriptValue Base3DOverlay::getProperty(const QString& property) { if (property == "drawInFront") { return _drawInFront; } - if (property == "drawOnHUD") { - return _drawOnHUD; - } return Overlay::getProperty(property); } diff --git a/interface/src/ui/overlays/Base3DOverlay.h b/interface/src/ui/overlays/Base3DOverlay.h index 441da4f2da..791d08109f 100644 --- a/interface/src/ui/overlays/Base3DOverlay.h +++ b/interface/src/ui/overlays/Base3DOverlay.h @@ -37,7 +37,6 @@ public: bool getIsSolidLine() const { return !_isDashedLine; } bool getIgnoreRayIntersection() const { return _ignoreRayIntersection; } bool getDrawInFront() const { return _drawInFront; } - bool getDrawOnHUD() const { return _drawOnHUD; } // setters void setPosition(const glm::vec3& value) { _transform.setTranslation(value); } @@ -50,7 +49,6 @@ public: void setIsDashedLine(bool isDashedLine) { _isDashedLine = isDashedLine; } void setIgnoreRayIntersection(bool value) { _ignoreRayIntersection = value; } void setDrawInFront(bool value) { _drawInFront = value; } - void setDrawOnHUD(bool value) { _drawOnHUD = value; } virtual AABox getBounds() const = 0; @@ -73,7 +71,6 @@ protected: bool _isDashedLine; bool _ignoreRayIntersection; bool _drawInFront; - bool _drawOnHUD; }; #endif // hifi_Base3DOverlay_h diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp index 789ca96bd8..b53a5a0d05 100644 --- a/interface/src/ui/overlays/Overlays.cpp +++ b/interface/src/ui/overlays/Overlays.cpp @@ -200,17 +200,12 @@ unsigned int Overlays::addOverlay(Overlay::Pointer overlay) { unsigned int thisID = _nextOverlayID; _nextOverlayID++; if (overlay->is3D()) { - auto overlay3D = std::static_pointer_cast(overlay); - if (overlay3D->getDrawOnHUD()) { - _overlaysHUD[thisID] = overlay; - } else { - _overlaysWorld[thisID] = overlay; + _overlaysWorld[thisID] = overlay; - render::ScenePointer scene = qApp->getMain3DScene(); - render::PendingChanges pendingChanges; - overlay->addToScene(overlay, scene, pendingChanges); - scene->enqueuePendingChanges(pendingChanges); - } + render::ScenePointer scene = qApp->getMain3DScene(); + render::PendingChanges pendingChanges; + overlay->addToScene(overlay, scene, pendingChanges); + scene->enqueuePendingChanges(pendingChanges); } else { _overlaysHUD[thisID] = overlay; } @@ -239,38 +234,20 @@ bool Overlays::editOverlay(unsigned int id, const QScriptValue& properties) { Overlay::Pointer thisOverlay = getOverlay(id); if (thisOverlay) { if (thisOverlay->is3D()) { - auto overlay3D = std::static_pointer_cast(thisOverlay); - - bool oldDrawOnHUD = overlay3D->getDrawOnHUD(); render::ItemKey oldItemKey = render::payloadGetKey(thisOverlay); thisOverlay->setProperties(properties); - render::ScenePointer scene = qApp->getMain3DScene(); - render::PendingChanges pendingChanges; - auto itemID = thisOverlay->getRenderItemID(); - - bool drawOnHUD = overlay3D->getDrawOnHUD(); render::ItemKey itemKey = render::payloadGetKey(thisOverlay); - if (drawOnHUD != oldDrawOnHUD) { - if (drawOnHUD) { - _overlaysWorld.remove(id); - _overlaysHUD[id] = thisOverlay; - if (itemID != render::Item::INVALID_ITEM_ID) { - thisOverlay->removeFromScene(thisOverlay, scene, pendingChanges); - } - } else { - _overlaysHUD.remove(id); - _overlaysWorld[id] = thisOverlay; - thisOverlay->addToScene(thisOverlay, scene, pendingChanges); - } - } else if (itemKey != oldItemKey && !drawOnHUD) { + if (itemKey != oldItemKey) { + auto itemID = thisOverlay->getRenderItemID(); if (itemID != render::Item::INVALID_ITEM_ID) { + render::ScenePointer scene = qApp->getMain3DScene(); + render::PendingChanges pendingChanges; pendingChanges.resortItem(itemID, oldItemKey, itemKey); + scene->enqueuePendingChanges(pendingChanges); } } - - scene->enqueuePendingChanges(pendingChanges); } else { thisOverlay->setProperties(properties); } diff --git a/interface/src/ui/overlays/OverlaysPayload.cpp b/interface/src/ui/overlays/OverlaysPayload.cpp index 8410142551..175d6fa408 100644 --- a/interface/src/ui/overlays/OverlaysPayload.cpp +++ b/interface/src/ui/overlays/OverlaysPayload.cpp @@ -36,8 +36,8 @@ namespace render { template <> const ItemKey payloadGetKey(const Overlay::Pointer& overlay) { auto builder = ItemKey::Builder().withTypeShape(); - if (overlay->is3D() && !std::dynamic_pointer_cast(overlay)->getDrawOnHUD()) { - if (std::dynamic_pointer_cast(overlay)->getDrawInFront()) { + if (overlay->is3D()) { + if (std::static_pointer_cast(overlay)->getDrawInFront()) { builder.withLayered(); } if (overlay->getAlphaPulse() != 0.0f || overlay->getAlpha() != 1.0f) {