Fix internal edges for nodes not in the boundary

This commit is contained in:
Patrick Niklaus 2017-03-27 23:32:50 +00:00 committed by Patrick Niklaus
parent 730c809395
commit 3439b21177

View File

@ -110,9 +110,17 @@ class MultiLevelGraph : public util::StaticGraph<EdgeDataT, UseSharedMemory>
// which can be smaller then the total number of nodes. // which can be smaller then the total number of nodes.
// this will save memory in case we sort the border nodes first // this will save memory in case we sort the border nodes first
if (index >= node_to_edge_offset.size() - 1) if (index >= node_to_edge_offset.size() - 1)
return SuperT::BeginEdges(node); {
// On level 0 all edges are border edges
if (level == 0)
return SuperT::BeginEdges(node);
else
return SuperT::EndEdges(node);
}
else else
{
return SuperT::BeginEdges(node) + node_to_edge_offset[index + level]; return SuperT::BeginEdges(node) + node_to_edge_offset[index + level];
}
} }
// We save the level as sentinel at the end // We save the level as sentinel at the end