/*************************************************************************************************************************************/
/* */
/* G E N E R A T I O N D U N O M D E T R O I S C O M P O S A N T E S C H R O M A T I Q U E S : */
/* */
/* */
/* Author of '$xci/luminance.01$I' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 20050920150857). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#define gGENERER_LE_NOM_DE_TROIS_COMPOSANTES_CHROMATIQUES(nom_image,nom_image1,nom_image2,nom_image3,Comp1,Comp2,Comp3) \
Bblock \
Test(IFET(IFET(IFNE_chaine(nom_image,NOM_UNDEF) \
,IFNE_chaine(nom_image,NOM_PIPE) \
) \
,I3ET(IFEQ_chaine(nom_image1,NOM_PIPE) \
,IFEQ_chaine(nom_image2,NOM_PIPE) \
,IFEQ_chaine(nom_image3,NOM_PIPE) \
) \
) \
) \
/* On notera au passage que tester 'NOM_PIPE' pour {nom_image1,nom_image2,nom_image3} sans */ \
/* exception n'est pas tres handicapant car, en effet, de toute facon le passage de trois */ \
/* images {R,V,B} via le pipe ne fonctionne pas a l'arrivee : le systeme considere tout */ \
/* simplment que la premiere image qui arrive est trois fois trop grosse (les trois images */ \
/* {R,V,B} sont ainsi concatenees et forment un seul "objet"...). */ \
/* */ \
/* Le test de 'nom_image' par rapport a 'NOM_PIPE' a ete introduit le 20060210150219 pour */ \
/* 'v $xciP/IMAGE$K nom_imageA..NOM_PIPE'... */ \
Bblock \
EGAL(nom_image1,chain_Aconcaten2(nom_image,Comp1)); \
EGAL(nom_image2,chain_Aconcaten2(nom_image,Comp2)); \
EGAL(nom_image3,chain_Aconcaten2(nom_image,Comp3)); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
/* Generation des noms {nom_image$Comp1,nom_image$Comp2,nom_image$Comp3}. Ceci fut */
/* introduit sous cette forme generale le 20060603183237... */
#define GENERER_LE_NOM_DE_TROIS_COMPOSANTES_CHROMATIQUES_RVB(nom_image,nom_imageR,nom_imageV,nom_imageB) \
Bblock \
gGENERER_LE_NOM_DE_TROIS_COMPOSANTES_CHROMATIQUES(nom_image \
,nom_imageR,nom_imageV,nom_imageB \
,c_ROUGE,c_VERTE,c_BLEUE \
); \
Eblock \
/* Generation des noms {nom_image$ROUGE,nom_image$VERTE,nom_image$BLEUE}... */
#define GENERER_LE_NOM_DE_TROIS_COMPOSANTES_CHROMATIQUES_XYZ(nom_image,nom_imageX,nom_imageY,nom_imageZ) \
Bblock \
gGENERER_LE_NOM_DE_TROIS_COMPOSANTES_CHROMATIQUES(nom_image \
,nom_imageX,nom_imageY,nom_imageZ \
,c_COORD_X,c_COORD_Y,c_COORD_Z \
); \
Eblock \
/* Generation des noms {nom_image$COORD_X,nom_image$COORD_Y,nom_image$COORD_Z}. Ceci fut */ \
/* introduit le 20060603183237... */
#define GENERER_LE_NOM_DE_TROIS_COMPOSANTES_CHROMATIQUES_RVB_XYZ(nom_image,nom_imageRX,nom_imageVY,nom_imageBZ,choisir_le_mode_RVB) \
Bblock \
gGENERER_LE_NOM_DE_TROIS_COMPOSANTES_CHROMATIQUES(nom_image \
,nom_imageRX,nom_imageVY,nom_imageBZ \
,COND(IL_FAUT(choisir_le_mode_RVB),c_ROUGE,c_COORD_X) \
,COND(IL_FAUT(choisir_le_mode_RVB),c_VERTE,c_COORD_Y) \
,COND(IL_FAUT(choisir_le_mode_RVB),c_BLEUE,c_COORD_Z) \
); \
Eblock \
/* Generation des noms {nom_image$ROUGE,nom_image$VERTE,nom_image$BLEUE} ou bien */ \
/* {nom_image$COORD_X,nom_image$COORD_Y,nom_image$COORD_Z}. Ceci fut introduit le */ \
/* 20060604102809... */
#define GENERER_LE_NOM_DE_TROIS_COMPOSANTES_CHROMATIQUES_HLS(nom_image,nom_imageH,nom_imageL,nom_imageS) \
Bblock \
gGENERER_LE_NOM_DE_TROIS_COMPOSANTES_CHROMATIQUES(nom_image \
,nom_imageH,nom_imageL,nom_imageS \
,c_TEINT,c_LUMIN,c_SATUR \
); \
Eblock \
/* Generation des noms {nom_image$TEINT,nom_image$LUMIN,nom_image$SATUR}... Ceci fut */ \
/* introduit le 20111216101951... */