graph drawing tool
on_edge = function(sx,sy)
	-- check if mouse is on the border of a node and also on an edge to another node.
	-- reading from Surface; I'm going to regret this.
	for _,shape in ipairs(Surface) do
		if shape.type == 'line' then
			if shape.keys then
				-- it's an edge; assuming keys are in a specific, brittle order
				if distance_sq(sx,sy, shape.data[1], shape.data[2]) < 5*5 then
					return shape.keys
				end
				if distance_sq(sx,sy, shape.data[3], shape.data[4]) < 5*5 then
					return shape.keys
				end
			end
		end
	end
end