diff --git a/src/SimNDT/gui/previewInspectionsController.py b/src/SimNDT/gui/previewInspectionsController.py new file mode 100644 index 0000000..8336609 --- /dev/null +++ b/src/SimNDT/gui/previewInspectionsController.py @@ -0,0 +1,116 @@ +__author__ = 'Miguel Molero' + +import time + +from PySide.QtGui import * +from PySide.QtCore import * +from SimNDT.graphics.mplWidget import MplCanvas + +import numpy as np + + +class PreviewSingleLaunch(QDialog): + def __init__(self, method, scenario, transducer, parent=None): + super(PreviewSingleLaunch, self).__init__(parent) + self.parent = parent + + mpl = MplCanvas(self, width=3, height=3, dpi=100) + + M, N = np.shape(scenario.I) + Pixel_mm = scenario.Pixel_mm + + XL, YL = method.view(M, N, Pixel_mm, method.Theta, transducer) + + mpl.ax.imshow(scenario.I, vmin=0, vmax=255) + mpl.ax.hold(True) + mpl.ax.plot(YL, XL, 'ks') + mpl.ax.axis('off') + + w = QWidget(self) + h = QVBoxLayout() + h.addWidget(mpl) + w.setLayout(h) + + layout = QVBoxLayout() + layout.addWidget(w) + + self.setLayout(layout) + self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint) + self.setWindowTitle(self.tr("Preview")) + self.setWindowIcon(QIcon(":/previewImage.png")) + + +class PreviewLinearScan(QDialog): + def __init__(self, method, inspection, scenario, transducer, parent=None): + super(PreviewLinearScan, self).__init__(parent) + self.parent = parent + + self.mpl = MplCanvas(width=5, height=5, dpi=100) + self.mpl.ax.axis('off') + + layout = QVBoxLayout() + layout.addWidget(self.mpl) + + self.setLayout(layout) + + self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint) + self.setWindowTitle(self.tr("Preview")) + self.setWindowIcon(QIcon(":/previewImage.png")) + + self.method = method + self.inspection = inspection + self.scenario = scenario + self.transducer = transducer + QTimer.singleShot(300, self.Show) + + def Show(self): + M, N = np.shape(self.scenario.I) + Pixel_mm = self.scenario.Pixel_mm + + for offset in self.inspection.ScanVector: + self.transducer.CenterOffset = offset + XL, YL = self.method.view(M, N, Pixel_mm, self.method.Theta, self.transducer) + self.mpl.ax.imshow(self.scenario.I, vmin=0, vmax=255) + self.mpl.ax.hold(True) + self.mpl.ax.plot(YL, XL, 'ks') + self.mpl.ax.axis('off') + self.mpl.ax.hold(False) + self.mpl.draw() + QCoreApplication.processEvents() + time.sleep(0.25) + + +class PreviewTomography(QDialog): + def __init__(self, inspection, scenario, transducer, parent=None): + super(PreviewTomography, self).__init__(parent) + self.parent = parent + + self.mpl = MplCanvas(width=5, height=5, dpi=100) + self.mpl.ax.axis('off') + + layout = QVBoxLayout() + layout.addWidget(self.mpl) + + self.setLayout(layout) + self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint) + self.setWindowTitle(self.tr("Preview")) + self.setWindowIcon(QIcon(":/previewImage.png")) + + self.inspection = inspection + self.scenario = scenario + self.transducer = transducer + QTimer.singleShot(300, self.Show) + + def Show(self): + M, N = np.shape(self.scenario.I) + Pixel_mm = self.scenario.Pixel_mm + DiameterRing = self.inspection.DiameterRing + Theta = self.inspection.Theta + + XL, YL = self.inspection.view(M, N, DiameterRing, Pixel_mm, Theta, self.transducer) + self.mpl.ax.imshow(self.scenario.I, vmin=0, vmax=255) + self.mpl.ax.hold(True) + self.mpl.ax.plot(YL, XL, 'ks') + self.mpl.ax.axis('off') + self.mpl.ax.hold(False) + self.mpl.draw()