Scilab Data type

graphics_entities - description of the graphics entities data structures

### Description

Scilab graphics is based on two differents modes. In the `"old"` mode, the graphics functions are stored to enable redisplay, zoom and rotations. Comparrement at the `"new"` mode, each graphics window and the drawing it contains are represented by hierchical entities. The hierachy to level is the Figure. Each Figure defines at least one children 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 an Agregation type which are recursive sets of entities. The main interest of the new graphic mode is to make property change easier. This new graphics'mode provides a set of high-level graphing routines (see `set`, `get`) used to control objects' properties such us data, coordinates and scaling, color and appearences without requiring to replay the initial graphics commands.

Graphics entities are associated to Scilab variables of type `handle`. The handle is a unique identifier which is associated to each instance of a created graphical entity. Using this handle, it will be possible to reach entities' properties through "set" and "get" routines. The handles are also used to manipulate graphics objects, to move them, to make copies or delete them.

To set the current graphics window mode we can use these following instructions: `set("figure_style","new")` to have a graphics window under the "new" mode or `set("figure_style","old ")` for the "old" mode.

The instructions `set("old_style","off")` and `set("old_style","on")` are used to set the default mode to be used when a new graphics window is created.

The new graphics mode is a beta version. So the "old" mode is set as default.

- Figure: The figure entity is the top level of the graphics entities hierarchy. This entity defines the parameters for the figure itself as well as the parameters' default values for the children creation. The figure children are the Axes entities.

  See `figure_properties` for details.

  The handle on the current figure may be got using `get("current_figure")`.
- Axes The Axes entity is the second level of the graphics entities hierarchy. This entity defines the parameters for the change of coordinates and the axes drawing as well as the parameters' default values for the children creation.

  See `axes_properties` for details.

  The handle on the current Axes may be got using `get("current_axes")`.
- Agregation The agregation entity is just a vector of children and with a single property (visibility property). It is used to glue a set of entities together.

  See `glue` and `agregation_properties` functions.
- Axis The Axis entity is a leaf of the graphics entities hierarchy. This entity defines the parameters for axis scaling and appearance.

  See `axis_properties` for details.
- Polyline The polyline entity is a leaf of the graphics entities hierarchy. It defines polylines and polylines extensions drawing properties.

  See `polyline_properties` for details.
- Patch The Patch entity is a leaf of the graphics entities hierarchy. It defines filled polylines and its drawing properties.

  See `patch_properties` for details.
- Arc The Arc entity is a leaf of the graphics entities hierarchy. This entity defines the parameters for ellipses and part of ellipses.

  See `arc_properties` for details.
- Rectangle The Rectangle entity is a leaf of the graphics entities hierarchy. This entity defines the parameters for rectangles and filled rectangles.

  See `rectangle_properties` for details.
- Surface The Surface entity is a leaf of the graphics entities hierarchy. It has sub types Fac3d Plot3d . This entity is still under developpement and will problably evolve a lot.

  See `surface_properties` for details.
- Param3d The Param3d entity is a leaf of the graphics entities hierarchy. It is a Surface sub type . This entity is still under developpement and will problably evolve a lot.

  See `param3d_properties` for details.
- Fec The Fec entity is a leaf of the graphics entities hierarchy. It represents 2D finite elements plots .

  See `fec_properties` for details.
- Grayplot The Grayplot entity is a leaf of the graphics entities hierarchy. It represents 2D plots of surface using colors and images.

  See `grayplot_properties` for details.
- Segs The Segs entity is a leaf of the graphics entities hierarchy. This entity defines the parameters for a set of colored segments or colored arrows.

  See `segs_properties` for details.
- Champ The Champ entity is a leaf of the graphics entities hierarchy. This entity defines the parameters for a 2D vector field.

  See `champ_properties` for details.
- Text The Text entity is a leaf of the graphics entities hierarchy. This entity defines the parameters for string drawing.

  See `text_properties` for details.
- Title The Title entity is a leaf of the graphics entities hierarchy. This entity defines the parameters for a title drawn on a graphics window.

  See `title_properties` for details.
- Legend The Legend entity is a leaf of the graphics entities hierarchy. This entity defines the parameters for legends drawn below `plot2dx` graphs. This entity requires further developments.

  See `legend_properties` for details.

### Examples

      //Play this example line per line

      set("figure_style","new") //create a figure in entity mode

      //get the handle on the Figure entity and display its properties
      f=get("current_figure")
      a=f.children // the handle on the Axes child
      x=(1:10)';  plot2d(x,[x.^2 x.^1.5])
      e=a.children //Agregation of 2 polylines

      p1=e.children(1) //the last drawn polyline properties
      p1.foreground=5  // change the polyline color
      e.children.thickness=5 // change the thickness of the two polylines

      delete(e.children(2))

      move(e.children,[0,30]) //translate the polyline

      a.axes_bounds=[0 0 0.5 0.5];

      subplot(222) //create a new Axes entity
      plot(1:10);
      a1=f.children(1); //get its handle
      copy(e.children,a1); //copy the polyline of the first plot in the new Axes
      a1.data_bounds=[1 0 10 100]; //change the Axes bounds

### See Also

`set` `get` `move` `draw` `delete`