/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D U   M O D I F I C A T E U R   D E   C H A M P  :                                                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xci/modifi_ch.04$I' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 20050826154118).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D U   C H A M P  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   MODIFICATION_DU_CHAMP_DEMANDE(Fmodificateur,nom_de_l_imageR,nom_de_l_imageA,BorneInf,BorneSup,Zf,SequenceConversion)          \
                    Bblock                                                                                                              \
                    CALi(gInettoyage(les_images_sont_standards,ImageR,IFmageR));                                                        \
                                        /* Initialisation de l'image Resultat.                                                       */ \
                                                                                                                                        \
                    Test(PAS_D_ERREUR(CODE_ERROR(gIload_image(les_images_sont_standards,ImageA,IFmageA,nom_de_l_imageA))))              \
                         Bblock                                                                                                         \
                         Test(EST_VRAI(les_images_sont_standards))                                                                      \
                              Bblock                                                                                                    \
                                        /* Cas d'une image 'image' :                                                                 */ \
                              BDEFV(imageF,ImageA_renormalisee);                                                                        \
                                        /* Image Argument renormalisee...                                                            */ \
                              BDEFV(imageF,ImageA_modifiee);                                                                            \
                                        /* Image Resultat dans un intervalle a priori inconnu d'ou la renormalisation a priori...    */ \
                                                                                                                                        \
                              CALS(Istd_float(ImageA_renormalisee,BorneInf,BorneSup,ImageA));                                           \
                                        /* Mise de l'image Argument dans [a,b].                                                      */ \
                              CALS(IFmodification_champ(ImageA_modifiee                                                                 \
                                                       ,amplificateur_de_la_fonction                                                    \
                                                       ,aFONCTION(Fmodificateur)                                                        \
                                                       ,translateur_de_la_fonction                                                      \
                                                       ,ADRESSE(translation)                                                            \
                                                       ,ADRESSE(echelle)                                                                \
                                                       ,ImageA_renormalisee                                                             \
                                                        )                                                                               \
                                   );                                                                                                   \
                                        /* Application de la modification demandee...                                                */ \
                              BLOC(SequenceConversion);                                                                                 \
                                        /* Et conversion inverse...                                                                  */ \
                                                                                                                                        \
                              EDEFV(imageF,ImageA_modifiee);                                                                            \
                                        /* Image Resultat dans un intervalle a priori inconnu d'ou la renormalisation a priori...    */ \
                              EDEFV(imageF,ImageA_renormalisee);                                                                        \
                                        /* Image Argument renormalisee...                                                            */ \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                                        /* Cas d'une image 'imageF' :                                                                */ \
                              CALS(IFmodification_champ(IFmageR                                                                         \
                                                       ,amplificateur_de_la_fonction                                                    \
                                                       ,aFONCTION(Fmodificateur)                                                        \
                                                       ,translateur_de_la_fonction                                                      \
                                                       ,ADRESSE(translation)                                                            \
                                                       ,ADRESSE(echelle)                                                                \
                                                       ,IFmageA                                                                         \
                                                        )                                                                               \
                                   );                                                                                                   \
                                        /* Application de la modification demandee...                                                */ \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         CALi(gIupdate_image(les_images_sont_standards,nom_de_l_imageR,ImageR,IFmageR));                                \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Test__CODE_ERREUR__ERREUR07;                                                                                   \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Modification du champ demande par la fonction 'Fmodificateur(...)' suivant ;              */ \
                                        /*                                                                                           */ \
                                        /*        NIVEAU(X,Y) = Amplificateur*Fonction[(Ex.Xf + Tx),(Ey.Yf + Ty)] + Translateur      */ \
                                        /*                                                                                           */ \
                                        /* ou {X,Y} designent les coordonnees du point courant et {Xf,Yf} ces memes coordonnees      */ \
                                        /* normalisees, avec :                                                                       */ \
                                        /*                                                                                           */ \
                                        /*                  {Ex,Ey} = echelle                                                        */ \
                                        /*                  {Tx,Ty} = translation                                                    */ \
                                        /*                                                                                           */ \
                                        /* et 'Amplificateur' et 'Translateur' designent  'amplificateur_de_la_fonction'             */ \
                                        /* et 'translateur_de_la_fonction' respectivement...                                         */



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