diff --git a/GUIs/AmpScanGUI.py b/GUIs/AmpScanGUI.py index 5534d4ebf92300bb5535bfb92093ad7a89d1952a..deb3020a9cb695fdc7fb6d358727791a3b9b2bc3 100644 --- a/GUIs/AmpScanGUI.py +++ b/GUIs/AmpScanGUI.py @@ -10,9 +10,9 @@ from PyQt5.QtGui import (QColor, QFontMetrics, QImage, QPainter, QIcon, QOpenGLVersionProfile) from PyQt5.QtWidgets import (QAction, QApplication, QGridLayout, QHBoxLayout, QMainWindow, QMessageBox, QComboBox, QButtonGroup, - QOpenGLWidget, QFileDialog,QLabel,QPushButton, + QOpenGLWidget, QFileDialog, QLabel, QPushButton, QSlider, QWidget, QTableWidget, QTableWidgetItem, - QAbstractButton) + QAbstractButton, QErrorMessage) class AmpScanGUI(QMainWindow): @@ -200,31 +200,35 @@ class AmpScanGUI(QMainWindow): self.regCont.getNames() def runRegistration(self): - c1 = [31.0, 73.0, 125.0] - c3 = [170.0, 75.0, 65.0] - c2 = [212.0, 221.0, 225.0] - CMap1 = np.c_[[np.linspace(st, en) for (st, en) in zip(c1, c2)]] - CMap2 = np.c_[[np.linspace(st, en) for (st, en) in zip(c2, c3)]] - CMap = np.c_[CMap1[:, :-1], CMap2] - self.CMapN2P = np.transpose(CMap)/255.0 - self.CMap02P = np.flip(np.transpose(CMap1)/255.0, axis=0) - baseline = str(self.regCont.baseline.currentText()) - target = str(self.regCont.target.currentText()) - self.fileManager.setTable(baseline, [1,0,0], 0.5, 0) - self.fileManager.setTable(target, [0,0,1], 0.5, 0) - reg = registration(self.files[baseline], self.files[target], steps = 5, - smooth=1).reg - reg.addActor(CMap = self.CMap02P) - regName = target + '_reg' - self.files[regName] = reg - self.filesDrop.append(regName) - self.fileManager.addRow(regName, self.files[regName]) - if hasattr(self, 'alCont'): - self.alCont.getNames() - if hasattr(self, 'regCont'): - self.regCont.getNames() - - print('Run the Registration code between %s and %s' % (baseline, target)) + if len(self.files) >= 2: + # Needs to be at least 2 files to run registration + c1 = [31.0, 73.0, 125.0] + c3 = [170.0, 75.0, 65.0] + c2 = [212.0, 221.0, 225.0] + CMap1 = np.c_[[np.linspace(st, en) for (st, en) in zip(c1, c2)]] + CMap2 = np.c_[[np.linspace(st, en) for (st, en) in zip(c2, c3)]] + CMap = np.c_[CMap1[:, :-1], CMap2] + self.CMapN2P = np.transpose(CMap)/255.0 + self.CMap02P = np.flip(np.transpose(CMap1)/255.0, axis=0) + baseline = str(self.regCont.baseline.currentText()) + target = str(self.regCont.target.currentText()) + self.fileManager.setTable(baseline, [1,0,0], 0.5, 0) + self.fileManager.setTable(target, [0,0,1], 0.5, 0) + reg = registration(self.files[baseline], self.files[target], steps = 5, + smooth=1).reg + reg.addActor(CMap = self.CMap02P) + regName = target + '_reg' + self.files[regName] = reg + self.filesDrop.append(regName) + self.fileManager.addRow(regName, self.files[regName]) + if hasattr(self, 'alCont'): + self.alCont.getNames() + if hasattr(self, 'regCont'): + self.regCont.getNames() + + print('Run the Registration code between %s and %s' % (baseline, target)) + else: + show_message("Must be at least 2 objects loaded to run registration") def register(self): """ @@ -486,6 +490,37 @@ class RegistrationControls(QMainWindow): self.target.addItems(self.names) +def show_message(message, message_type="err", title="An Error Occured..."): + """ + Parameters + ---------- + message : string + The message to be displayed + message_type : string + The type of message e.g. "err" or "info" + title : string + The title of the dialog window + + Examples + -------- + >>> show_message("test") + >>> show_message("test2", "info", "test") + + """ + dialog = QMessageBox() + dialog.setText(message) + dialog.setWindowTitle(title) + icons = { + "err": QMessageBox.Critical, + "info": QMessageBox.Information + } + dialog.setIcon(icons[message_type]) + dialog.setStandardButtons(QMessageBox.Ok) + + # Makes sure doesn't close until user closes it + dialog.exec_() + + if __name__ == "__main__": app = QApplication(sys.argv) # mainWin = AlignControls(['']) diff --git a/tests/pca_tests/stl_file_3.stl b/tests/pca_tests/stl_file_3.stl index c95508eaf21b1af7b779e72c26da6855d97ec416..88e4eb61d256bf21021438b0ede4bd57e1fefd98 100644 --- a/tests/pca_tests/stl_file_3.stl +++ b/tests/pca_tests/stl_file_3.stl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b4d4d2f0165ec971f8311c9eaa03370b19c5f43a29490b9cf486ac2b6d7d0614 +oid sha256:01a1d8abef374f4c78789ab9d5e38b244b99ba5cd34e3ddf2f7ee06f5c3b5d1a size 64084