/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        V I S U A L I S A T I O N   D E S   G A L A X I E S   P R O C H E S   D E   L A   V O I E   L A C T E E  :                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrr/univers.10$K' :                                                                                            */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 1992??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R F A C E   ' listG '  :                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        :Debut_listG:                                                                                                              */
/*        :Fin_listG:                                                                                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D I R E C T I V E S   S P E C I F I Q U E S   D E   C O M P I L A T I O N  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
@define   PRAGMA_CL_____MODULE_NON_OPTIMISABLE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_BASE
#include  image_image_ENTREES_EXT
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E   B A S E   E T   U N I V E R S E L L E S  :                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.11.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*                                                                                    3                                              */
/*        D E F I N I T I O N   D E   L ' E S P A C E   P H Y S I Q U E   D A N S   R     ( D E B U T )  :                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   Xcentre_ESPACE                                                                                                                \
                    FLOT(k___Xmin)
#define   Ycentre_ESPACE                                                                                                                \
                    FLOT(k___Ymin)
#define   Zcentre_ESPACE                                                                                                                \
                    FLOT(k___Zmin)
                                        /* Definition de l'origine (ou "centre") de l'espace physique. En fait, elles ne servent     */
                                        /* qu'a recentrer l'objet lors de la visualisation, et d'autre part, elles doivent           */
                                        /* etre des constantes absolues a cause de :                                                 */
                                        /*                                                                                           */
                                        /*                  DEFINITION_D_UNE_POSITION(position_indefinie,Xcentre_ESPACE,...);     \  */
                                        /*                                                                                           */
                                        /* dans '$xrq/nucleon.L5$I'.                                                                 */

#define   XYZtranslation                                                                                                                \
                    MOIT(0.3e25)                                                                                                        \
                                        /* Definition des demi-longueurs des trois axes. Notons au passage que '1.0e25' correspond   */ \
                                        /* approximativement a un milliard d'annees de lumiere...                                    */

#define   hXmin_ESPACE                                                                                                                  \
                    SOUS(Xmin,XYZtranslation)
#define   hYmin_ESPACE                                                                                                                  \
                    SOUS(Ymin,XYZtranslation)
#define   hZmin_ESPACE                                                                                                                  \
                    SOUS(Zmin,XYZtranslation)
                                        /* Definition du "coin" inferieur-gauche-arriere de l'espace physique.                       */

#define   hXmax_ESPACE                                                                                                                  \
                    ADD2(Xmin,XYZtranslation)
#define   hYmax_ESPACE                                                                                                                  \
                    ADD2(Ymin,XYZtranslation)
#define   hZmax_ESPACE                                                                                                                  \
                    ADD2(Zmin,XYZtranslation)
                                        /* Definition du "coin" superieur-droite-avant de l'espace physique.                         */

#include  xrk/attractor.12.I"

#define   dXmin_ESPACE                                                                                                                  \
                    PARE(0.0)
#define   dYmin_ESPACE                                                                                                                  \
                    PARE(0.0)
#define   dZmin_ESPACE                                                                                                                  \
                    PARE(0.0)
                                        /* Definition des minima des differentielles {dx,dy,dz}.                                     */
#define   dXmax_ESPACE                                                                                                                  \
                    PARE(1.0)
#define   dYmax_ESPACE                                                                                                                  \
                    PARE(1.0)
#define   dZmax_ESPACE                                                                                                                  \
                    PARE(1.0)
                                        /* Definition des maxima des differentielles {dx,dy,dz}.                                     */

#include  xrk/attractor.1D.I"
                                        /* Formules de renormalisation des differentielles dans [0,1] ; elles sont utilisees lorsque */
                                        /* la production d'images en couleurs est demandee (voir 'visualiser_en_RVB').               */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   D I F F E R E N T S   E S P A C E S   E T   D E   L ' E F F E T   D E   B R U M E  :         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.13.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A I D E   A U   C A D R A G E   D E S   I M A G E S  :                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.1C.I"

DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES
                                        /* Definition des extrema des coordonnees et des derivees. On notera bien l'absence de       */
                                        /* point-virgule apres 'DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES'.   */

#include  xrv/champs_5.14.I"
#include  xrv/particule.41.I"
#include  xrk/attractor.14.I"

#include  xrr/univers.11.I"
                                        /* Pour corriger les initialisations precedentes. ATTENTION, a cause de la derivation        */
                                        /* formelle d'ordre superieur a 1, ces 'undef's ne peuvent etre que dans un fichier          */
                                        /* d'include...                                                                              */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D U   M O D E   D E   R E P R E S E N T A T I O N   D E S   G A L A X I E S  :                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   PUISSANCE_DU_RAYON_DE_VISUALISATION                                                                                           \
                    TROIS
DEFV(Local,DEFV(Float,INIT(puissance_du_rayon_de_visualisation,PUISSANCE_DU_RAYON_DE_VISUALISATION)));
                                        /* Inverse de la puissance a laquelle est eleve une magnitude afin de donner au facteur      */
                                        /* 'facteur_du_rayon_de_visualisation' pres le rayon de la sphere. La valeur implicite est   */
                                        /* telle que le volume de la sphere de materialisation est proportionnel a la magnitude.     */

#define   FACTEUR_DU_FACTEUR_DU_RAYON_DE_VISUALISATION                                                                                  \
                    FU
DEFV(Local,DEFV(Float,INIT(facteur_du_facteur_du_rayon_de_visualisation,FACTEUR_DU_FACTEUR_DU_RAYON_DE_VISUALISATION)));
                                        /* Facteur permettant de "scaler" le parametre 'facteur_du_rayon_de_visualisation' a l'aide  */
                                        /* des outils d'interpolations. Il a ete introduit car, en effet, le parametre d'echelle     */
                                        /* 'facteur_du_rayon_de_visualisation' etant exprime en unites physiques, il est difficile   */
                                        /* a manipuler a la main...                                                                  */
#define   FACTEUR_DU_RAYON_DE_VISUALISATION                                                                                             \
                    GRO4(FRA1(DIVI(XYZtranslation,FLOT(CENT))))
DEFV(Local,DEFV(Float,INIT(facteur_du_rayon_de_visualisation,FACTEUR_DU_RAYON_DE_VISUALISATION)));
                                        /* Facteur permettant de "scaler" le rayon des spheres. Il convient de bien noter que le     */
                                        /* calcul du rayon projete des spheres se fait en coordonnees d'espace, d'ou cette valeur    */
                                        /* enorme pour 'FACTEUR_DU_RAYON_DE_VISUALISATION'...                                        */

#define   RAYON(magnitude)                                                                                                              \
                    MUL3(facteur_du_facteur_du_rayon_de_visualisation                                                                   \
                        ,facteur_du_rayon_de_visualisation                                                                              \
                        ,PUIX(TRON(SOUS(MAGNITUDE_LIMITE,magnitude),FZERO,F_INFINI)                                                     \
                             ,INVZ(puissance_du_rayon_de_visualisation)                                                                 \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Fonction permettant de passer d'une magnitude au rayon d'une sphere.                      */

#define   COLORIER_ALEATOIREMENT_LES_GALAXIES                                                                                           \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(colorier_aleatoirement_les_galaxies,COLORIER_ALEATOIREMENT_LES_GALAXIES)));
                                        /* Cet indicateur permet de savoir si les galaxies seront coloriees aleatoirement ('VRAI')   */
                                        /* ou seront representees en Noir et Blanc...                                                */
#define   GENERATION_D_UNE_COMPOSANTE_DE_COULEUR_D_UNE_GALAXIE(composante,seuil_inferieur,seuil_superieur)                              \
                    Bblock                                                                                                              \
                    Test(IL_FAUT(colorier_aleatoirement_les_galaxies))                                                                  \
                         Bblock                                                                                                         \
                         GENERATION_D_UNE_VALEUR(composante                                                                             \
                                                ,FLOT(seuil_inferieur)                                                                  \
                                                ,FLOT(seuil_superieur)                                                                  \
                                                 );                                                                                     \
                                        /* Lorsque la composante est aleatoire, on la tire au sort...                                */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         EGAL(composante,BLANC);                                                                                        \
                                        /* Lorsque la composante n'est pas aleatoire, on fixe le maximum ('BLANC').                  */ \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    EGAL(composante                                                                                                     \
                        ,______NORMALISE_NIVEAU(TRON(composante                                                                         \
                                                    ,seuil_inferieur                                                                    \
                                                    ,seuil_superieur                                                                    \
                                                     )                                                                                  \
                                                )                                                                                       \
                         );                                                                                                             \
                                        /* Seuillage de la composante courante. On notera que lorsque la valeur est aleatoire cela   */ \
                                        /* n'est pas utile, mais ainsi, on prevoit l'avenir...                                       */ \
                    Eblock                                                                                                              \
                                        /* Generation d'une des trois composantes de la couleur d'une galaxie...                     */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N   D E   M E M O R I S A T I O N   D U   P O I N T   C O U R A N T  :                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   FACTEUR_D_EXPANSION                                                                                                           \
                    FU
DEFV(Local,DEFV(Float,INIT(facteur_d_expansion,FACTEUR_D_EXPANSION)));
                                        /* Facteur courant d'expansion de l'univers.                                                 */
#define   EXPANSION_DE_L_UNIVERS(dimension)                                                                                             \
                    MUL2(facteur_d_expansion,dimension)                                                                                 \
                                        /* Procedure d'expansion des dimensions de l'univers...                                      */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N   D E   M E M O R I S A T I O N   D U   P O I N T   C O U R A N T  :                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.16.I"

DEFV(Local,DEFV(Float,INIT(rayon_de_visualisation,FLOT__UNDEF)));
                                        /* Rayon du disque materialisant une iteration.                                              */

BFonctionI

DEFV(Local,DEFV(FonctionI,memorisation_1_point_07(AXf,AYf,AZf,AdXf,AdYf,AdZf,numero_de_l_iteration_courante)))
DEFV(Argument,DEFV(Float,AXf));
DEFV(Argument,DEFV(Float,AYf));
DEFV(Argument,DEFV(Float,AZf));
                                        /* Definition de la position {x,y,z} de la galaxie courante.                                 */
DEFV(Argument,DEFV(Float,AdXf));
DEFV(Argument,DEFV(Float,AdYf));
DEFV(Argument,DEFV(Float,AdZf));
                                        /* Definition des differentielles {dx,dy,dz} de la position de l'iteration courante.         */
DEFV(Argument,DEFV(Int,numero_de_l_iteration_courante));
                                        /* Pour des raisons de compatabilite...                                                      */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
#include  xrk/attractor.15.I"
                                        /* Donnees utiles...                                                                         */

     INIT_ERROR;
     /*..............................................................................................................................*/
     MEMORISATION_DU_POINT_COURANT(X_DERIVEE_DANS_01(AdXf)
                                  ,Y_DERIVEE_DANS_01(AdYf)
                                  ,Z_DERIVEE_DANS_01(AdZf)
                                   );
                                        /* Memorisation du point courant en Noir et Blanc ou en Couleurs, mais uniquement s'il est   */
                                        /* visible en fonction des conditions de visualisation...                                    */

     RETU_ERROR;
     Eblock

EFonctionI

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N S   D E   V I S U A L I S A T I O N   E T   D ' I N T E R P O L A T I O N  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.17.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   I N I T I A L I S A T I O N S  :                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.18.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P O U R   D E S   R A I S O N S   D E   C O M P A T I B I L I T E  :                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/integr.1B.vv.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E   L ' I N T E R P O L A T I O N   D E S   P A R A M E T R E S  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
dfTRANSFORMAT_31(liste_FACTEUR_DU_RAYON
                ,fichier_FACTEUR_DU_RAYON
                ,FACTEUR_DU_RAYON_IMPLICITE
                ,FACTEUR_DU_FACTEUR_DU_RAYON_DE_VISUALISATION
                 )
                                        /* Definition du fichier des variations du facteur du facteur du rayon des galaxies.         */
dfTRANSFORMAT_31(liste_FACTEUR_D_EXPANSION,fichier_FACTEUR_D_EXPANSION,FACTEUR_D_EXPANSION_IMPLICITE,FACTEUR_D_EXPANSION)
                                        /* Definition du fichier des variations du facteur d'expansion de l'univers.                 */

#define   sFACTEUR_DU_RAYON(numero_de_la_periode)                                                                                       \
                    sTRANSFORMAT_31(numero_de_la_periode,liste_FACTEUR_DU_RAYON)                                                        \
                                        /* Formule generale definissant les variations du facteur du facteur du rayon des galaxies.  */
#define   sFACTEUR_D_EXPANSION(numero_de_la_periode)                                                                                    \
                    sTRANSFORMAT_31(numero_de_la_periode,liste_FACTEUR_D_EXPANSION)                                                     \
                                        /* Formule generale definissant les variations du facteur d'expansion de l'univers.          */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S   D I V E R S  :                                                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   VITESSE_DE_RECESSION_MAXIMALE                                                                                                 \
                    PARE(6000000.000)                                                                                                   \
                                        /* Vitesse de recession maximale au dela de laquelle les galaxies sont ignorees...           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        V I S U A L I S A T I O N   D E S   G A L A X I E S   P R O C H E S   D E   L A   V O I E   L A C T E E  :                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(CHAR,INIT(POINTERc(nom_du_catalogue_des_galaxies),NOM_PIPE_Local));
                                        /* Nom du fichier des galaxies.                                                              */
     DEFV(Float,INIT(vitesse_de_recession_maximale,VITESSE_DE_RECESSION_MAXIMALE));
                                        /* Vitesse de recession maximale des galaxies au dela de laquelle on les ignore. Cette       */
                                        /* vitesse est exprimee en metres par seconde...                                             */
     DEFV(Float,INIT(increment_de_Rlongitude_de_la_galaxie,FZERO));
     DEFV(Float,INIT(increment_de_Rlatitude_de_la_galaxie,FZERO));
                                        /* Ces deux arguments sont destines a faire tourner l'univers sous les yeux de               */
                                        /* l'observateur.                                                                            */
     DEFV(Positive,INIT(index_de_la_liste_des_galaxies_pertinentes,PREMIERE_GALAXIE));
                                        /* Index de rangement des galaxies dans 'liste_des_galaxies_pertinentes' et qui est donc     */
                                        /* l'index des galaxies que l'on conserve relativement a certains criteres...                */
     DEFV(Positive,INIT(derniere_galaxie,UNDEF));
                                        /* Index de rangement de la derniere galaxie.                                                */
     DEFV(galaxie,DTb1(liste_des_galaxies_pertinentes,NOMBRE_DE_GALAXIES));
                                        /* Liste des galaxies pertinentes relativement a certains criteres...                        */
     /*..............................................................................................................................*/
     INITIALISATIONS_GENERALES;
                                        /* Initialisations generales faites au tout debut...                                         */

     iTRANSFORMAT_31(liste_FACTEUR_DU_RAYON,FACTEUR_DU_RAYON_IMPLICITE);
                                        /* Initialisation du facteur du facteur du rayon des galaxies.                               */
     iTRANSFORMAT_31(liste_FACTEUR_D_EXPANSION,FACTEUR_D_EXPANSION_IMPLICITE);
                                        /* Initialisation du facteur d'expansion de l'univers.                                       */

#define   RAYON_DE_VISUALISATION                                                                                                        \
                    FLOT__UNDEF                                                                                                         \
                                        /* Introduit le 20061211151259 pour 'v $xrv/champs_5.1A$I RAYON_DE_VISUALISATION'...         */

#include  xrv/champs_5.1A.I"

     GET_ARGUMENTSv(nombre_d_arguments
                   ,BLOC(PROCESS_ARGUMENTS_GEOMETRIQUES;

                         PROCESS_ARGUMENT_FICHIER("FACTEUR_DU_RAYON="
                                                 ,fichier_FACTEUR_DU_RAYON
                                                 ,liste_FACTEUR_DU_RAYON
                                                 ,FACTEUR_DU_RAYON_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         PROCESS_ARGUMENT_FICHIER("FACTEUR_D_EXPANSION="
                                                 ,fichier_FACTEUR_D_EXPANSION
                                                 ,liste_FACTEUR_D_EXPANSION
                                                 ,FACTEUR_D_EXPANSION_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         GET_ARGUMENT_C("fichier=",nom_du_catalogue_des_galaxies);

                         GET_ARGUMENT_F("vitesse=""recession=",vitesse_de_recession_maximale);

                         PROCESS_ARGUMENTS_DE_VISUALISATION_PRIMAIRES;

                         GET_ARGUMENT_F("puissance=",puissance_du_rayon_de_visualisation);
                         GET_ARGUMENT_F("facteurR=",facteur_du_rayon_de_visualisation);

                         GET_ARGUMENT_L("aleatoire=",colorier_aleatoirement_les_galaxies);
                         GET_ARGUMENT_I("graine=""g=",graine_du_generateur_d_evenements);
                         GET_ARGUMENT_L("affiner_rdn=",rdnIFnD_____affiner_la_generation);
                         GET_ARGUMENT_L("iterer_rdn=",rdnIFnD_____iterer_la_generation);
                         )
                    );

#include  xrv/champs_5.19.I"
                                        /* Pour eviter le message :                                                                  */
                                        /*                                                                                           */
                                        /*                  Static function is not referenced.                                       */
                                        /*                                                                                           */
                                        /* sur 'SYSTEME_ES9000_AIX_CC'...                                                            */
#include  xrk/attractor.19.I"
                                        /* Validations et definition de l'espace physique.                                           */

     Test(IFGT(nombre_de_periodes_de_la_simulation,NOMBRE_MAXIMAL_DE_PERIODES_DE_LA_SIMULATION))
          Bblock
          PRINT_ERREUR("la simulation demandee est trop longue");
          EGAL(nombre_de_periodes_de_la_simulation,NOMBRE_MAXIMAL_DE_PERIODES_DE_LA_SIMULATION);
                                        /* Et on seuille le nombre de periodes...                                                    */
          Eblock
     ATes
          Bblock
          Eblock
     ETes

     Test(PAS_D_ERREUR(CODE_ERROR(Iget_catalogue_des_galaxies(liste_des_galaxies_pertinentes
                                                             ,ADRESSE(derniere_galaxie)
                                                             ,nom_du_catalogue_des_galaxies
                                                             ,vitesse_de_recession_maximale
                                                             ,increment_de_Rlongitude_de_la_galaxie
                                                             ,increment_de_Rlatitude_de_la_galaxie
                                                              )
                                  )
                       )
          )
                                        /* Lecture du fichier des galaxies, et generation de la liste des galaxies pertinentes...    */
          Bblock
          DEFINITION_DE_L_ESPACE_PHYSIQUE;
                                        /* Initialisation de la definition de l'espace physique apres que les dimensions des images  */
                                        /* aient ete definies...                                                                     */

          Komp(numero_de_la_periode_courante_de_la_simulation,nombre_de_periodes_de_la_simulation)
               Bblock
               INITIALISATIONS_RELATIVES_A_CHAQUE_NOUVELLE_IMAGE(numero_de_la_periode_courante);
                                        /* Initialisations necessaires avant le calcul et la generation de chaque nouvelle image.    */

               EGAL(facteur_du_facteur_du_rayon_de_visualisation,sFACTEUR_DU_RAYON(numero_de_la_periode_courante));
                                        /* Calcul du facteur du facteur du rayon des galaxies.                                       */
               EGAL(facteur_d_expansion,sFACTEUR_D_EXPANSION(numero_de_la_periode_courante));
                                        /* Calcul du facteur d'expansion de l'univers.                                               */

               FORCAGE_DE_LA_REINITIALISATION_DU_GENERATEUR_D_EVENEMENTS;
                                        /* Afin de forcer la (re-)initialisation du generateur d'evenements au cas ou il serait      */
                                        /* utilise pour le coloriage des galaxies. On notera que cela ne peut etre fait ci-dessus    */
                                        /* (dans 'INITIALISATIONS_RELATIVES_A_CHAQUE_NOUVELLE_IMAGE') car en effet, certains         */
                                        /* programmes demandent un generateur qui ne se re-initialise jamais, alors qu'ici, il faut  */
                                        /* que les couleurs se conservent d'une image a l'utre...                                    */

               DoIn(index_de_la_liste_des_galaxies_pertinentes,PREMIERE_GALAXIE,derniere_galaxie,I);
                    Bblock
                    DEFV(genere_Float,INIT(niveau_ROUGE_normalise,FLOT__NIVEAU_UNDEF));
                    DEFV(genere_Float,INIT(niveau_VERTE_normalise,FLOT__NIVEAU_UNDEF));
                    DEFV(genere_Float,INIT(niveau_BLEUE_normalise,FLOT__NIVEAU_UNDEF));
                                        /* Composantes de couleur de la galaxie...                                                   */

                    GENERATION_D_UNE_COMPOSANTE_DE_COULEUR_D_UNE_GALAXIE(niveau_ROUGE_normalise
                                                                        ,seuil_inferieur_du_ROUGE
                                                                        ,seuil_superieur_du_ROUGE
                                                                         );
                    GENERATION_D_UNE_COMPOSANTE_DE_COULEUR_D_UNE_GALAXIE(niveau_VERTE_normalise
                                                                        ,seuil_inferieur_du_VERTE
                                                                        ,seuil_superieur_du_VERTE
                                                                         );
                    GENERATION_D_UNE_COMPOSANTE_DE_COULEUR_D_UNE_GALAXIE(niveau_BLEUE_normalise
                                                                        ,seuil_inferieur_du_BLEUE
                                                                        ,seuil_superieur_du_BLEUE
                                                                         );
                                        /* Calcul des composantes de couleur de la galaxie...                                        */

                    EGAL(rayon_de_visualisation
                        ,RAYON(ASD1(ITb1(liste_des_galaxies_pertinentes
                                        ,index_de_la_liste_des_galaxies_pertinentes
                                         )
                                   ,magnitude
                                    )
                               )
                         );
                                        /* Rayon de visualisation de la galaxie courante...                                          */

                    CALi(memorisation_1_point_07(EXPANSION_DE_L_UNIVERS(ASD2(ITb1(liste_des_galaxies_pertinentes
                                                                                 ,index_de_la_liste_des_galaxies_pertinentes
                                                                                  )
                                                                            ,Gcoordonnees
                                                                            ,x
                                                                             )
                                                                        )
                                                ,EXPANSION_DE_L_UNIVERS(ASD2(ITb1(liste_des_galaxies_pertinentes
                                                                                 ,index_de_la_liste_des_galaxies_pertinentes
                                                                                  )
                                                                            ,Gcoordonnees
                                                                            ,y
                                                                             )
                                                                        )
                                                ,EXPANSION_DE_L_UNIVERS(ASD2(ITb1(liste_des_galaxies_pertinentes
                                                                                 ,index_de_la_liste_des_galaxies_pertinentes
                                                                                  )
                                                                            ,Gcoordonnees
                                                                            ,z
                                                                             )
                                                                        )
                                                ,niveau_ROUGE_normalise
                                                ,niveau_VERTE_normalise
                                                ,niveau_BLEUE_normalise
                                                ,index_de_la_liste_des_galaxies_pertinentes
                                                 )
                         );
                                        /* Memorisation du point courant apres toutes les transformations geometriques, et selon     */
                                        /* les coordonnees de visualisation...                                                       */
                                        /*                                                                                           */
                                        /* Le 20090806105515 fut reintroduit 'EXPANSION_DE_L_UNIVERS(...)' qui semblait avoir        */
                                        /* disparu longtemps ('v $Darchives/recherches/relativite/19980930095249/univers.10$K' qui   */
                                        /* le reference et 'v $Darchives/recherches/relativite/20060516132126/univers.10.K' qui ne   */
                                        /* le reference plus), soit donc plus de 10 ans !!!                                          */
                    Eblock
               EDoI;

#include  xrk/attractor.1A.I"

               GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE(BLOC(VIDE;));
                                        /* Generation de l'image courante...                                                         */
               Eblock
          EKom
          Eblock
     ATes
          Bblock
          PRINT_ERREUR("le fichier contenant le catalogue des galaxies est inaccessible");
          Eblock
     ETes

     RETU_Commande;
     Eblock
ECommande



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.