Beispiel #1
0
    def toggle_box(self):
        """toggle_box()

        If box model shown, then delete it. If not shown, and if no
        focus region in segment dialog, then quit. If not shown, and
        if focus region found, then get its transform and apply to
        box after creating box.
        """

        bm = self.box_model
        if bm.box_shown():
            bm.delete_box()
        else:
            # @ which data region is this??? should we do nothing???
            data_region = self.data_region()
            if data_region == None:
                return
            #VU 1.2129
            # xform = data_region.transform()
            import SegmentMenu
            from SegmentMenu import datamenuseg
            xform = datamenuseg.get_data_region_xform(data_region)
            if xform == None:
                return
            #VU 1.2129
            # box = data_region.xyz_region()
            import SegmentMenu
            from SegmentMenu import datamenuseg
            box = datamenuseg.get_data_region_bounds(data_region)
            bm.reshape_box(box, xform)
Beispiel #2
0
    def marker_boxes_show_cb(self):
        """marker_boxes_show_cb()

        Show boxes around selected markers, with box center at
        marker center and box size equal to marker diameter,
        with a transform matching data size.
        """

        self.marker_boxes_hide_cb()

        ms = self.marker_set
        if ms == None:
            return

        mssm = ms.selected_markers()
        # check if any markers selected
        if len(mssm) == 0:
            msg = 'No selected markers!\n'
            self.status(msg, color='red', blankAfter=15)
            replyobj.warning(msg)
            return

        # check input data exists
        if self.data_item == None:
            msg = 'Input data not found!\n'
            self.status(msg, color='red', blankAfter=15)
            replyobj.warning(msg)
            return

        #VU 1.2129
        # xform = self.data_item.region.transform()
        import SegmentMenu
        from SegmentMenu import datamenuseg
        data_region = self.data_item.region
        #VU 1.2179
        # xform = datamenuseg.get_data_region_xform(data_region)
        xform, tf = datamenuseg.get_data_region_xform(data_region)
        xyz_to_ijk = self.data_item.data.xyz_to_ijk
        #VU 1.2179
        #for im in mssm:
        #    self.marker_boxes.append(self.marker_box_create(im,xform))
        for im in mssm:
            self.marker_boxes.append(
                self.marker_box_create(im,tf,xform, xyz_to_ijk))
            
        return
Beispiel #3
0
    def sweep_out_box(self, pointer_x, pointer_y):
        """sweep_out_box(pointer_x, pointer_y)

        Create box if data region found and it has been transformed.
        """

        data_region = self.data_region()
        if data_region == None:
            return

        #VU 1.2129
        # xform = data_region.transform()
        import SegmentMenu
        from SegmentMenu import datamenuseg
        xform = datamenuseg.get_data_region_xform(data_region)
        if xform == None:
            return

        #VU 1.2129
        # bounds = data_region.xyz_region()
        import SegmentMenu
        from SegmentMenu import datamenuseg
        bounds = datamenuseg.get_data_region_bounds(data_region)

        from VolumeViewer import slice
        xyz_in, xyz_out = slice.box_intercepts(pointer_x, pointer_y,
                                               xform, bounds)

        if xyz_in == None or xyz_out == None:
            return

        if self.xyz_in == None:
            self.xyz_in = xyz_in
        if self.xyz_out == None:
            self.xyz_out = xyz_out

        box = bounding_box((xyz_in, xyz_out, self.xyz_in, self.xyz_out))
        self.box_model.reshape_box(box, xform)