Project : scilab
New Object Oriented Graphics
Even if Scilab graphics is quite powerful, users complains in particular about the graphics functions syntax and the poor customization tools available. The conception of this graphic does not allow to make it evolve enough. A new entity oriented graphics has been built. To ensure backward compatibility the old graphic has been maintained.
In the new mode (enabled by default since version 3.0), each graphics window and the drawing it contains are represented by hierarchical entities. The hierachy top level is the ``Figure''. Each Figure defines at least one child of type ``Axes''. Each Axes entity contains a set of leaf entities which are the basic graphics objects like Polylines, Rectangles, Arcs, Segs, ...It can also contain ``Agregation'' entities which are recursive sets of entities.
Graphics entities are associated to Scilab variables of type handle. The handle is a unique identifier which is associated to an instance of an entity. Using this handle, it is possible to control the properties of the entities using the ``set'' and ``get'' functions. The handles are also used to manipulate graphics objects, to move them, to make copies or delete them. The main interest of the new graphics mode is to make property change easier and to avoid cumbersome list of arguments in the graphics function calling sequence to set the properties.
This year work was devoted to improve this new graphics mode. After a debugging task, the team completed some missing object (surfaces, polylines...) properties. At the same time, another usefull tool issued : the graphic editor. Indeed this development, made in TCL/TK, allows us to change object properties without passing by the scilab console. 3-D plots merge were reviewed and fixed and deal with 2-D objects too. Finally the axes structure was totally rebuild to allow more editable properties.