mirror of
https://github.com/overte-org/overte.git
synced 2025-04-18 21:57:10 +02:00
Merge pull request #7113 from zzmp/rm/draw-on-hud
Remove drawOnHUD property from 3d overlays
This commit is contained in:
commit
f932999b2c
6 changed files with 16 additions and 197 deletions
|
@ -614,142 +614,19 @@ CameraTool = function(cameraManager) {
|
|||
visible: false,
|
||||
});
|
||||
|
||||
var defaultCubeProps = {
|
||||
size: ORIENTATION_OVERLAY_CUBE_SIZE,
|
||||
alpha: 1,
|
||||
color: {
|
||||
red: 255,
|
||||
green: 0,
|
||||
blue: 0
|
||||
},
|
||||
solid: true,
|
||||
visible: true,
|
||||
drawOnHUD: true,
|
||||
};
|
||||
var defaultLineProps = {
|
||||
lineWidth: 1.5,
|
||||
alpha: 1,
|
||||
position: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: 0
|
||||
},
|
||||
start: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: 0
|
||||
},
|
||||
end: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: 0
|
||||
},
|
||||
color: {
|
||||
red: 255,
|
||||
green: 0,
|
||||
blue: 0
|
||||
},
|
||||
visible: false,
|
||||
drawOnHUD: true,
|
||||
};
|
||||
|
||||
var orientationOverlay = OverlayGroup({
|
||||
position: {
|
||||
x: uiPosition.x + UI_WIDTH / 2,
|
||||
y: uiPosition.y + UI_HEIGHT / 2,
|
||||
},
|
||||
visible: false,
|
||||
});
|
||||
|
||||
var OOHS = ORIENTATION_OVERLAY_HALF_SIZE;
|
||||
var cubeX = orientationOverlay.createOverlay("cube", mergeObjects(defaultCubeProps, {
|
||||
position: {
|
||||
x: -OOHS,
|
||||
y: OOHS,
|
||||
z: OOHS
|
||||
},
|
||||
color: RED,
|
||||
}));
|
||||
var cubeY = orientationOverlay.createOverlay("cube", mergeObjects(defaultCubeProps, {
|
||||
position: {
|
||||
x: OOHS,
|
||||
y: -OOHS,
|
||||
z: OOHS
|
||||
},
|
||||
color: GREEN,
|
||||
}));
|
||||
var cubeZ = orientationOverlay.createOverlay("cube", mergeObjects(defaultCubeProps, {
|
||||
position: {
|
||||
x: OOHS,
|
||||
y: OOHS,
|
||||
z: -OOHS
|
||||
},
|
||||
color: BLUE,
|
||||
}));
|
||||
orientationOverlay.createOverlay("line3d", mergeObjects(defaultLineProps, {
|
||||
start: {
|
||||
x: -OOHS,
|
||||
y: OOHS,
|
||||
z: OOHS
|
||||
},
|
||||
end: {
|
||||
x: OOHS,
|
||||
y: OOHS,
|
||||
z: OOHS
|
||||
},
|
||||
color: RED,
|
||||
}));
|
||||
orientationOverlay.createOverlay("line3d", mergeObjects(defaultLineProps, {
|
||||
start: {
|
||||
x: OOHS,
|
||||
y: -OOHS,
|
||||
z: OOHS
|
||||
},
|
||||
end: {
|
||||
x: OOHS,
|
||||
y: OOHS,
|
||||
z: OOHS
|
||||
},
|
||||
color: GREEN,
|
||||
}));
|
||||
orientationOverlay.createOverlay("line3d", mergeObjects(defaultLineProps, {
|
||||
start: {
|
||||
x: OOHS,
|
||||
y: OOHS,
|
||||
z: -OOHS
|
||||
},
|
||||
end: {
|
||||
x: OOHS,
|
||||
y: OOHS,
|
||||
z: OOHS
|
||||
},
|
||||
color: BLUE,
|
||||
}));
|
||||
|
||||
Script.scriptEnding.connect(function() {
|
||||
orientationOverlay.destroy();
|
||||
Overlays.deleteOverlay(background);
|
||||
Overlays.deleteOverlay(backgroundBorder);
|
||||
});
|
||||
|
||||
var flip = Quat.fromPitchYawRollDegrees(0, 180, 0);
|
||||
that.update = function() {
|
||||
orientationOverlay.setProperties({
|
||||
rotation: Quat.multiply(flip, Quat.inverse(Camera.orientation)),
|
||||
});
|
||||
|
||||
if (Window.innerWidth != lastKnownWidth) {
|
||||
lastKnownWidth = Window.innerWidth;
|
||||
uiPosition = {
|
||||
x: lastKnownWidth - UI_WIDTH - UI_PADDING,
|
||||
y: UI_PADDING,
|
||||
};
|
||||
orientationOverlay.setProperties({
|
||||
position: {
|
||||
x: uiPosition.x + ORIENTATION_OVERLAY_OFFSET.x,
|
||||
y: uiPosition.y + ORIENTATION_OVERLAY_OFFSET.y,
|
||||
}
|
||||
});
|
||||
Overlays.editOverlay(backgroundBorder, {
|
||||
x: uiPosition.x - BORDER_WIDTH,
|
||||
y: uiPosition.y - BORDER_WIDTH,
|
||||
|
@ -766,29 +643,9 @@ CameraTool = function(cameraManager) {
|
|||
x: event.x,
|
||||
y: event.y
|
||||
});
|
||||
|
||||
if (clickedOverlay == cubeX) {
|
||||
targetPitch = 0;
|
||||
targetYaw = event.isLeftButton ? 90 : -90;
|
||||
cameraManager.setTargetPitchYaw(targetPitch, targetYaw);
|
||||
return true;
|
||||
} else if (clickedOverlay == cubeY) {
|
||||
targetPitch = event.isLeftButton ? 90 : -90;
|
||||
targetYaw = 0;
|
||||
cameraManager.setTargetPitchYaw(targetPitch, targetYaw);
|
||||
return true;
|
||||
} else if (clickedOverlay == cubeZ) {
|
||||
targetPitch = 0;
|
||||
targetYaw = event.isLeftButton ? 0 : 180;
|
||||
cameraManager.setTargetPitchYaw(targetPitch, targetYaw);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
that.setVisible = function(visible) {
|
||||
orientationOverlay.setProperties({
|
||||
visible: visible
|
||||
});
|
||||
Overlays.editOverlay(background, {
|
||||
visible: visible
|
||||
});
|
||||
|
@ -800,4 +657,4 @@ CameraTool = function(cameraManager) {
|
|||
that.setVisible(false);
|
||||
|
||||
return that;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -221,7 +221,7 @@
|
|||
|
||||
var Base3DOverlay = generateOverlayClass(Overlay, ABSTRACT, [
|
||||
"position", "lineWidth", "rotation", "isSolid", "isFilled", "isWire", "isDashedLine",
|
||||
"ignoreRayIntersection", "drawInFront", "drawOnHUD"
|
||||
"ignoreRayIntersection", "drawInFront"
|
||||
]);
|
||||
|
||||
var Planar3DOverlay = generateOverlayClass(Base3DOverlay, ABSTRACT, [
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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<Base3DOverlay>(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<Base3DOverlay>(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);
|
||||
}
|
||||
|
|
|
@ -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<Base3DOverlay>(overlay)->getDrawOnHUD()) {
|
||||
if (std::dynamic_pointer_cast<Base3DOverlay>(overlay)->getDrawInFront()) {
|
||||
if (overlay->is3D()) {
|
||||
if (std::static_pointer_cast<Base3DOverlay>(overlay)->getDrawInFront()) {
|
||||
builder.withLayered();
|
||||
}
|
||||
if (overlay->getAlphaPulse() != 0.0f || overlay->getAlpha() != 1.0f) {
|
||||
|
|
Loading…
Reference in a new issue