## VisuObject VisuObject — A general object to store the signals |

## Synopsis

    #define             VISU_TYPE
    #define             VISU                                (obj)
    #define             VISU_CLASS                          (klass)
    #define             IS_VISU_TYPE                        (obj)
    #define             IS_VISU_CLASS                       (klass)
    #define             VISU_GET_CLASS                      (obj)
                        VisuObjectPrivate;
                        VisuObjectClass;
                        VisuObject;
    GType               visu_get_type                       (void);
    gboolean            visuObjectRedraw                    (gpointer data);

## Description

At the present time, the signals are global to all V_Sim, owned by a variable include in each parts called visu. This is wherre these signals are defined.

## Details

### VISU_TYPE

    #define VISU_TYPE		  (visu_get_type ())

return the type of VisuObject.

### VISU()

    #define VISU(obj)		  (G_TYPE_CHECK_INSTANCE_CAST ((obj), VISU_TYPE, VisuObject))

Cast the given `obj` into VisuObject type.

`obj` : | a GObject to cast.

### VISU_CLASS()

    #define VISU_CLASS(klass)	  (G_TYPE_CHECK_CLASS_CAST ((klass), VISU_TYPE, VisuObjectClass))

Cast the given `klass` into VisuObjectClass.

`klass` : | a GClassObject to cast.

### IS_VISU_TYPE()

    #define IS_VISU_TYPE(obj)	  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VISU_TYPE))

Test if the given `ogj` is of the type of VisuObject object.

`obj` : | a GObject to test.

### IS_VISU_CLASS()

    #define IS_VISU_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VISU_TYPE))

Test if the given `klass` is of the type of VisuObjectClass class.

`klass` : | a GClassObject to test.

### VISU_GET_CLASS()

    #define VISU_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), VISU_TYPE, VisuObjectClass))

It returns the class of the given `obj`.

`obj` : | a GObject to get the class of.

### VisuObjectPrivate

    typedef struct _VisuObjectPrivate VisuObjectPrivate;

A short way to identify _VisuObjectPrivate structure.

### VisuObjectClass

    typedef struct {
      GObjectClass parent;

      guint colorNewAvailable_signal_id;

      guint dataNew_signal_id;
      guint dataLoaded_signal_id;
      guint dataReadyForRendering_signal_id;
    /*   guint dataNotReadyForRendering_signal_id; */

      guint renderingChanged_signal_id;
      guint resourcesLoaded_signal_id;

      guint OpenGLAskForReDraw_signal_id;
      guint OpenGLForceReDraw_signal_id;

      guint SpinAxes_signal_id;
    } VisuObjectClass;

This structure describes the class VisuObjectClass.

GObjectClass `parent`; | an object to inherit from (NULL here).
guint `colorNewAvailable_signal_id`; | this signal is emitted when a new Color has been added ;
guint `dataNew_signal_id`; | this signal is emitted each time a new VisuData object is created. It should be used to attached signals to this object.
guint `dataLoaded_signal_id`; | this signal is emitted as soon as a new VisuData is available, it should be used to modify some values in it before rendering ;
guint `dataReadyForRendering_signal_id`; | this signal is emitted when a new VisuData is available and when every modifications (following dataLoaded_signal_id signal) have been done ;
guint `renderingChanged_signal_id`; | emitted when the rendering method has been changed ;
guint `resourcesLoaded_signal_id`; | emitted when resources have been (re-)loaded ;
guint `OpenGLAskForReDraw_signal_id`; | emitted when a part of V_Sim needs to redraw ;
guint `OpenGLForceReDraw_signal_id`; | emitted when redraw is needed even if opegl part does not allow redrawing operations ;
guint `SpinAxes_signal_id`; | ??

### VisuObject

    typedef struct {
    	GObject parent;
    	/* instance members */
            VisuObjectPrivate *privateDt;
    } VisuObject;

This structure describes a VisuObject object.

GObject `parent`; | an object to inherit from (NULL here).
VisuObjectPrivate *`privateDt`; | a pointer to the private data.

### visu_get_type ()

    GType               visu_get_type                       (void);

This method returns the type of VisuObject, use VISU_TYPE instead.

Returns : | the type of VisuObject.

### visuObjectRedraw ()

    gboolean            visuObjectRedraw                    (gpointer data);

Call the signal OpenGLAskForReDraw. The API is adapted to the routine to be added in the gloop.

`data` : | some data (unused).
Returns : | FALSE to stop the emission as soon as done.