/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E S T I O N   D E S   C O U L E U R S  :                                                                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrv/particule.51$I' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 20001218133336).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A S S A G E   D E S   F A U S S E S   A U X   V R A I E S   C O U L E U R S  :                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
     Bblock
     Test(IFNE_chaine(nom_paletteA,NOM_PIPE))
          Bblock
          DEFV(genere_Float,INIT(niveau,FLOT__NIVEAU_UNDEF));
                                        /* Niveau de fausse couleur...                                                               */

          CALS(Iload_palette_de_couleurs(nom_paletteA,ESPACE_DE_COULEURS_RVB));
                                        /* Chargement de la palette de couleurs...                                                   */

          PUSH_FILTRAGE;
                                        /* Sauvegarde de l'etat courant du filtrage des niveaux.                                     */
          SET_FILTRAGE(ACTIF);
                                        /* On autorise tous les filtrages afin d'avoir la 'SUBSTITUTION'.                            */
          PUSH_SUBSTITUTION;
                                        /* Sauvegarde de la substitution courante.                                                   */

          Komp(numero_des_points,nombre_d_iterations)
               Bblock
               EGAL(niveau
                   ,AXPB(facteur_d_homothetie_des_couleurs
                        ,OPC1(EST_VRAI(les_niveaux_sont_denormalises)
                             ,NEUT
                             ,__DENORMALISE_NIVEAU_AVEC_MODULO____
                             ,ACCES_LISTE(liste_initiale_des_NIVEAU,numero_des_points)
                              )
                        ,constante_de_translation_des_couleurs
                         )
                    );
                                        /* J'ai remplace '__DENORMALISE_NIVEAU(...)' par '__DENORMALISE_NIVEAU_AVEC_MODULO____(...)' */
                                        /* le 20131205162300 car, en effet, cette derniere procedure a l'avantage de repeter modulo  */
                                        /* les niveaux et donc de periodiser des palettes, a condition donc que les niveaux ne       */
                                        /* soient pas dans [0,1], mais dans [0,N] (avec N=2, 3,...).                                 */

               Test(IFEXff(niveau,FLOT__NOIR,FLOT__BLANC))
                    Bblock
                    PRINT_ERREUR("un niveau de fausse couleur est hors de [NOIR,BLANC]");
                    CAL1(Prer1("il vaut %f et va donc etre seuille\n",niveau));
                    EGAL(niveau,TRNP(niveau));
                    CAL1(Prer1("ce qui donne %f\n",niveau));
                    Eblock
               ATes
                    Bblock
                    Eblock
               ETes

               SUBSTITUTION(L_SUBSTITUTION_ROUGE);
               EGAL(ACCES_LISTE(liste_initiale_des_ROUGE,numero_des_points)
                   ,FLOT(Nsubstitution(GENP(niveau)))
                    );

               SUBSTITUTION(L_SUBSTITUTION_VERTE);
               EGAL(ACCES_LISTE(liste_initiale_des_VERTE,numero_des_points)
                   ,FLOT(Nsubstitution(GENP(niveau)))
                    );

               SUBSTITUTION(L_SUBSTITUTION_BLEUE);
               EGAL(ACCES_LISTE(liste_initiale_des_BLEUE,numero_des_points)
                   ,FLOT(Nsubstitution(GENP(niveau)))
                    );
               Eblock
          EKom

          PULL_SUBSTITUTION;
          PULL_FILTRAGE;
                                        /* Et restauration des conditions initiales...                                               */

          EGAL(facteur_d_homothetie_des_couleurs,FACTEUR_D_HOMOTHETIE_DES_COULEURS);
          EGAL(constante_de_translation_des_couleurs,CONSTANTE_DE_TRANSLATION_DES_COULEURS);
                                        /* Une transformation du type '1.c+0' sera appliquee aux couleurs...                         */
          Eblock
     ATes
          Bblock
          Eblock
     ETes
     Eblock



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