/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D E   L ' I M A G E   C O U R A N T E  :                                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrk/attractor.1A$I' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 1992??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D E   L ' I M A G E   C O U R A N T E   S A N S   R E N O R M A L I S A T I O N  :                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE(horloge)                                                                      \
                    Bblock                                                                                                              \
                    GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE_AVEC_RENORMALISATION(horloge                                        \
                                                                                        ,NO_RENORMALISATION,NO_RENORMALISATION          \
                                                                                        ,NO_RENORMALISATION,NO_RENORMALISATION          \
                                                                                        ,NO_RENORMALISATION,NO_RENORMALISATION          \
                                                                                         );                                             \
                                        /* Generation de l'image courante avec une renormalisation "neutre" (1/1)...                 */ \
                    Eblock                                                                                                              \
                                        /* Generation de l'image courante et passage a la suivante avec gestion eventuelle d'une     */ \
                                        /* horloge et sans renormalisation finale des niveaux...                                     */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D E   L ' I M A G E   C O U R A N T E   A V E C   R E N O R M A L I S A T I O N  :                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE_AVEC_RENORMALISATION(horloge,aROUGE,nROUGE,aVERTE,nVERTE,aBLEUE,nBLEUE)       \
                    Bblock                                                                                                              \
                    Test(IFGE(numero_de_la_periode_courante,numero_de_la_premiere_periode_a_visualiser))                                \
                         Bblock                                                                                                         \
                                        /* Cas des periodes a visualiser :                                                           */ \
                         Test(IL_FAUT(editer_le_nombre_de_points_memorises))                                                            \
                                        /* Test introduit le 20200402120129...                                                       */ \
                              Bblock                                                                                                    \
                              CAL2(Prin1("NombreDePointsMemorises=%d\n"                                                                 \
                                        ,nombre_de_points_traites_par_MEMORISATION_DU_POINT_COURANT_COMPLET                             \
                                         )                                                                                              \
                                   );                                                                                                   \
                                        /* Edition introduite le 20200402120129 a des fins de test...                                */ \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         Test(IL_FAUT(lister_la_liste_des_points))                                                                      \
                                        /* Tests introduits le 20131214184316...                                                     */ \
                              Bblock                                                                                                    \
                              Test(IL_FAUT(indiquer_si_tous_les_points_ont_ete_listes))                                                 \
                                   Bblock                                                                                               \
                                   Test(EST_FAUX(lister_la_liste_des_points_apres_toutes_les_transformations))                          \
                                        Bblock                                                                                          \
                                        Test(IFNE(nombre_de_points_listes_avant_toutes_transformations                                  \
                                                 ,nombre_de_points_traites_par_MEMORISATION_DU_POINT_COURANT_COMPLET                    \
                                                  )                                                                                     \
                                             )                                                                                          \
                                             Bblock                                                                                     \
                                             PRINT_ERREUR("il y a des points qui n'ont pas ete listes avant les transformations");      \
                                             CAL1(Prer2("(%d points ont ete traites et %d ont ete listes : il faut reduire le zoom)\n"  \
                                                       ,nombre_de_points_traites_par_MEMORISATION_DU_POINT_COURANT_COMPLET              \
                                                       ,nombre_de_points_listes_avant_toutes_transformations                            \
                                                        )                                                                               \
                                                  );                                                                                    \
                                             Eblock                                                                                     \
                                        ATes                                                                                            \
                                             Bblock                                                                                     \
                                             Eblock                                                                                     \
                                        ETes                                                                                            \
                                        Eblock                                                                                          \
                                   ATes                                                                                                 \
                                        Bblock                                                                                          \
                                        Test(IFNE(nombre_de_points_listes_apres_toutes_transformations                                  \
                                                 ,nombre_de_points_traites_par_MEMORISATION_DU_POINT_COURANT_COMPLET                    \
                                                  )                                                                                     \
                                             )                                                                                          \
                                             Bblock                                                                                     \
                                             PRINT_ERREUR("il y a des points qui n'ont pas ete listes apres les transformations");      \
                                             CAL1(Prer2("(%d points ont ete traites et %d ont ete listes : il faut reduire le zoom)\n"  \
                                                       ,nombre_de_points_traites_par_MEMORISATION_DU_POINT_COURANT_COMPLET              \
                                                       ,nombre_de_points_listes_apres_toutes_transformations                            \
                                                        )                                                                               \
                                                  );                                                                                    \
                                             Eblock                                                                                     \
                                        ATes                                                                                            \
                                             Bblock                                                                                     \
                                             Eblock                                                                                     \
                                        ETes                                                                                            \
                                        Eblock                                                                                          \
                                   ETes                                                                                                 \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         CLIR(nombre_de_points_traites_par_MEMORISATION_DU_POINT_COURANT_COMPLET);                                      \
                         CLIR(nombre_de_points_listes_avant_toutes_transformations);                                                    \
                         CLIR(nombre_de_points_listes_apres_toutes_transformations);                                                    \
                                        /* Et nettoyage pour l'eventuelle iteration suivante...                                      */ \
                                                                                                                                        \
                         CALCUL_DU_PSEUDO_CENTRE_DE_GRAVITE_ET_TRI_D_UNE_LISTE_DE_POINTS;                                               \
                                        /* Tri eventuel de la liste des points par 'Z' croissants, avec retour prealable sur le      */ \
                                        /* dernier point memorise dans la liste...                                                   */ \
                                                                                                                                        \
                         Test(IL_NE_FAUT_PAS(renormaliser_arbitrairement_les_differentielles))                                          \
                                        /* Le 20221005132232, lors de la mise au point de 'v $xiirv/NFRI.F1' dans laquelle il y      */ \
                                        /* avait des niveaux beaucoup trop faibles (sur le "sol" de la scene des pics), je note      */ \
                                        /* que 'v $xrv/champs_5.12$I RENORMALISATION_D_UNE_LISTE_DE_POINTS' commence par :           */ \
                                        /*                                                                                           */ \
                                        /*        Test(IFET(IL_FAUT(visualiser_en_RVB)                                               */ \
                                        /*                 ,IL_NE_FAUT_PAS(renormaliser_arbitrairement_les_differentielles)          */ \
                                        /*                  )                                                                        */ \
                                        /*             )                                                                             */ \
                                        /*                                                                                           */ \
                                        /* ce qui fait que l'indicateur 'renormaliser_arbitrairement_les_differentielles' est        */ \
                                        /* teste deux fois de suite...                                                               */ \
                              Bblock                                                                                                    \
                              RENORMALISATION_D_UNE_LISTE_DE_POINTS;                                                                    \
                                        /* Renormalisation d'une liste de points lorsque cela est demande, auquel cas, les           */ \
                                        /* arguments (aROUGE,nROUGE,aVERTE,nVERTE,aBLEUE,nBLEUE) sont ineffectifs. De plus, il       */ \
                                        /* imperatif que 'RENORMALISATION_D_UNE_LISTE_DE_POINTS' soit situe apres l'appel a la       */ \
                                        /* procedure 'CALCUL_DU_PSEUDO_CENTRE_DE_GRAVITE_ET_TRI_D_UNE_LISTE_DE_POINTS' a cause       */ \
                                        /* de l'instruction :                                                                        */ \
                                        /*                                                                                           */ \
                                        /*                  DECR(index_de_rangement_dans_la_liste,I);                                */ \
                                        /*                                                                                           */ \
                                        /* que cette derniere contient...                                                            */ \
                                        /*                                                                                           */ \
                                        /* Je note le 20091024100423 (un peu tard...) que cette renormalisation a lieu apres         */ \
                                        /* 'lister_la_liste_des_points' (que cela soit AVANT ou APRES les transformations...).       */ \
                                        /* En effet, on trouve dans (AVANT donc) :                                                   */ \
                                        /*                                                                                           */ \
                                        /*   v $xrv/champs_5.26$I MEMORISATION_DU_POINT_COURANT_COMPLET                              */ \
                                        /*                                                                                           */ \
                                        /*          Test(IFET(IL_FAUT(lister_la_liste_des_points)                                    */ \
                                        /*                   ,EST_FAUX(lister_la_liste_des_points_apres_toutes_transformations)      */ \
                                        /*                    )                                                                      */ \
                                        /*               )                                                                           */ \
                                        /*                                                                                           */ \
                                        /* et dans (APRES donc) :                                                                    */ \
                                        /*                                                                                           */ \
                                        /*   v $xrv/champs_5.11$I MEMORISATION_D_UN_POINT                                            */ \
                                        /*                                                                                           */ \
                                        /*          Test(IFET(IL_FAUT(lister_la_liste_des_points)                                    */ \
                                        /*                   ,EST_VRAI(lister_la_liste_des_points_apres_toutes_les_transformations)  */ \
                                        /*                    )                                                                      */ \
                                        /*               )                                                                           */ \
                                        /*                                                                                           */ \
                                        /* Or 'MEMORISATION_DU_POINT_COURANT_COMPLET(...)' et 'MEMORISATION_D_UN_POINT(...)' sont    */ \
                                        /* appelees AU FUR ET A MESURE de la generation des points et donc bien avant que l'on       */ \
                                        /* soit ici pour faire 'RENORMALISATION_D_UNE_LISTE_DE_POINTS'. Ici, il est donc trop        */ \
                                        /* tard pour agir sur la liste des points qui a donc deja ete listee dans tous les cas...    */ \
                                        /*                                                                                           */ \
                                        /* D'autre part, on n'oubliera pas les trois 'F___DENORMALISE_NIVEAU(...)'s faits dans       */ \
                                        /* 'v $xrv/champs_5.11$I LISTER_LA_LISTE_DES_COULEURS_DES_POINTS'...                         */ \
                                        /*                                                                                           */ \
                                        /* Ce sont ces remarques (precedentes) aux environs du 20170201125655 qui ont conduit        */ \
                                        /* a la programmation de 'v $xiirs/.CYLI.31.1.$U' pour l'image 'v $xiirs/CYLI.31'...         */ \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         VISUALISATION_D_UNE_LISTE_DE_POINTS_AVEC_RENORMALISATION(aROUGE,nROUGE                                         \
                                                                                 ,aVERTE,nVERTE                                         \
                                                                                 ,aBLEUE,nBLEUE                                         \
                                                                                 ,numero_de_la_periode_courante                         \
                                                                                  );                                                    \
                                        /* Visualisation de la liste des points (eventuellement triees).                             */ \
                                                                                                                                        \
                         GENERATION_DE_L_EVENTUEL_EFFET_DE_BRUME;                                                                       \
                                        /* Generation de l'eventuel effet de brume...                                                */ \
                                                                                                                                        \
                         GENERATION_D_UNE_OU_PLUSIEURS_LISTES(numero_de_la_periode_courante);                                           \
                                        /* Memorisation eventuelle d'une ou plusieurs listes...                                      */ \
                                                                                                                                        \
                         GENERATION_D_UNE_IMAGE(numero_de_la_periode_courante);                                                         \
                                        /* Memorisation eventuelle de l'image courante.                                              */ \
                                                                                                                                        \
                         GENERATION_D_UN_CHAMP_DE_BRUME(numero_de_la_periode_courante);                                                 \
                                        /* Memorisation eventuelle du champ de brume...                                              */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                                        /* Cas des periodes a ne pas visualiser :                                                    */ \
                         Test(IL_FAUT(generer_les_trainees))                                                                            \
                              Bblock                                                                                                    \
                              PRINT_ATTENTION("la generation des trainees est fausse, les premieres images n'etant pas calculees");     \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    BLOC(horloge);                                                                                                      \
                                        /* Gestion d'une eventuelle horloge...                                                       */ \
                    PASSAGE_A_L_IMAGE_SUIVANTE;                                                                                         \
                                        /* Et passage a l'image suivante...                                                          */ \
                    Eblock                                                                                                              \
                                        /* Generation de l'image courante et passage a la suivante avec gestion eventuelle d'une     */ \
                                        /* horloge et avec renormalisation finale des niveaux...                                     */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D E   L ' I M A G E   C O U R A N T E   A V E C   R E N O R M A L I S A T I O N  :                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   PASSAGE_A_L_IMAGE_SUIVANTE                                                                                                    \
                    Bblock                                                                                                              \
                    INCR(numero_de_la_periode_courante,I);                                                                              \
                                        /* Et passage a l'image suivante...                                                          */ \
                    Eblock                                                                                                              \
                                        /* Passage a l'image suivante...                                                             */



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.