graph drawing tool
A = function()
	local font = love.graphics.newFont(scale(20))
	love.graphics.setFont(font)  -- editor objects implicitly depend on current font
	-- translate Nodes to Surface
	Surface = {}
	for key,node in pairs(Nodes) do
		node.id = key
		compute_layout(node, node.x,node.y, Surface, font)
	end
	-- draw edges after all nodes have been initialized
	for key,node in pairs(Nodes) do
		for _,d in ipairs(node.outgoing_edges) do
			compute_layout_for_edge(key, d)
		end
	end
	-- continue the pipeline
	B(font)
	-- TODO: ugly that we're manipulating editor objects twice
end