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

 

 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback