Rewrite the drawing function to take two functions as parameters

These function will be called on each edge and node in the graph and
allow the user to determine how the graph is drawn.
This commit is contained in:
Robert Machmer 2016-01-09 11:27:02 +01:00
parent b30389bf8a
commit 86788b748d

View File

@ -151,13 +151,21 @@ function Graph.new()
end
---
-- This function receives a single parameter of type function to which it
-- will pass the edges and nodes tables. This means the user has to provide
-- his own drawing function.
-- @param func - The function to pass the tables to.
-- Draws the graph.
-- Takes two callback functions as a parameter. These will be called
-- on each edge and node in the graph and will be used to wite a custom
-- drawing function.
-- @param nodeCallback - A callback called on every node.
-- @param edgeCallback - A callback called on every edge.
--
function self:draw( func )
func( edges, nodes );
function self:draw( nodeCallback, edgeCallback )
for _, edge in pairs( edges ) do
edgeCallback( edge );
end
for _, node in pairs( nodes ) do
nodeCallback( node );
end
end
---