/*************************************************************************************************************************************/ /* */ /* 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... */