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



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.