Skip to content

Ensure supplied position map for planar_layout is owned by view

Jeff Trull requested to merge jaafar/graph-tool:bugfix/planar-layout-pos into master

I found that if I tried using the pos argument to planar_layout I would get an error:

>>> import graph_tool.all as gt
>>> g = gt.lattice([10, 10])
>>> pos = g.new_vp("vector<double>") 
>>> posr = gt.planar_layout(g, pos=pos)
...
ValueError: Received property map for graph <Graph object, undirected, with 100 vertices and 294 edges, at 0x7f0f28470d50> (base: <Graph object, undirected, with 100 vertices and 294 edges, at 0x7f0f28470d50>), expected: <Graph object, undirected, with 100 vertices and 180 edges, at 0x7f0f43447950> (base: <Graph object, undirected, with 100 vertices and 180 edges, at 0x7f0f43447950>)

I believe the issue is that the planar_layout code operates on an undirected view, with properties removed, and the supplied pos is for the base graph. The supplied patch appears to fix the issue.

Merge request reports

Loading