Displaying Cyclical Structures
Description
When the tree editor has to display a cyclical dependency graph, it reverts to a bipartite graph
in which it is hard to see any structures at all. Instead, it should determine which edges are involved in a cycle, draw all but one of them normally, and use a dotted curve for the last to indicate the cycle.
2005.11.10 -
BjoernEngelmann:
Partially Implemented. All neccessary changes in libcontainer/libcdg should be working by now. The actual drawing code in parse.tcl/parsetree.tcl is buggy, though. Here is a list of what is still open:
- handle the cache invalidation in parse.tcl properly
- the caches in isLeafNode() and wordHeight() were simply disabled
- an invalidateCaches() - function has already been added
- DEBUG !!! the code is not very stable up to now.
- The parse.tcl/parsetree.tcl - code must be carefully evaluated
- remove the bipartite graph drawing code once everything functions properly
- ? move the breakcycles functionality to libcdg ?
- libcdg already has this functionality, but xcdg must be modified to use it
- The code is functional as is, this would only be an optimization
- If decided against, remove parseMakeMarkedEdgesRootEdges() from libcdg/parse.c
- There could arise some problems with the command history
Tips:
- To Debug the parse.tcl / parsetree.tcl code, start "xcdg stellingen" and let xcdg display the annotation of an already existing wordgraph. This way the tcl code is not run by C and exceptions are not omitted.
Comments