plink – A Python/Tk link editor¶
Technical documentation of the Python objects that underly PLink. Of interest only to Marc, Nathan, or similar folks.
-
class
plink.LinkEditor(*args, **kwargs)¶ A complete graphical link drawing tool based on the one embedded in Jeff Weeks’ original SnapPea program.
-
active_crossing_data()¶ Return the tuple of edges crossed by the in and out arrows of the active vertex.
-
attach_cursor(reason='')¶
-
clear()¶
-
clicked_on_arrow(vertex)¶
-
crossed_arrows(arrow, ignore_list=[])¶ Return a tuple containing the arrows of the diagram which are crossed by the given arrow, in order along the given arrow.
-
cursor_on_arrow(point)¶
-
destroy_arrow(arrow)¶
-
detach_cursor(reason='')¶
-
done(event=None)¶
-
double_click(event)¶ Event handler for mouse double-clicks.
-
end_dragging_state()¶
-
focus_in(event)¶
-
focus_out(event)¶
-
generic_arrow(arrow)¶
-
generic_vertex(vertex)¶
-
goto_drawing_state(x1, y1)¶
-
goto_start_state()¶
-
make_alternating()¶ Changes crossings to make the projection alternating. Requires that all components be closed.
-
mouse_moved(event)¶ Handler for mouse motion events.
-
move_active(x, y)¶
-
move_is_ok()¶
-
notice_focus()¶
-
reflect()¶
-
set_start_cursor(x, y)¶
-
shift_click(event)¶ Event handler for mouse shift-clicks.
-
single_click(event)¶ Event handler for mouse clicks.
-
update_crossings(this_arrow)¶ Redraw any arrows which were changed by moving this_arrow.
-
verify_drag()¶
-
This module exports the class Arrow which represents a (directed) line segment in a PL link diagram.
-
class
plink.arrow.Arrow(start, end, canvas=None, style='normal', color='black', other_params=None)¶ An arrow in a PL link diagram.
-
draw(crossings=[], recurse=True, skip_frozen=True)¶
-
epsilon= 8¶
-
erase()¶ Prepare the arrow for the garbage collector.
-
expose(crossings=[])¶
-
find_segments(crossings, include_overcrossings=False)¶ Return a list of segments that make up this arrow, each segment being a list of 4 coordinates [x0,y0,x1,y1]. The first segment starts at the start vertex, and the last one ends at the end vertex. Otherwise, endpoints are near crossings where this arrow goes under, leaving a gap between the endpoint and the crossing point. If the include_overcrossings flag is True, then the segments are also split at overcrossings, with no gap.
-
freeze()¶
-
property
frozen¶
-
hide()¶
-
make_faint()¶
-
reverse(crossings=[])¶
-
set_color(color)¶
-
set_end(vertex, crossings=[])¶
-
set_start(vertex, crossings=[])¶
-
too_close(vertex, tolerance=None)¶
-
vectorize()¶
-
This module exports the Crossing class, which represents a crossing in a link diagram, and the ECrossing class which represents an edge of the diagram passing through a crossing.
-
class
plink.crossings.Crossing(over, under, is_virtual=False, label=None)¶ A pair of crossing arrows in a PL link diagram.
-
DT_hit(count, ecrossing)¶ Count the crossing, using DT conventions. Return True on the first hit if the count is odd and the crossing is shared by two components of the diagram. As a side effect, set the flipped attribute on the first hit.
-
clear_marks()¶
-
height(arrow)¶
-
locate()¶
-
mark_component(component)¶
-
reverse()¶
-
sign()¶
-
strand(arrow)¶
-