Edited docs

Bird's eye view

The idea is that the actions implemented in script files should be reachable from the command line easily. Writing an action file

    input "source-graph.gem";
    action "edgesize", 0.1;
    dump   "layed.glay";
is actually equivalent of the command line form of
    glay -i source-graph.gem -a edgesize 0.1 -d layed.glay

Most builtin action files were in fact conceived from actual needs or requests ("Now please keep only the biggest component", "The edges should be a little wider", ...)

The actions are implemented in Perl. The edges and vertices of the loaded graph is not processed and hidden in the stomachs of opaque classes, but they are held in simple hashes. This way we tried to make it easier for the casual programmer (the scientists) to mangle the structure, to build extra capabilities into the system. "The data" is defined as "everything in the namespace Glay::Data", and can be looked into by using the "-d -" arguments:

glay -i something -a something -d - | less

The layout algorithms and the visualizer module are implemented in C++ and C languages. There is a very neat C++ class "perlvar" that allows the C++ programmer to reach the perl variables. There are two visualizer modules as of yet, a good quality 3d one, the Cichlid visualizer, and a 2d that is still in an early phase of development.

Because of the "must be scriptable" principle, even the running of layout algoritms or calling the visualizer module is handled from action files:

glay -i something -a run alg_name alg_params... -a visual