Graph-Simple
============

See Graph::Easy under LIMITATIONS for some hot topics.

In addition:

Parser:

* deal with " -> [ node ], [node2], [node3]"
* parse nested graphs
* support for node splitting ala:

    "[ A ] | [ B | C ] || [ D | E ]"

* support for attribute lists on autosplit nodes ala:

    "[ A || B | C ] { background: red,blue,green; }"

* Nodes with both "|" and "\|" in their name are parsed wrongly

Output:

* write as_box(): output with box-drawing chars (unicode or iso)
* support different edge starting point styles ala:

  ----->  |----->  o----->  +----->  *----->  >>----->

* as_txt(): output of node clusters is not optimal
* as_html: node clusters have spacings between nodes:
           The spacing comes from the filler cells to make groups
	   work - argl!
* as_ascii(): output group borders and labels
* as_ascii(): node clusters need adjoining borders collapsed together
* as_ascii(): edges with multiple cells and a style other than "--" will
		get their style only for one cell (should be all cells)
* as_html(): output group labels
* as_ascii(), as_html(): grow edges to be seemless
* as_html: for shape: circle, find out real dimensions by splitting
  the label into lines (instead of taking the overall label lenght
  as the in-width) (see t/fun/0030.txt as an example of overwide
  circles)
* as_svg(): use stylesheets to make code shorter
* as_svg(): implement rendering of different edge styles (dotted, dashed,
	    double etc)
* as_svg(): instead of rendering individual edge cells, we should create
            one path, this would allow better rendering of non-solid
	    edges, like dashed or dotted ones
* as_svg(): different parts of one edge are scattered around the output,
	    these should be output one after one at the same time
* better support for different shapes (circle, box, rounded, polygon etc)
  in HTML/SVG/Graphviz
* add a class "link" to generated links (so they can be styled differently)

Layout:

* for u-shaped edges, the starting cell must be EDGE_START_E etc, not just
  EDGE_HOR or EDGE_VER
* u-shaped path's could be shorter by one cell (when we create an edge cell
  that is both an edge and an endpoint at the same time)
* allow user to specifiy prefered direction of edges, as well as
  relatively placed nodes (in position relativ to another node)
* allow user to specify 
    direction: (up|down|left|right|north|south|west|east|0|90|180|270|360);
  to create default direction of edges
* rewrite high-level code
* _trace_path(): paths with one bend need the correct corner-piece instead
  of EDGE_CROSS
* code to trace U-shaped paths can result in an endless loop
* _trace_path(): use A* algorithmn as last resort to find path
* make nodes occupy more than one cell (for making very wide/very high nodes
  fit better, as well as allowing more than 4 edges in/out of one node)

Optimizer:

* write an optimizer, that can optimize an already found layout

Manual:

* finish the HTML conversion (Graph::Easy::Pod2HTML)
* write the actual manual text (in chapters)

Misc:

* Add our format to Graph::ReadWrite

