def _create_graphic(self) -> Graphics.LineGraphic: line_scan_graphic = Graphics.LineGraphic() line_scan_graphic.graphic_id = "line_scan" line_scan_graphic.label = _("Line Scan") line_scan_graphic.vector = self.__stem_controller.line_scan_vector line_scan_graphic.is_bounds_constrained = True return line_scan_graphic
def test_changing_region_properties_change_drawn_graphic_properties(self): with TestContext.create_memory_context() as test_context: document_model = test_context.create_document_model() data_item = DataItem.DataItem(numpy.zeros((8, 8), numpy.uint32)) document_model.append_data_item(data_item) display_item = document_model.get_display_item_for_data_item(data_item) regions = list() regions.append(Graphics.PointGraphic()) regions.append(Graphics.RectangleGraphic()) regions.append(Graphics.EllipseGraphic()) regions.append(Graphics.LineGraphic()) regions.append(Graphics.IntervalGraphic()) regions.append(Graphics.ChannelGraphic()) for region in regions: region.label = "label" region.is_position_locked = False region.is_shape_locked = False region.is_bounds_constrained = False display_item.add_graphic(region) drawn_graphic = display_item.graphics[-1] self.assertEqual(region.label, drawn_graphic.label) self.assertEqual(region.is_position_locked, drawn_graphic.is_position_locked) self.assertEqual(region.is_shape_locked, drawn_graphic.is_shape_locked) self.assertEqual(region.is_bounds_constrained, drawn_graphic.is_bounds_constrained) region.label = "label2" region.is_position_locked = True region.is_shape_locked = True region.is_bounds_constrained = True self.assertEqual(region.label, drawn_graphic.label) self.assertEqual(region.is_position_locked, drawn_graphic.is_position_locked) self.assertEqual(region.is_shape_locked, drawn_graphic.is_shape_locked) self.assertEqual(region.is_bounds_constrained, drawn_graphic.is_bounds_constrained)
def test_specific_parts_take_priority_over_all_part(self): # setup with TestContext.create_memory_context() as test_context: document_controller = test_context.create_document_controller() document_model = document_controller.document_model display_panel = document_controller.selected_display_panel data_item = DataItem.DataItem(numpy.zeros((10, 10))) document_model.append_data_item(data_item) display_item = document_model.get_display_item_for_data_item( data_item) display_panel.set_display_panel_display_item(display_item) header_height = display_panel.header_canvas_item.header_height display_panel.root_container.layout_immediate( (1000 + header_height, 1000)) # run test rect_region = Graphics.RectangleGraphic() rect_region.bounds = (0.25, 0.25), (0.5, 0.5) line_region = Graphics.LineGraphic() line_region.start = (0.5, 0.5) line_region.end = (0.5, 1.0) # draws line, then rect display_item.add_graphic(line_region) display_item.add_graphic(rect_region) display_item = document_model.get_display_item_for_data_item( data_item) # clicking on line should select it display_panel.display_canvas_item.simulate_click((500, 600)) self.assertEqual(display_item.graphic_selection.indexes, set( (0, )))
def test_selected_item_takes_priority_over_all_part(self): # setup document_model = DocumentModel.DocumentModel() document_controller = DocumentController.DocumentController( self.app.ui, document_model, workspace_id="library") with contextlib.closing(document_controller): display_panel = document_controller.selected_display_panel data_item = DataItem.DataItem(numpy.zeros((10, 10))) document_model.append_data_item(data_item) display_item = document_model.get_display_item_for_data_item( data_item) display_panel.set_display_panel_display_item(display_item) header_height = display_panel.header_canvas_item.header_height display_panel.root_container.layout_immediate( (1000 + header_height, 1000)) # run test rect_region = Graphics.RectangleGraphic() rect_region.bounds = (0.25, 0.25), (0.5, 0.5) line_region = Graphics.LineGraphic() line_region.start = (0.0, 1.0) line_region.end = (0.75, 0.25) # draws line, then rect display_item.add_graphic(line_region) display_item.add_graphic(rect_region) display_item = document_model.get_display_item_for_data_item( data_item) display_panel.display_canvas_item.simulate_click((50, 950)) self.assertEqual(display_item.graphic_selection.indexes, set( (0, ))) display_panel.display_canvas_item.simulate_click((500, 500)) self.assertEqual(display_item.graphic_selection.indexes, set( (0, )))
def test_region_mask_with_different_types_of_graphics(self): line_graphic = Graphics.LineGraphic() line_graphic.start = (0.25, 0.25) line_graphic.end = (0.75, 0.75) spot_graphic = Graphics.SpotGraphic() spot_graphic.bounds = (0.2, 0.2), (0.1, 0.1) ellipse_graphic = Graphics.EllipseGraphic() ellipse_graphic.bounds = (0.2, 0.2), (0.1, 0.1) rect_graphic = Graphics.RectangleGraphic() rect_graphic.bounds = (0.25, 0.25), (0.5, 0.5) point_graphic = Graphics.PointGraphic() point_graphic.position = (0.25, 0.25) wedge_graphic = Graphics.WedgeGraphic() line_graphic.get_mask((256, 256)) spot_graphic.get_mask((256, 256)) ellipse_graphic.get_mask((256, 256)) rect_graphic.get_mask((256, 256)) point_graphic.get_mask((256, 256))