mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-06-05 20:31:56 +02:00
[ui] Add removeImage function in Python to check for intrinsic still used
This commit is contained in:
parent
561e9b806c
commit
c50d3cc9e7
3 changed files with 33 additions and 25 deletions
|
@ -816,6 +816,30 @@ class UIGraph(QObject):
|
||||||
def removeAttribute(self, attribute):
|
def removeAttribute(self, attribute):
|
||||||
self.push(commands.ListAttributeRemoveCommand(self._graph, attribute))
|
self.push(commands.ListAttributeRemoveCommand(self._graph, attribute))
|
||||||
|
|
||||||
|
@Slot(Attribute)
|
||||||
|
def removeImage(self, image):
|
||||||
|
with self.groupedGraphModification("Remove Image"):
|
||||||
|
# look if the viewpoint's intrinsic is used by another viewpoint
|
||||||
|
# if not, remove it
|
||||||
|
intrinsicId = image.intrinsicId.value
|
||||||
|
|
||||||
|
intrinsicUsed = False
|
||||||
|
for intrinsic in self.cameraInit.attribute("viewpoints").getExportValue():
|
||||||
|
if image.getExportValue() != intrinsic and intrinsic['intrinsicId'] == intrinsicId:
|
||||||
|
intrinsicUsed = True
|
||||||
|
break
|
||||||
|
|
||||||
|
if not intrinsicUsed:
|
||||||
|
#find the intrinsic and remove it
|
||||||
|
for x in range(len(self.cameraInit.attribute("intrinsics"))):
|
||||||
|
intrinsic = self.cameraInit.attribute("intrinsics").at(x)
|
||||||
|
if intrinsic.getExportValue()["intrinsicId"] == intrinsicId:
|
||||||
|
self.removeAttribute(intrinsic)
|
||||||
|
break
|
||||||
|
|
||||||
|
# After every check we finally remove the attribute
|
||||||
|
self.removeAttribute(image)
|
||||||
|
|
||||||
@Slot()
|
@Slot()
|
||||||
def removeAllImages(self):
|
def removeAllImages(self):
|
||||||
with self.groupedGraphModification("Remove All Images"):
|
with self.groupedGraphModification("Remove All Images"):
|
||||||
|
|
|
@ -291,31 +291,15 @@ Panel {
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendRemoveRequest() {
|
function sendRemoveRequest() {
|
||||||
if (!readOnly) {
|
if (readOnly)
|
||||||
// look if the viewpoint's intrinsic is used by another viewpoint
|
return
|
||||||
var intrinsicId = object.value.get('intrinsicId').value
|
|
||||||
var intrinsicUsed = false
|
|
||||||
for (var i = 0; i < m.viewpoints.count; ++i) {
|
|
||||||
if (m.viewpoints.at(i) != object && m.viewpoints.at(i).value.get("intrinsicId").value === intrinsicId) {
|
|
||||||
intrinsicUsed = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!intrinsicUsed) {
|
|
||||||
//find the intrinsic and remove it
|
|
||||||
for (var i = 0; i < m.intrinsics.count; ++i) {
|
|
||||||
if (m.intrinsics.at(i).value.get("intrinsicId").value === intrinsicId) {
|
|
||||||
_reconstruction.removeAttribute(m.intrinsics.at(i))
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
removeImageRequest(object)
|
removeImageRequest(object)
|
||||||
|
|
||||||
// If the last image has been removed, make sure the viewpoints and intrinsics are reset
|
// If the last image has been removed, make sure the viewpoints and intrinsics are reset
|
||||||
if (m.viewpoints.count === 0)
|
if (m.viewpoints.count === 0)
|
||||||
allViewpointsCleared()
|
allViewpointsCleared()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function removeAllImages() {
|
function removeAllImages() {
|
||||||
_reconstruction.removeAllImages()
|
_reconstruction.removeAllImages()
|
||||||
|
|
|
@ -78,7 +78,7 @@ Item {
|
||||||
cameraInit: reconstruction ? reconstruction.cameraInit : null
|
cameraInit: reconstruction ? reconstruction.cameraInit : null
|
||||||
tempCameraInit: reconstruction ? reconstruction.tempCameraInit : null
|
tempCameraInit: reconstruction ? reconstruction.tempCameraInit : null
|
||||||
cameraInitIndex: reconstruction ? reconstruction.cameraInitIndex : -1
|
cameraInitIndex: reconstruction ? reconstruction.cameraInitIndex : -1
|
||||||
onRemoveImageRequest: reconstruction.removeAttribute(attribute)
|
onRemoveImageRequest: reconstruction.removeImage(attribute)
|
||||||
onAllViewpointsCleared: { reconstruction.removeAllImages(); reconstruction.selectedViewId = "-1" }
|
onAllViewpointsCleared: { reconstruction.removeAllImages(); reconstruction.selectedViewId = "-1" }
|
||||||
onFilesDropped: {
|
onFilesDropped: {
|
||||||
if (drop["meshroomScenes"].length == 1) {
|
if (drop["meshroomScenes"].length == 1) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue