Public Implementation of a Graph Algorithm
Library and Editor
H. de Fraysseix
P. Ossona de Mendez
1.3.9 Pigale is an algorithm library and a graph editor which has been designed for graph theoretical research. It is based over a new graph data structure optimizing topological operations on static graphs.
It consists of three parts:
This package includes the source files of the library tgraph, the editor pigale, the client program and the souces of the freeglut library.
Pigale core library tgraph includes graph algorithms and fundamental data structures.
Pigale Qt graph editor pigale is the graphic interface of the library embedded in a graph editor.
client a client which can interact with pigale over the network .
The editor and the client use the Qt4 toolkit, the OpenGL libraries for the 3-dimensional drawings, and the library freeglut to draw text on 3d objects.
In the main directory one find the following directories:
qt contains also all the headers that need to be proceceeded by moc.
tgraph (source code for the standalone algorithmic library)
freeglut (source code for the freeglut library)
qt (source code for the editor)
ClientServer (source code for the client)
incl/TAXI (headers used by the standalone algorithmic library)
incl/GL (headers used by the freeglut library)
incl/QT (headers used by the editor)
The header incl/QT/Action.h is generated by awk from incl/QT/Action_def.h
Pigale has been tested on Linux and Windows.
There is very little code platform dependant.
We define _WIN32 when compiling on a Windows platform and _WINDOWS when using a Microsoft compiler.
Pigale uses two threads:
We give below a rough idea how Pigale works.
The main thread is responsible of all the graphics.
The PigaleThread pigaleThread is responsible of all the algorithms (without any graphic action).
When a menu is clicked a Qaction action signal is emitted. That action contains an integer which identifies the algorihtm to be performed.
The signal is received by pigaleWindow::handler(QAction *qaction) who passes the identifier to pigaleThread.
pigaleThread call a hanler (defined in handler.h) which execute the needed action and returns a value which indicates if some graphical needs to be performed.
The pigaleThread sends a signal to the main thread telling which graphic action should be done.
The pigaleThread sleeps until the main thread has finished its graphic action.
Generated on Thu Jan 31 16:50:45 2008 for Pigale by