fogAndBGColor

fogAndBGColor — Handle the background colour and the fog.

Synopsis

#define             EXT_FOG_AND_BG_ID
OpenGLExtension*    extFogAndBGInit                     ();
#define             MASK_FOG_START
#define             MASK_FOG_END
void                fogCreate                           (VisuData *data);
void                fogCreate_color                     ();
float               fogGet_end                          ();
gboolean            fogGet_isOn                         ();
float               fogGet_start                        ();
gboolean            fogGet_useSpecificColor             ();
gboolean            fogSet_isOn                         (gboolean value);
gboolean            fogSet_startEndValues               (float startEnd[2],
                                                         int mask);
gboolean            fogSet_useSpecificColor             (gboolean value);
void                fogGet_value                        (float rgba[4]);
int                 fogSet_values                       (float rgba[4],
                                                         int mask);
void                bgGet_value                         (float rgba[4]);
int                 bgSet_values                        (float rgba[3],
                                                         int mask);
void                bgSet_image                         (const guchar *imageData,
                                                         guint width,
                                                         guint height,
                                                         gboolean alpha,
                                                         const gchar *title);

Description

This module is used to support a background colour and to tune the fog. This last one can be turn on or off and its colour can be either a user defined one or the one of the background. The fog is a linear blending into the fog colour. It starts at a given z position (in the camera basis set) and ends at a lower z.

Details

EXT_FOG_AND_BG_ID

#define EXT_FOG_AND_BG_ID "FogAndColor"

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


extFogAndBGInit ()

OpenGLExtension*    extFogAndBGInit                     ();

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 initOpenGLExtensions() at V_Sim startup.

Returns :

a pointer to the OpenGLExtension it created or NULL otherwise.

MASK_FOG_START

#define MASK_FOG_START (1 << 0)

Value used by the second parameter of setFogStartEndValues() to specified the value that must be changed. This actually changes the fog_start value.


MASK_FOG_END

#define MASK_FOG_END (1 << 1)

Value used by the second parameter of setFogStartEndValues() to specified the value that must be changed. This actually changes the fog_end value.


fogCreate ()

void                fogCreate                           (VisuData *data);

Call the OpenGL routine to enable and initialise the fog.

data :

the VisuData object the fog apply to.

fogCreate_color ()

void                fogCreate_color                     ();

Call the OpenGL routines that change the colour of the fog.


fogGet_end ()

float               fogGet_end                          ();

Read the ending value of the fog (in [0;1]).

Returns :

the position where the fog ends.

fogGet_isOn ()

gboolean            fogGet_isOn                         ();

Read if fog is used or not.

Returns :

TRUE if the fog is rendered, FALSE otherwise.

fogGet_start ()

float               fogGet_start                        ();

Read the starting value of the fog (in [0;1]).

Returns :

the position where the fog starts.

fogGet_useSpecificColor ()

gboolean            fogGet_useSpecificColor             ();

Read if fog uses a specific colour or not.

Returns :

TRUE if the fog uses its own color or FALSE if it uses the color of the background.

fogSet_isOn ()

gboolean            fogSet_isOn                         (gboolean value);

Method used to change the value of the parameter fog_is_on.

value :

TRUE if fog must be rendered, FALSE otherwise.

Returns :

FALSE if redrawing is not necessary. TRUE if the rendering window must be redrawn.

fogSet_startEndValues ()

gboolean            fogSet_startEndValues               (float startEnd[2],
                                                         int mask);

Method used to change the value of the parameters fog_start and fog_end.

startEnd :

a two floats array with values (0 <= values <= 1) for the beging and the ending of the fog position. Only values specified by the mask are really relevant.

mask :

use MASK_FOG_START, MASK_FOG_END to indicate what values in the startEnd array must be taken into account.

Returns :

TRUE if fogCreate() should be called and then 'OpenGLAskForReDraw' signal be emitted.

fogSet_useSpecificColor ()

gboolean            fogSet_useSpecificColor             (gboolean value);

Method used to change the value of the parameter fog_color_is_specific.

value :

TRUE if fog is rendered with its own color specified by setFogRGBValues() or FALSE if the fog uses the background color.

Returns :

TRUE if fogCreate() should be called. In all cases, 'OpenGLAskForReDraw' signal should then be emitted.

fogGet_value ()

void                fogGet_value                        (float rgba[4]);

Read the RGBA value of the specific fog colour (in [0;1]).

rgba :

a storage for four values.

fogSet_values ()

int                 fogSet_values                       (float rgba[4],
                                                         int mask);

Method used to change the value of the parameter fog_specific_color. This color is actually used only if fog_color_is_specific is set to 1, use setFogColorSpecific() to do that.

rgba :

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 MASK_RGB_R, MASK_RGB_G, MASK_RGB_B, MASK_RGB_ALL or a combinaison to indicate what values in the rgb array must be taken into account.

Returns :

0 if redrawing is not necessary. 1 if the rendering window must be redrawn.

bgGet_value ()

void                bgGet_value                         (float rgba[4]);

Read the RGBA value of the specific background colour (in [0;1]).

rgba :

a storage for four values.

bgSet_values ()

int                 bgSet_values                        (float rgba[3],
                                                         int mask);

Method used to change the value of the parameter background_color.

rgba :

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 MASK_RGB_R, MASK_RGB_G, MASK_RGB_B, MASK_RGB_ALL or a combinaison to indicate what values in the rgb array must be taken into account.

Returns :

0 if redrawing is not necessary. 1 if the rendering window must be redrawn.

bgSet_image ()

void                bgSet_image                         (const guchar *imageData,
                                                         guint width,
                                                         guint height,
                                                         gboolean alpha,
                                                         const gchar *title);

Draw the imageData on the background. The image is scaled to the viewport dimensions, keeping the width/height ratio. If title is not NULL, the title is also printed on the background. The image data are copied and can be free after this call.

imageData :

raw image data in RGB or RGBA format ;

width :

the width ;

height :

the height ;

alpha :

TRUE if the image is RGBA ;

title :

an optional title (can be NULL).