mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-08-04 01:08:26 +02:00
[Panorama Viewer] Highlight onMouseOver
This commit is contained in:
parent
5755b3517e
commit
16c6244194
2 changed files with 89 additions and 27 deletions
|
@ -39,6 +39,7 @@ AliceVision.FloatImageViewer {
|
|||
root.defaultControlPoints();
|
||||
root.setIdView(idView);
|
||||
updateSfmPath();
|
||||
updateMouseAreaPano();
|
||||
|
||||
return Image.Ready;
|
||||
}
|
||||
|
@ -81,6 +82,20 @@ AliceVision.FloatImageViewer {
|
|||
ppRect.y = pp.y;
|
||||
}
|
||||
|
||||
function rotatePanorama(dx, dy) {
|
||||
//root.setRotationPano(dx, dy);
|
||||
}
|
||||
|
||||
function updateMouseAreaPano() {
|
||||
var coords = root.getMouseAreaPanoCoords()
|
||||
console.warn("MOOUSE AREA" + coords)
|
||||
|
||||
rectPano.x = coords[0] + 25
|
||||
rectPano.y = coords[1] + 25
|
||||
rectPano.width = coords[2] - 25
|
||||
rectPano.height = coords[3] - 25
|
||||
}
|
||||
|
||||
onIsDistoViewerChanged: {
|
||||
root.hasDistortion(isDistoViewer);
|
||||
//Putting states back where they were
|
||||
|
@ -135,15 +150,39 @@ AliceVision.FloatImageViewer {
|
|||
}
|
||||
clearBeforeLoad: true
|
||||
|
||||
property alias containsMouse: mouseArea.containsMouse
|
||||
property alias mouseX: mouseArea.mouseX
|
||||
property alias mouseY: mouseArea.mouseY
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
// Do not intercept mouse events, only get the mouse over information
|
||||
acceptedButtons: Qt.NoButton
|
||||
// property alias containsMouse: mouseArea.containsMouse
|
||||
// property alias mouseX: mouseArea.mouseX
|
||||
// property alias mouseY: mouseArea.mouseY
|
||||
// MouseArea {
|
||||
// id: mouseArea
|
||||
// anchors.fill: parent
|
||||
// hoverEnabled: true
|
||||
// // Do not intercept mouse events, only get the mouse over information
|
||||
// acceptedButtons: Qt.NoButton
|
||||
// }
|
||||
|
||||
function isMouseOver(mx, my) {
|
||||
return (mx > rectPano.x && mx < rectPano.x + rectPano.width
|
||||
&& my > rectPano.y && my < rectPano.y + rectPano.height)
|
||||
}
|
||||
|
||||
function getMouseCoordinates(mx, my) {
|
||||
root.mouseOver(isMouseOver(mx, my))
|
||||
}
|
||||
|
||||
/*
|
||||
* Target Rectangle For Mouse Area Highlight
|
||||
*/
|
||||
Item {
|
||||
id: containerMouseAreaPano
|
||||
Rectangle {
|
||||
id: rectPano
|
||||
x: 0
|
||||
y: 0
|
||||
width: 0
|
||||
height: 0
|
||||
visible: false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -184,6 +223,7 @@ AliceVision.FloatImageViewer {
|
|||
if (reinit){
|
||||
points.recalculateCP();
|
||||
points.generateControlPoints();
|
||||
root.updateMouseAreaPano()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,9 +34,9 @@ AliceVision.PanoramaViewer {
|
|||
|
||||
channelMode : AliceVision.PanoramaViewer.EChannelMode.RGBA
|
||||
|
||||
property alias containsMouse: mouseArea.containsMouse
|
||||
property alias mouseX: mouseArea.mouseX
|
||||
property alias mouseY: mouseArea.mouseY
|
||||
property alias containsMouse: mouseAreaPano.containsMouse
|
||||
property alias mouseX: mouseAreaPano.mouseX
|
||||
property alias mouseY: mouseAreaPano.mouseY
|
||||
|
||||
property var mouseXClicked : 0
|
||||
property var mouseYClicked : 0
|
||||
|
@ -45,27 +45,49 @@ AliceVision.PanoramaViewer {
|
|||
property var deltaMouseX: mouseXReleased-mouseXClicked
|
||||
property var deltaMouseY: mouseYReleased-mouseYClicked
|
||||
|
||||
Item {
|
||||
id: containerPanorama
|
||||
Rectangle {
|
||||
width: 3000
|
||||
height: 1000
|
||||
//color: mouseAreaPano.containsMouse? "red" : "green"
|
||||
color: "grey"
|
||||
MouseArea {
|
||||
id: mouseAreaPano
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onPositionChanged: {
|
||||
for (var i = 0; i < repeater.model; i++)
|
||||
{
|
||||
repeater.itemAt(i).item.getMouseCoordinates(mouse.x, mouse.y);
|
||||
}
|
||||
}
|
||||
|
||||
onPressed:{
|
||||
mouseXClicked=mouse.x
|
||||
mouseYClicked=mouse.y
|
||||
onPressed:{
|
||||
mouseXClicked=mouse.x
|
||||
mouseYClicked=mouse.y
|
||||
|
||||
}
|
||||
onReleased: {
|
||||
mouseXReleased=mouse.x
|
||||
mouseYReleased=mouse.y
|
||||
|
||||
for (var i = 0; i < repeater.model; i++)
|
||||
{
|
||||
repeater.itemAt(i).item.rotatePanorama(deltaMouseX, deltaMouseY)
|
||||
}
|
||||
|
||||
console.warn("Dx : " + deltaMouseX)
|
||||
console.warn("Dy : " + deltaMouseY)
|
||||
}
|
||||
}
|
||||
}
|
||||
onReleased: {
|
||||
mouseXReleased=mouse.x
|
||||
mouseYReleased=mouse.y
|
||||
|
||||
console.warn("Dx : " + deltaMouseX)
|
||||
console.warn("Dy : " + deltaMouseY)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
property string sfmPath: ""
|
||||
|
||||
function updateSfmPath() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue