Tim Dwyer wrote:
Hi All,
I recently added the "rectangle overlap removal" algorithm to inkscape and received so much useful feedback (advice, testing and so on) throughout the process that I'm now quite keen to start another project.
The connector stuff that was introduced in 0.43 is a really powerful concept and makes inkscape much more of a "diagramming" tool. Between the connector routing and the overlap removal stuff we have the basics of some nice automatic diagram layout. I'd like to continue this by incorporating some "graph layout" algorithms to adjust the positions of objects at the end of connectors to achieve things like minimal crossing of connectors and to better show coupling and cohesion in the network (graph) defined by the connectors.
I'd appreciate any feedback people have on this idea. Also, I'd really like to use the boost 'graph' libraries to get this happening quickly. Boost already has some basic layout algorithms which we can use right away, but I'll also need the underlying graph data-structures and algorithms in boost to implement new algorithms. What are the logistics of adding boost to the inkscape dependency tree?
I've noticed similar requests for boost in the inkscape-devel archives... it seems like I'm not the only one who would benefit.
If I'm correct we tried to avoid boost because it was just one more dependency. In the specific case I'm thinking of the need for boost was very minimal and in the end wasn't enough to merit adding it to the dependency list. That's all I know about the history of us and boost... I would bet others know much more.
So... you did remove overlaps and now you're looking at connectors. I don't believe this is quite what you're talking about, but I just filed an rfe that has to do with both removing overlaps and connectors (please check the file attached to the RFE to see an example): http://sourceforge.net/tracker/index.php?func=detail&aid=1421548&gro...
To summarize the rfe, it would be making connectors lay side-by-side as opposed to overlapping when routed through the same object(s). If you've ever seen bus or subway maps, it's the same theory. It may not interest you, but I figured I'd throw it your way since it ties into two areas you have/want to work with. Either way, I can't wait to see more graphing functions. And thanks again for remove overlaps. :-)
-Josh