[Lens Distortion Viewer] Remove control points on distortion viewer

Removing control points from the distortion viewer. Now we only display the principal point.
This commit is contained in:
Landrodie 2021-06-10 14:59:40 +02:00 committed by Fabien Castan
parent fdbc5fa974
commit dc7ee20b02
3 changed files with 7 additions and 92 deletions

View file

@ -37,7 +37,6 @@ AliceVision.FloatImageViewer {
root.updateSubdivisions(1);
}
root.defaultControlPoints();
root.surface.setIdView(idView);
updateSfmPath();
}
@ -51,7 +50,7 @@ AliceVision.FloatImageViewer {
property int gridOpacity : 100;
property bool isCtrlPointsDisplayed : true;
property bool isPrincipalPointsDisplayed : false;
property int subdivisions: 4;
property int pointsNumber: (subdivisions + 1) * (subdivisions + 1);
@ -76,20 +75,16 @@ AliceVision.FloatImageViewer {
//Putting states back where they were
if(isDistoViewer){
//root.displayGrid(isGridDisplayed);
repeater.displayControlPoints(isCtrlPointsDisplayed)
root.updateSubdivisions(subdivisions)
}
//Forcing disabling of parameters
else{
root.displayGrid(isDistoViewer)
repeater.displayControlPoints(isDistoViewer)
root.updateSubdivisions(1)
}
}
onIsPanoViewerChanged: {
//root.surface.setPanoViewerEnabled(isPanoViewer)
surface.viewerType = AliceVision.Surface.EViewerType.PANORAMA;
}
@ -98,10 +93,6 @@ AliceVision.FloatImageViewer {
root.updateSubdivisions(subdivisions)
}
onIsCtrlPointsDisplayedChanged: {
repeater.displayControlPoints(isCtrlPointsDisplayed)
}
onGridOpacityChanged: {
root.surface.gridColor = Qt.rgba(root.surface.gridColor.r, root.surface.gridColor.g, root.surface.gridColor.b, gridOpacity/100);
}
@ -161,7 +152,7 @@ AliceVision.FloatImageViewer {
x: 0
y: 0
color: "red"
visible: isDistoViewer && isCtrlPointsDisplayed
visible: isDistoViewer && isPrincipalPointsDisplayed
}
Connections {
@ -172,80 +163,4 @@ AliceVision.FloatImageViewer {
}
}
}
/*
* Controls Points
*/
Item {
id: points
width: root.width
height: root.height
Connections {
target: root
onVerticesChanged : {
if (reinit){
points.recalculateCP();
points.generateControlPoints();
}
}
}
function generateControlPoints() {
if(repeater.model === pointsNumber){
repeater.model = 0;
}
repeater.model = pointsNumber;
}
function recalculateCP() {
if (repeater.model === 0)
return
var width = repeater.itemAt(0).width;
var height = repeater.itemAt(0).height;
for (let i = 0; i < repeater.model; i++) {
repeater.itemAt(i).x = root.surface.getVertex(i).x - (width / 2);
repeater.itemAt(i).y = root.surface.getVertex(i).y - (height / 2);
}
}
Component {
id: point
Rectangle {
id: rect
width: root.sourceSize.width/100; height: width
radius: width/2
x: root.surface.getVertex(model.index).x - (width / 2)
y: root.surface.getVertex(model.index).y - (height / 2)
color: Colors.yellow
visible: isDistoViewer && isCtrlPointsDisplayed
MouseArea {
id: mouseAreaCP
anchors.fill : parent;
acceptedButtons: Qt.LeftButton
drag.target: rect
drag.smoothed: false
drag.axis: Drag.XAndYAxis
onReleased: {
root.setVertex(index, rect.x + (width / 2), rect.y + (height / 2))
}
}
}
}
Repeater {
id: repeater
model: pointsNumber
delegate: point
function displayControlPoints(state) {
for (let i = 0; i < model; i++) {
if (repeater.itemAt(i) !== null)
repeater.itemAt(i).visible = state;
}
}
}
}
}

View file

@ -19,7 +19,7 @@ FloatingPane {
property variant colorRGBA: null
property bool displayGrid: displayGridButton.checked
property bool displayPoints: displayCtrlPointsButton.checked
property bool displayPrincipalPoint: displayPrincipalPointButton.checked
property var colors: [Colors.lightgrey, Colors.grey, Colors.red, Colors.green, Colors.blue, Colors.yellow]
readonly property int colorIndex: (colorOffset) % root.colors.length
@ -38,8 +38,8 @@ FloatingPane {
anchors.fill: parent
MaterialToolButton {
id: displayCtrlPointsButton
ToolTip.text: "Display Control Points"
id: displayPrincipalPointButton
ToolTip.text: "Display Principal Point"
text: MaterialIcons.control_point
font.pointSize: 13
padding: 5

View file

@ -273,7 +273,7 @@ FocusScope {
'gamma': Qt.binding(function() { return hdrImageToolbar.gammaValue; }),
'gain': Qt.binding(function() { return hdrImageToolbar.gainValue; }),
'channelModeString': Qt.binding(function() { return hdrImageToolbar.channelModeValue; }),
'isCtrlPointsDisplayed' : Qt.binding(function(){ return lensDistortionImageToolbar.displayPoints;}),
'isPrincipalPointsDisplayed' : Qt.binding(function(){ return lensDistortionImageToolbar.displayPrincipalPoint;}),
'surface.displayGrid' : Qt.binding(function(){ return lensDistortionImageToolbar.visible && lensDistortionImageToolbar.displayGrid;}),
'gridOpacity' : Qt.binding(function(){ return lensDistortionImageToolbar.opacityValue;}),
'surface.gridColor' : Qt.binding(function(){ return lensDistortionImageToolbar.color;}),