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)¶
-