main module

synopsis:Module contains main class TApp, responsible for handling events.
class main.TApp(master)

Bases: object

Class represents application as a whole. It handles events.

Parameters:master (Tk()) – tk root object.
AVAILABLE_COLOURS = ('red', 'blue', 'yellow', 'green', 'orange', 'purple', 'indigo', 'fuchsia', 'white', 'navy', 'brown')

List of named colours from which a randome one will be drawn.

add_vertex_to_polygon(event)

Add signle vertex to polygon based on current mouse position.

Parameters:event (tkinter.Event) – canvas RMB click event object.
adjacent_polygon(event, overlap_num=-1)

Complete a single polygon using points from an adjacent one.

Parameters:
  • event (tkinter.Event) – canvas LMB double click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
assign_material_to_shape(shape_num, material)

Assign material to a chosen shape.

Parameters:
  • shape_num (integer) – shape list index.
  • material (string) – material name.
bind_application_events()

Bind application events to handling methods.

bind_canvas_events()

Bind canvas events to handling methods.

calculate_cylin_sector_boundary_pts_window(centre, radius, start, extent)

Calculate the cylinder sector boundary points given its centre, radius, start and extent angles.

Parameters:
  • centre (TPoint) – cylinder sector centre coordinates.
  • radius (float) – cylinder sector radius.
  • start (float) – angle (in degrees) between positive OX halfaxis and centre-bp1 radius.
  • extent (float) – angle (in degrees) between centre-bp1 radius and centree-bp2 radius.
Returns:

cylinder sector boundary points.

Return type:

TPoint, TPoint

calculate_cylin_sector_start_extent(centre, bp1, bp2, radius)

Calculate the cylinder sector start and extent angles given 3 points constituing it.

Parameters:
  • centre (TPoint) – cylinder sector centre coordinates.
  • bp1 (TPoint) – first boundary point, establishing radius starting the slice.
  • bp2 (TPoint) – second boundary point, establishing radius ending the slice.
  • radius (float) – cylinder sector radius.
Returns:

cylinder sector start and extent angles in degrees.

Return type:

float, float

canvas_click(event)

Handle a left mouse click event.

Parameters:event (tkinter.Event) – tk mouse click event object.
canvas_double_click(event)

Handle a canvas double click, which ends drawing a polygon.

Parameters:event (tkinter.Event) – canvas double LMB click event object.
canvas_interrupt(event=None)

Cease pending mouse operation (draw, move, resize).

Parameters:event (tkinter.Event) – canvas RMB click event object.
canvas_mouse_move(event)

Handle a mouse move event.

Parameters:event (tkinter.Event) – tk mouse move event object.
canvas_refresh(*, swap=False)

Redraw all shapes on canvas.

Parameters:swap (boolean) – shapes list selection swap toggle.
canvas_resize(event)

Handle a canvas dimensions alteration event.

Parameters:event (tkinter.Event) – canvas configure event object.
change_model_size()

Change model maximal x and y coordinates.

change_shape_colour(event=None, shape_num=None)

Change selected shape colour using tkInter colorchooser dialog.

Parameters:
  • event (tkinter.Event) – canvas RMB click event object.
  • shape_num (integer) – selected shape list index.
click_move_shape_select(event, overlap_num=-1)

Make a copy of the shape to be moved.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
click_resize_shape_select(event, overlap_num=-1)

Make a copy of the shape to be resized.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
copy_ctrl_c(event)

Handle a ctrl+c keystroke event.

Parameters:event (tkinter.Event) – ctrl+c keystroke event object.
copy_shape(event=None, *, shape_num=-1)

Make a copy of a shape overlapped by the mouse pointer or specified by given number.

Parameters:
  • event (tkinter.Event) – object of the event evoking this method (keyboard shortcut, mouse menu position).
  • shape_num (integer) – list index of the shape being copied.
create_cylin()

Create a cylinder from keyboard input.

create_cylin_sector()

Create a cylinder sector from keyboard input.

create_polygon()

Create a cpolygon from keyboard input.

create_rectangle()

Create a rectangle from keyboard input.

cylin_sector_click_draw(event, overlap_num=-1)

Handle a click event while the active mouse working mode is set to ‘draw’ and shape mode is set to ‘CylinSector’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylin_sector_click_move_insert(event, overlap_num=-1)

Handle a click event while the active mouse working mode is set to ‘move’, there is a shape being moved and shape mode is set to ‘CylinSector’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylin_sector_click_resize_insert(event, overlap_num=-1)

Handle a click event while the active mouse working mode is set to ‘resize’, there is a shape being moved and shape mode is set to ‘CylinSector’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylin_sector_mouse_move_draw(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘draw’ and shape mode is set to ‘CylindSector’.

Parameters:
  • event (tkinter.Event) – canvas mouse move event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylin_sector_mouse_move_move(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘move’ and moved shape type is ‘CylinSector’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylin_sector_mouse_move_resize(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘resize’ and resized shape type is ‘CylinSector’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylin_sector_overlap_coord(shape, x, y, radius)

” Return coordinates of a cylinder sector characteristic point overlapped by the mouse.

Parameters:
  • shape – examined cylinder sector object.
  • type – TCylinSector
  • x – mouse pointer position x coordinate in pixels.
  • type – integer
  • y – mouse pointer position y coordinate in pixels.
  • type – integer
  • radius – radius of the area around a point, trigerring an overlap.
  • type – integer
Returns:

overlapped sylinder sector point coordinates in pixels.

Return type:

TPoint

cylin_sector_overlap_coord_mod(shape, x, y, radius)

Return model coordinates of a cylinder sector characteristic point overlapped by the mouse.

Parameters:
  • shape (TCylinSector) – examined cylinder sector object.
  • x (float) – mouse pointer position x coordinate in metres.
  • y (float) – mouse pointer position y coordinate in metres.
  • radius (float) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped cylinder sector point coordinates in metres.

Return type:

TPoint

cylinder_click_draw(event, overlap_num=-1)

Handle a click event while the active mouse working mode is set to ‘draw’ and shape mode is set to ‘Cylinder’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylinder_click_move_insert(event, overlap_num=-1)

Handle a click event while the active mouse working mode is set to ‘move’, there is a shape being moved and shape mode is set to ‘Cylinder’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylinder_click_resize_insert(event, overlap_num=-1)

Hande a click event while the active mouse working mode is set to ‘resize’, there is a shape being moved and shape mode is set to ‘Cylinder’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylinder_mouse_move_draw(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘draw’ and shape mode is set to ‘Cylinder’.

Parameters:
  • event (tkinter.Event) – canvas mouse move event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylinder_mouse_move_move(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘move’ and moved shape type is ‘Cylinder’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylinder_mouse_move_resize(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘resize’ and resized shape type is ‘Cylinder’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
cylinder_overlap_coord(shape, x, y, radius)

Return coordinates of a cylinder characteristic point overlapped by the mouse.

Parameters:
  • shape (TCylin) – examined cylinder object.
  • x (integer) – mouse pointer position x coordinate in pixels.
  • y (integer) – mouse pointer position y coordinate in pixels.
  • radius (integer) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped cylinder point coordinates in pixels.

Return type:

TPoint

cylinder_overlap_coord_mod(shape, x, y, radius)

Return model coordinates of a cylinder characteristic point overlapped by the mouse.

Parameters:
  • shape (TCylin) – examined cylinder object.
  • x (float) – mouse pointer position x coordinate in metres.
  • y (float) – mouse pointer position y coordinate in metres.
  • radius (float) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped cylinder point coordinates in metres.

Return type:

TPoint

decrease_shapes_width(event)

Decrease width of all shapes in the list.

Parameters:event (tkinter.Event) – tk up arrow press event object.
detect_shared_points_begin_end(polygon=None, pt_beg=None, pt_end=None)

Detect first and last of the vertices shared by two polygons.

Parameters:
  • polygon (TPolygon) – examined polygon object.
  • pt_beg (TPoint) – point from which to start the search.
  • pt_end (TPoint) – point on which to end the search.
dispatch_model_move(event)

Set the initial mouse position while holding its wheel down to None.

display_echogram()

Invoke a gprMax tool to display an entire echogram.

display_mouse_position(event)

Display current mouse position in m on the status bar.

Parameters:event (Tk.Event) – tk mouse move event object.
display_right_button_popup(event)

Display right mouse button popup (context) menu.

Parameters:event (tkinter.Event) – RMB press event object.
display_settings()

Show display settings dialog window.

display_trace()

Invoke a gprMax tool to display a single trace.

distmodwin(dist)

Convert a distance in model coordinates to window coordinates.

Parameters:dist (float) – distance to be converted.
Returns:distance in pixels.
Return type:integer
distwinmod(dist)

Convert a distance in window coordinates to model coordinates.

Parameters:dist (integer) – distance to be converted.
Returns:distance in metres.
Return type:float
double_click = False

double LMB click flag.

draw_click(event)

Handle a click event while the active mouse working mode is set to ‘draw’.

Parameters:event (tkinter.Event) – canvas LMB click event object.
draw_mouse_move(event)

Handle a mouse move event while the active mouse working mode is set to ‘draw’.

Parameters:event (tkinter.Event) – canvas mouse move event object.
edit_cylin(shape_num)

Change cylinder dimensions from keyboard input.

Parameters:shape_num (integer) – selected shape list index.
edit_cylin_sector(shape_num)

Change cylinder sector dimensions from keyboard input.

Parameters:shape_num (integer) – selected shape list index.
edit_polygon(shape_num)

Display polygon vertices coordinates and enable to change them manually.

Parameters:shape_num (integer) – selected shape list index.
edit_polygon_vertex(event)

Ask for new coordinates of a selected polygon vertex.

Parameters:event (tkinter.Event) – canvas RMB click event object.
edit_rectangle(shape_num)

Change rectangle dimensions from keyboard input.

Parameters:shape_num (integer) – selected shape list index.
edit_shape(event)

Change shape dimensions from keyboard input.

Parameters:event (tkinter.Event) – canvas RMB click event object.
edit_title()

Edit model title.

export_canvas_to_image()

Export the model to a PNG image.

export_hdf5_to_ascii()

Export a gprMax output file in HDF5 format to ASCII.

first_click = False

first LMB click flag.

first_click_pos = None

position of first click in pixels.

handle_input_command(line, line_num)

Recognise and handle a command given in a line.

Parameters:
  • line (string) – line to be parsed.
  • line_num (integer) – parsed line number.
increase_shapes_width(event)

Increase width of all shapes in the list.

Parameters:event (tkinter.Event) – tk up arrow press event object.
init_canvas()

Init frame containing main canvas and its scrollbars.

init_grid()

Init main window grid properties.

init_main_menu()

Create main menu and its positions.

init_main_toolbar()

Create main toolbar and its buttons.

init_model_move(event)

Save the initial mouse position while holding its wheel down.

init_popup_menu()

Create a right-click popup menu.

init_status_bar()

Init status bar.

len_tot_x = 10.0

total model length in x direction.

len_tot_y = 10.0

total model length in y direction.

load_toolbar_icons()

Try to load toolbar buttons icons. At failing, display appropriate message.

manipulated_shape_num = -1

list index of the manipulated (moved/resized) shape.

merge_traces()

Invoke a gprMax tool to merge output files containing traces.

model_horizontal_scroll(action, number, units='')

Handle the visible model area move in the x direction.

Parameters:
  • action (string) – type of action performed on the scrollbar.
  • number (float) – displacement of the scrollbar.
  • units (string) – units of the displacement.
model_vertical_scroll(action, number, units='')

Handle the visible model area move in the y direction.

Parameters:
  • action (string) – type of action performed on the scrollbar.
  • number (float) – displacement of the scrollbar.
  • units (string) – units of the displacement.
modwin(pt)

Convert a point in model coordinates to window coordinates.

Parameters:pt (TPoint) – point to be converted.
Returns:point in window coordinates.
Return type:TPoint
mouse_overlaps_cylinder(shape, x, y, radius)

Check whether the mouse pointer overlaps a cylinder.

Parameters:
  • shape (TCylin) – examined shape object.
  • x (integer) – mouse pointer position x coordinate in pixels.
  • y (integer) – mouse pointer position y coordinate in pixels.
  • radius (integer) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped cylinder list index.

Return type:

boolean

mouse_overlaps_cylinder_sector(shape, x, y, radius)

Check whether the mouse pointer overlaps a cylinder sector.

Parameters:
  • shape (TCylinSector) – examined shape object.
  • x (integer) – mouse pointer position x coordinate in pixels.
  • y (integer) – mouse pointer position y coordinate in pixels.
  • radius (integer) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped cylinder sector list index.

Return type:

boolean

mouse_overlaps_polygon(shape, x, y, radius)

Check whether the mouse pointer overlaps a polygib.

Parameters:
  • shape (TPolygon) – examined shape object.
  • x (integer) – mouse pointer position x coordinate in pixels.
  • y (integer) – mouse pointer position y coordinate in pixels.
  • radius (integer) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped polygon list index.

Return type:

boolean

mouse_overlaps_rectangle(shape, x, y, radius)

Check whether the mouse pointer overlaps a rectangle.

Parameters:
  • shape (TRect) – examined shape object.
  • x (integer) – mouse pointer position x coordinate in pixels.
  • y (integer) – mouse pointer position y coordinate in pixels.
  • radius (integer) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped rectangle list index.

Return type:

boolean

mouse_overlaps_shape(x, y, radius)

Check whether the mouse pointer overlaps a shape. If so, return its list index; otherwise return -1.

Parameters:
  • x – mouse pointer position x coordinate in pixels.
  • y (integer) – mouse pointer position y coordinate in pixels.
  • radius (integer) – radius of the area around a point, trigerring an overlap.
Typex:

integer

Returns:

overlapped shape list index.

Return type:

integer

mouse_wheel(event)

Handle a mouse wheel rotation event.

Parameters:event (tkinter.Event) – window mouse wheel rotation event object.
move = False

shape move mouse mode flag.

move_click(event)

Handle a mouse move event while the active mouse working mode is set to ‘move’.

Parameters:event (tkinter.Event) – canvas LMB click event object.
move_const_point = None

reference point dor calculating move offset.

move_cursor_down(event)

Manually move the mouse cursor one pixel down with a keystroke.

Parameters:event (tkinter.Event) – window down arrow press event object.
move_cursor_left(event)

Manually move the mouse cursor one pixel left with a keystroke.

Parameters:event (tkinter.Event) – window left arrow press event object.
move_cursor_right(event)

Manually move the mouse cursor one pixel right with a keystroke.

Parameters:event (tkinter.Event) – window right arrow press event object.
move_cursor_up(event)

Manually move the mouse cursor one pixel up with a keystroke.

Parameters:event (tkinter.Event) – window up arrow press event object.
move_mouse_move(event)

Handle a mouse move event while the active mouse working mode is set to ‘draw’.

Parameters:event (tkinter.Event) – canvas LMB click event object.
move_visible_model(event)

Handle a mouse move while its wheel is pressed move event.

Parameters:event (tkinter.Event) – canvas mouse move while wheel is down event object.
overlap_coord(shape, x, y, radius)

Return coordinates of a shape characteristic point or a vertex overlapped by the mouse.

Parameters:
  • shape (TRect, TCylin, TCylinSector, TPolygon) – examined shape object.
  • x (integer) – mouse pointer position x coordinate in pixels.
  • y (integer) – mouse pointer position y coordinate in pixels.
  • radius (integer) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped point coordinates in pixels.

Return type:

TPoint

overlap_coord_mod(shape, x, y, radius)

Return model coordinates of a shape characteristic point or a vertex overlapped by the mouse.

Parameters:
  • shape (TRect, TCylin, TCylinSector, TPolygon) – examined shape object.
  • x (float) – mouse pointer position x coordinate in metres.
  • y (float) – mouse pointer position y coordinate in metres.
  • radius (float) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped point coordinates in metres.

Return type:

TPoint

parse_to_gprmax()

Parse model created in program to a gprMax compliant text file.

paste_ctrl_v(event, *, deltax=15, deltay=15)

Handle a ctrl+v keystroke event

Parameters:
  • event (tkinter.Event) – ctrl+v keystroke event object.
  • deltax (integer) – pasted shape offset in x direction in pixels.
  • deltay (integer) – pasted shape offset in y direction in pixels.
paste_shape(event=None, deltax=15, deltay=15)

Paste shape into model.

Parameters:
  • event (tkinter.Event) – object of the event evoking this method (keyboard shortcut, mouse menu position).
  • deltax (integer) – offset of the pasted shape in the x direction in pixels.
  • deltay (integer) – offset of the pasted shape in the y direction in pixels.
polygon_click_draw(event, overlap_num=-1)

Handle a click event while the active mouse working mode is set to ‘draw’ and shape mode is set to ‘Polygon’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
polygon_click_move_insert(event, overlap_num=-1)

Handle a click event while the active mouse working mode is set to ‘move’, there is a shape being moved and shape mode is set to ‘Polygon’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
polygon_click_resize_insert(event, overlap_num=-1)

Handle a click event while the active mouse working mode is set to ‘resize’, there is a shape being moved and shape mode is set to ‘Polygon’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
polygon_double_click_draw(event)

Handle a double click event while the active mouse working mode is set to ‘draw’ and shape mode is set to ‘Polygon’.

Parameters:
  • event (tkinter.Event) – canvas LMB double click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
polygon_mouse_move_draw(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘draw’ and shape mode is set to ‘Polygon’.

Parameters:
  • event (tkinter.Event) – canvas mouse move event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
polygon_mouse_move_move(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘move’ and moved shape type is ‘Polygon’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
polygon_mouse_move_resize(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘resize’ and moved shape type is ‘Polygon’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
polygon_overlap_coord(shape, x, y, radius)

Return coordinates of a polygon vertex overlapped by the mouse.

Parameters:
  • shape (TPolygon) – examined polygon object.
  • x (integer) – mouse pointer position x coordinate in pixels.
  • y (integer) – mouse pointer position y coordinate in pixels.
  • radius (integer) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped polygon point coordinates in pixels.

Return type:

TPoint

polygon_overlap_coord_mod(shape, x, y, radius)

Return model coordinates of a polygon vertex overlapped by the mouse.

Parameters:
  • shape (TCylinSector) – examined cylinder sector object.
  • x (float) – mouse pointer position x coordinate in metres.
  • y (float) – mouse pointer position y coordinate in metres.
  • radius (float) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped polygon point coordinates in metres.

Return type:

TPoint

polygon_points = []

buffor containing vertices of polygon being drawn.

prev_mouse_pos = None

previous mouse position.

read_model_file()

Read and load a GprMax compliant input file.

recolour_randomly()

Assign random colours from AVAILABLE_COLOURS list to all shapes.

rectangle_click_draw(event, overlap_num=-1)

Handle a click event while the active mouse working mode is set to ‘draw’ and shape mode is set to ‘Rectangle’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
rectangle_click_move_insert(event, overlap_num=-1)

Handle a click event while the active mouse working mode is set to ‘move’, there is a shape being moved and shape mode is set to ‘Rectangle’.

Parameters:
  • type – tkinter.Event
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
rectangle_click_resize_insert(event, overlap_num=-1)

Handle a click event while the active mouse working mode is set to ‘resize’, there is a shape being moved and shape mode is set to ‘Rectangle’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
rectangle_mouse_move_draw(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘draw’ and shape mode is set to ‘Rectangle’.

Parameters:
  • event (tkinter.Event) – canvas mouse move event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
rectangle_mouse_move_move(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘move’ and moved shape type is ‘Rectangle’.

Parameters:
  • type – tkinter.Event
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
rectangle_mouse_move_resize(event, overlap_num=-1)

Handle a mouse move event while the active mouse working mode is set to ‘resize’ and resized shape type is ‘Rectangle’.

Parameters:
  • event (tkinter.Event) – canvas LMB click event object.
  • overlap_num (integer) – list index of a shape overlapped by the mouse.
rectangle_overlap_coord(shape, x, y, radius)

Return coordinates of a rectangle vertex overlapped by the mouse.

Parameters:
  • shape (TRect) – examined rectangle object.
  • x (integer) – mouse pointer position x coordinate in pixels.
  • y (integer) – mouse pointer position y coordinate in pixels.
  • radius (integer) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped rectangle point coordinates in pixels.

Return type:

TPoint

rectangle_overlap_coord_mod(shape, x, y, radius)

Return model coordinates of a rectangle vertex overlapped by the mouse.

Parameters:
  • shape (TRect) – examined rectangle object.
  • x (float) – mouse pointer position x coordinate in metres.
  • y (float) – mouse pointer position y coordinate in metres.
  • radius (float) – radius of the area around a point, trigerring an overlap.
Returns:

overlapped rectangle point coordinates in metres.

Return type:

TPoint

remove_all_shapes()

Remove all shapes.

remove_polygon_vertex(event)

Remove polygon vertex.

Parameters:event (tkinter.Event) – canvas RMB click event object.
remove_shape(event)

Remove a shape if mouse overlapses it.

Parameters:event (tkinter.Event) – event evoking this method (Del keystroke, RMB click)
remove_top_shape()

Remove shape at the top of the list.

resize = False

shape resize mouse mode flag.

resize_click(event)

Handle a click event while the active mouse working mode is set to ‘resize’.

Parameters:event (tkinter.Event) – canvas LMB click event object.
resize_mouse_move(event)

Handle a mouse move event while the active mouse working mode is set to ‘resize’.

Parameters:event (tkinter.Event.) – canvas LMB click event object.
resized_point = None

coordinates of manipulated shape point/vertex.

run_gprmax(filename=None)

Run gprMax on specified input file.

Parameters:filename (string) – input file name.
scale = 100.0

zoom scale in percent.

scrollbars_zoom_in()

Scale scrollbars after zooming in the model view.

scrollbars_zoom_out()

Scale scrollbars after zooming out the model view.

second_click = False

second LMB click flag.

second_click_pos = None

position of second click in pixels.

select_shape(event)

Select a single shape.

Parameters:event (tkinter.Event) – canvas RMB click event object.
select_shape_on_list(shape_num)

Distinguish the selected shape on the list in the shapes frame.

Parameters:shape_num (integer) – selected shape list index.
set_mode_cylin_sector(event=None)

Set drawn shape to a cylinder sector.

Parameters:event (tkinter.Event) – button click event object.
set_mode_cylinder(event=None)

Set drawn shape to a cylinder.

Parameters:event (tkinter.Event) – button click event object.
set_mode_polygon(event=None)

Set drawn shape to a polygon.

Parameters:event (tkinter.Event) – button click event object.
set_mode_rectangle(event=None)

Set drawn shape to a rectangle.

Parameters:event (tkinter.Event) – button click event object.
set_mouse_mode_draw(event=None)

Set mouse mode to “draw”.

Parameters:event (tkinter.Event) – button click event object.
set_mouse_mode_move(event=None)

Set mouse mode to “move”.

Parameters:
  • event – button click event object.
  • type – tkinter.Event
set_mouse_mode_resize(event=None)

Set mouse mode to “resize”.

Parameters:event (tkinter.Event) – button click event object.
shape_buffer = None

buffor containing shape being manipulated (/moved/resized).

shapes_width

Property for self.shapes_width.

Returns:shape width.
Return type:integer.
survey_settings()

Show survey settings dialog window and change their values.

toggle_grid()

Toggle displaying grid lines.

undo_operation(event=None)

Undo last operation.

Parameters:event (tkinter.Event) – object of the event evoking this method (keyboard shortcut, mouse menu position).
view_zoom_in(event=None)

Zoom in the model view.

Parameters:event (tkinter.Event) – object of the event evoking this method (keyboard shortcut, mouse menu position, toolbar button).
view_zoom_out(event=None)

Zoom out the model view.

Parameters:event (tkinter.Event) – object of the event evoking this method (keyboard shortcut, mouse menu position, toolbar button).
view_zoom_reset()

Restore default model view.

winmod(pt)

Convert a point in window coordinates to model coordinates.

Parameters:pt (TPoint) – point to be converted.
Returns:point in model coordinates.
Return type:TPoint
write_array_to_file(fileh, array, dims=2)

Write a two-dimensional array into a ASCII file row by row.

Parameters:
  • fileh (_io.TextIOWrapper) – file handler.
  • array (list) – array to be saved.
  • dims (integer) – number of dimensions.
main.centre_window(window)

Put the main application window in the middle of the screen.

Parameters:window (tkinter.Tk) – main windows object.
main.main()

Initialise and start the application.