Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/torch/graph.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkoray kavukcuoglu <koray@kavukcuoglu.org>2015-06-18 17:47:33 +0300
committerkoray kavukcuoglu <koray@kavukcuoglu.org>2015-06-18 17:47:33 +0300
commit013e59a3670abf9e558f4749638f4aaac512bbe9 (patch)
tree02b40959f11711c54c0d83274dce274c65b836f2
parentb218960a0742f5aa14f72ddbfca5b4ed8aab47b8 (diff)
parent695dab95971d4a70d8400d49d6af6ca787621ba5 (diff)
Merge pull request #12 from torch/revert-11-graphviz
Revert "use graphviz lib interface instead of dumping dot file"
-rw-r--r--graphviz.lua36
1 files changed, 13 insertions, 23 deletions
diff --git a/graphviz.lua b/graphviz.lua
index 4d7ed69..b549696 100644
--- a/graphviz.lua
+++ b/graphviz.lua
@@ -88,7 +88,7 @@ where `n` is the number of nodes in the graph.
Coordinates are in the interval [0, 1].
]]
-function graph.graphvizLayout(g, algorithm, fname)
+function graph.graphvizLayout(g, algorithm)
if not graphvizOk or not cgraphOk then
error("graphviz library could not be loaded.")
end
@@ -98,9 +98,7 @@ function graph.graphvizLayout(g, algorithm, fname)
local algorithm = algorithm or "dot"
assert(0 == graphviz.gvLayout(context, graphvizGraph, algorithm),
"graphviz layout failed")
- -- the algorithm that is passed is a loyout algorithm not a rendering
- -- format, which is typically like png, svg or dot
- assert(0 == graphviz.gvRender(context, graphvizGraph, 'dot', nil),
+ assert(0 == graphviz.gvRender(context, graphvizGraph, algorithm, nil),
"graphviz render failed")
-- Extract bounding box.
@@ -119,19 +117,6 @@ function graph.graphvizLayout(g, algorithm, fname)
positions[id][2] = y
end
- -- if a file name is given, then render to that file
- if fname then
- local context = graphviz.gvContext()
- local graphvizGraph = cgraph.agmemread(g:todot())
- assert(0 == graphviz.gvLayout(context, graphvizGraph, algorithm),
- "graphviz layout failed")
- assert(0 == graphviz.gvRender(context, graphvizGraph, 'svg', io.open(fname .. '.svg','w')),
- "graphviz render failed")
- graphviz.gvFreeLayout(context, graphvizGraph)
- cgraph.agclose(graphvizGraph)
- graphviz.gvFreeContext(context)
- end
-
-- Clean up.
graphviz.gvFreeLayout(context, graphvizGraph)
cgraph.agclose(graphvizGraph)
@@ -141,15 +126,20 @@ end
function graph.dot(g,title,fname)
- local qt_display = fname == nil
- fname = fname or os.tmpname()
- local fnsvg = fname .. '.svg'
- graph.graphvizLayout(g, 'dot', fname)
- if qt_display then
+ local gv = g:todot(title)
+ local fngv = (fname or os.tmpname()) .. '.dot'
+ local fgv = io.open(fngv,'w')
+ fgv:write(gv)
+ fgv:close()
+ local fnsvg = (fname or os.tmpname()) .. '.svg'
+ os.execute('dot -Tsvg -o ' .. fnsvg .. ' ' .. fngv)
+ if not fname then
require 'qtsvg'
- local qs = qt.QSvgWidget(fname .. '.svg')
+ local qs = qt.QSvgWidget(fnsvg)
qs:show()
+ os.remove(fngv)
os.remove(fnsvg)
+ -- print(fngv,fnpng)
return qs
end
end