Необходимо нарисовать граф (ориентированный ациклический граф или дерево) на плоскости. Интересуют бесплатные библиотеки на С++, которые работают по принципу: получить матрицу инцидентности или список смежности, а вернуть координаты вершин графа. Если существуют похожие библиотеки, то где их найти?