Rocs general graph layout implementation question.

Dilson GuimarĂ£es <[email protected]> Mon, 1 Jun 2020 09:23:07 -0300
Newsgroups gmane.comp.kde.education
Message-ID <CAHw8pqzmyWrTc_0oa3OibvkXCGqCxQSxr3kZZbbobbJehwz=mQ@mail.gmail.com>
Hello,

I am a GSoC student working on the graph layout (drawing) capabilities of
Rocs <https://kde.org/applications/education/org.kde.rocs>. I am going to
include graph layout algorithms to compute the positions for all the graph
vertices, satisfying some constraints such as keeping every vertex inside
the drawing area. I have two options here: use an existing library to do
that or implement the algorithms directly. Because I am new here, I thought
it would be a good idea to ask for your opinion. What option do you think
is more appropriate? Even if there is no clear answer, I would like get
your opinion about the pros and cons of each option. I am providing more
information about each option below.

The graph layout algorithms I would have to implement are optimization
algorithms, which I have some experience with because I do research on
optimization. A positive thing about implementing the algorithms myself is
that I would have more flexibility to make them better suited for Rocs.
Besides that, on future phases of this GSoC project, I will implement graph
layout algorithms for specific kinds of graph. For those, I did not find a
library ready for use.

On the other hand, going with the library can speed things up. I found one
library that seems to provide a good amount of functionality. Its name is
libcola <https://www.adaptagrams.org/documentation/libcola.html> and its
GitHub repository can be found here
<https://github.com/mjwybrow/adaptagrams>. Maybe there are some issues
about adding more dependencies.

Thank you,
Dilson GuimarĂ£es.