static BoundingBox labelBoundingBoxForNode(Graph *graph, node n) { IntegerProperty *viewShape = graph->getProperty<IntegerProperty>("viewShape"); LayoutProperty *viewLayout = graph->getProperty<LayoutProperty>("viewLayout"); SizeProperty *viewSize = graph->getProperty<SizeProperty>("viewSize"); BoundingBox renderingBox; GlyphsManager::getGlyph(viewShape->getNodeValue(n))->getTextBoundingBox(renderingBox); const Coord &pos = viewLayout->getNodeValue(n); const Size &size = viewSize->getNodeValue(n) * Size(renderingBox.width(), renderingBox.height(), renderingBox.depth()); return BoundingBox(pos - size/2.f, pos + size/2.f); }