I have a database with information about many hypothetical people. This data is oriented for creating a graph connecting related people together. This graph is to represent a genealogical tree, in an appropriate c++ data structure. So far, so good. I have my data structure holding information about a family, with each person being a node, all connected appropriately in a tree.
Now, here is the problem, I am lost in how to go about generating visual data for this family graph. For any given family, I need to generate a typical graph as you would see in a traditional genealogical tree. I intend to render the data with OpenGL and have everything set up in order to do it. My only problem is how to generate the correct positions and sizes for each person's rectangle, so in the end there are no overlaps and every generation of people sits at the same vertical position. Then, I have to add the traditional lines connecting each node in visual data, but that shouldnt be a big problem.
Are there any lightweight libraries prepared to do this function or can someone help me achieve the algorithm to solve this? Thanks