Exemple #1
0
    def onrelease(self, event):
        modifiers = QApplication.keyboardModifiers()
        self.modifying_modes = False
        if modifiers == QtCore.Qt.ShiftModifier:
            self.modifying_modes = True

        print('button:', event.button, 'old color gmm:', self.genren.color_gmm)
        if event.button == 3:
            color = QColorDialog().getColor()
            self.genren.color_gmm[self.pt_selected, 1:] = np.array(
                [color.redF(), color.greenF(),
                 color.blueF()])
            print(self.genren.color_gmm.shape)
        if self.modifying_modes and event.button == 1:
            color = QColorDialog().getColor()
            new_color = [
                self.cm_to_cv(event.xdata),
                color.redF(),
                color.greenF(),
                color.blueF()
            ]
            cl = self.genren.color_gmm.tolist()
            cl.append(new_color)
            cl.sort(key=lambda x: x[0])
            self.genren.color_gmm = np.array(cl)
        print('new color gmm:', self.genren.color_gmm)

        self.genren.update_gmm_transfer_function()
        self.main_interface.do_update()
        self.update_plot()
        self.pt_selected = None
        self.pressed_plot_pt = None
Exemple #2
0
    def onrelease(self, event):
        modifiers = QApplication.keyboardModifiers()
        self.modifying_modes = False
        if modifiers == QtCore.Qt.ShiftModifier:
            self.modifying_modes = True

        if self.in_op(event):
            plot_pt = np.array([event.xdata, event.ydata])
            if self.modifying_modes and plot_pt[0] is not None:
                self.modifying_modes = False
                if event.button == 1:
                    new_pt = np.array(
                        [plot_pt[0], self.min_bandwidth, plot_pt[1]])
                    self.genren.opacity_gmm = np.vstack(
                        [self.genren.opacity_gmm, new_pt])
                elif event.button == 3:
                    closest_mean_ind = np.argmin(
                        np.linalg.norm(plot_pt - self.op_gmm_pts, axis=1))
                    mean_pt = self.op_gmm_pts[closest_mean_ind, :]
                    if np.linalg.norm(
                            mean_pt -
                            plot_pt) / self.fig_x_diam < self.selection_thresh:
                        subset_inds = np.arange(self.genren.opacity_gmm.
                                                shape[0]) != closest_mean_ind
                        self.genren.opacity_gmm = self.genren.opacity_gmm[
                            subset_inds, :]
        if self.in_cm(event):
            if event.button == 3:
                color = QColorDialog().getColor()
                self.genren.color_gmm[self.pt_selected, 1:] = np.array(
                    [color.redF(), color.greenF(),
                     color.blueF()])
                print(self.genren.color_gmm.shape)
            if self.modifying_modes and event.button == 1:
                color = QColorDialog().getColor()
                new_color = [
                    self.cm_to_cv(event.xdata),
                    color.redF(),
                    color.greenF(),
                    color.blueF()
                ]
                cl = self.genren.color_gmm.tolist()
                cl.append(new_color)
                cl.sort(key=lambda x: x[0])
                self.genren.color_gmm = np.array(cl)

        self.genren.update_gmm_transfer_function()
        self.main_interface.do_update()
        self.plot_update()
        self.pt_selected = None
        self.pressed_plot_pt = None