## axes

axes — Defines methods to draw axes.

## Synopsis

    VisuExtension*      initExtensionAxes                   ();
    #define             VISU_GLEXT_AXES_ID
    gboolean            visu_glExt_axes_setRGBValues        (float rgb[3],
                                                             int mask);
    gboolean            visu_glExt_axes_setLineWidth        (float width);
    gboolean            visu_glExt_axes_setLineStipple      (guint16 stipple);
    gboolean            visu_glExt_axes_setOn               (gboolean value);
    float*              visu_glExt_axes_getRGBValues        ();
    int                 visu_glExt_axes_getOn               ();
    float               visu_glExt_axes_getLineWidth        ();
    guint16             visu_glExt_axes_getLineStipple      ();
    void                visu_glExt_axes_draw                (VisuData *dataObj);

## Description

The axes are the X, Y and Z lines drawn on the bottom right of the screen defining a given orthogonal basis set in which the box is projected.

The axis may be different, depending on the rendering method currently used. For instance, when the spin is used, a projection of the colour scheme is added to the simple lines of the basis set. Besides that, axes are defined by their width (see `visu_glExt_axes_setLineWidth()`) and their colour (see `visu_glExt_axes_setRGBValues()`).

## Details

### initExtensionAxes ()

    VisuExtension*      initExtensionAxes                   ();

It initialises all variables of the OpenGL extension. It creates all resources and parameters introduced by this extension. This method should be added in the listInitExtensionFunc to be called automatically by the `initVisuExtensions()` at V_Sim startup.

Returns : | a pointer to the VisuExtension it created or NULL otherwise.

### VISU_GLEXT_AXES_ID

    #define VISU_GLEXT_AXES_ID "Axes"

The id used to identify this extension, see `visuExtensions_rebuildList()` for instance.

### visu_glExt_axes_setRGBValues ()

    gboolean            visu_glExt_axes_setRGBValues        (float rgb[3],
                                                             int mask);

Method used to change the value of the parameter axes_color.

`rgb` : | a three floats array with values (0 <= values <= 1) for the red, the green and the blue color. Only values specified by the mask are really relevant.
`mask` : | use TOOL_COLOR_MASK_R, TOOL_COLOR_MASK_G, TOOL_COLOR_MASK_B, TOOL_COLOR_MASK_RGBA or a combinaison to indicate what values in the rgb array must be taken into account.
Returns : | TRUE if `visu_glExt_axes_draw()` should be called and then 'OpenGLAskForReDraw' signal be emitted.

### visu_glExt_axes_setLineWidth ()

    gboolean            visu_glExt_axes_setLineWidth        (float width);

Method used to change the value of the parameter axes_line_width.

`width` : | value of the desired axe width.
Returns : | TRUE if `visu_glExt_axes_draw()` should be called and then 'OpenGLAskForReDraw' signal be emitted.

### visu_glExt_axes_setLineStipple ()

    gboolean            visu_glExt_axes_setLineStipple      (guint16 stipple);

Method used to change the value of the parameter axes_line_stipple.

`stipple` : | value of the desired pattern.
Returns : | TRUE if `visu_glExt_axes_draw()` should be called and then 'OpenGLAskForReDraw' signal be emitted.

### visu_glExt_axes_setOn ()

    gboolean            visu_glExt_axes_setOn               (gboolean value);

Method used to change the value of the parameter axes_are_on.

`value` : | TRUE if axes must be drawn, FALSE otherwise.
Returns : | TRUE if `visu_glExt_axes_draw()` should be called. In all cases, 'OpenGLAskForReDraw' signal should then be emitted.

### visu_glExt_axes_getRGBValues ()

    float*              visu_glExt_axes_getRGBValues        ();

Read all the colour components of axes (in [0;1]).

Returns : | three RGB values, private from V_Sim, read only.

### visu_glExt_axes_getOn ()

    int                 visu_glExt_axes_getOn               ();

Read if axes are drawn or not.

Returns : | 1 if axes are drawn, 0 otherwise.

### visu_glExt_axes_getLineWidth ()

    float               visu_glExt_axes_getLineWidth        ();

Read the line width used to draw axes.

Returns : | the value of current axes width.

### visu_glExt_axes_getLineStipple ()

    guint16             visu_glExt_axes_getLineStipple      ();

Read the line pattern used to draw axes.

Returns : | the value of current axes pattern.

### visu_glExt_axes_draw ()

    void                visu_glExt_axes_draw                (VisuData *dataObj);

This method create a compile list that draw a box for the given `data`.

`dataObj` : | the VisuData object to build axes for.