/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E S   D I F F E R E N T S   E S P A C E S  :                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrq/particle.M4$I' :                                                                                           */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 1994??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D U   F O R M A T   D E S   I M A G E S  :                                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   FORMAT_DES_IMAGES                                                                                                             \
                    CARRE_OX_PAR_RAPPORT_A_OY(FU)                                                                                       \
                                        /* Definition du format des images a l'aide du rapport dX/dY, de telle facon que l'axe       */
                                        /* 'OY' mesure une unite...                                                                  */
#define   FORMATAGE_HORIZONTAL_DES_IMAGES(x)                                                                                            \
                    MUL2(FORMAT_DES_IMAGES,x)                                                                                           \
                                        /* Et operation de formatage horizontal.                                                     */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*                                                                                    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    :                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   Xcentre_ESPACE                                                                                                                \
                    FZERO
#define   Ycentre_ESPACE                                                                                                                \
                    FZERO
#define   Zcentre_ESPACE                                                                                                                \
                    FZERO
                                        /* Definition de l'origine (ou "centre") de l'espace physique.                               */

#define   DEMI_LONGUEUR_DE_L_UNIVERS                                                                                                    \
                    GRO1(FRA1(DIAMETRE_D_UN_HADRON))                                                                                    \
                                        /* Definition de la demi-longueur du cube definissant l'univers de la simulation...          */

#define   Xmin_ESPACE                                                                                                                   \
                    SOUS(Xcentre_ESPACE,FORMATAGE_HORIZONTAL_DES_IMAGES(DEMI_LONGUEUR_DE_L_UNIVERS))
#define   Ymin_ESPACE                                                                                                                   \
                    SOUS(Ycentre_ESPACE,NEUT(DEMI_LONGUEUR_DE_L_UNIVERS))
#define   Zmin_ESPACE                                                                                                                   \
                    SOUS(Zcentre_ESPACE,NEUT(DEMI_LONGUEUR_DE_L_UNIVERS))
                                        /* Definition du "coin" inferieur-gauche-arriere de l'espace physique.                       */
#define   Xmax_ESPACE                                                                                                                   \
                    ADD2(Xcentre_ESPACE,FORMATAGE_HORIZONTAL_DES_IMAGES(DEMI_LONGUEUR_DE_L_UNIVERS))
#define   Ymax_ESPACE                                                                                                                   \
                    ADD2(Ycentre_ESPACE,NEUT(DEMI_LONGUEUR_DE_L_UNIVERS))
#define   Zmax_ESPACE                                                                                                                   \
                    ADD2(Zcentre_ESPACE,NEUT(DEMI_LONGUEUR_DE_L_UNIVERS))
                                        /* Definition du "coin" superieur-droite-avant de l'espace physique.                         */

DEFV(Local,DEFV(vectorF_3D,espace_physique));
                                        /* L'espace physique est une "boite" parallelepipedique definie par l'une de ses             */
                                        /* diagonales :                                                                              */
                                        /*                                                                                           */
                                        /*                            + + + + + + + + + + + + + + + +                                */
                                        /*                          + .                           + +                                */
                                        /*                        +   .                         +   +                                */
                                        /*                      +     .                       +     +                                */
                                        /*                    +       .              max_ESPACE     +                                */
                                        /*                  + + + + + + + + + + + + + + + +         +                                */
                                        /*                  +         .                   +         +                                */
                                        /*                  +         .                   +         +                                */
                                        /*                  +         .                   +         +                                */
                                        /*                  +    min_ESPACE               +         +                                */
                                        /*                  +         . . . . . . . . . . + . . . . +                                */
                                        /*                  +       .                     +       +                                  */
                                        /*                  +     .                       +     +                                    */
                                        /*                  +   .                         +   +                                      */
                                        /*                  + .                           + +                                        */
                                        /*                  + + + + + + + + + + + + + + + +                                          */
#define   DEFINITION_DE_L_ESPACE_PHYSIQUE                                                                                               \
                    Bblock                                                                                                              \
                    INITIALISATION_VECTEUR_3D(espace_physique                                                                           \
                                             ,Xmin_ESPACE,Ymin_ESPACE,Zmin_ESPACE                                                       \
                                             ,Xmax_ESPACE,Ymax_ESPACE,Zmax_ESPACE                                                       \
                                              );                                                                                        \
                    Eblock                                                                                                              \
                                        /* Initialisation de la definition de l'espace physique.                                     */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A S S A G E   D E   L ' E S P A C E   P H Y S I Q U E   A   L ' E S P A C E   D E   V I S U A L I S A T I O N  :         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TRANSLATION_DE_CENTRAGE                                                                                                       \
                    NEGA(COORDONNEE_BARYCENTRIQUE_CENTRALE)                                                                             \
                                        /* Translation destinee a centrer, ou a manipuler autre chose qu'une coordonnee, et par      */ \
                                        /* exemple le rayon d'une particule...                                                       */
#define   TRANSLATION_DE_X_PHYSIQUE                                                                                                     \
                    FZERO
#define   TRANSLATION_DE_Y_PHYSIQUE                                                                                                     \
                    FZERO
#define   TRANSLATION_DE_Z_PHYSIQUE                                                                                                     \
                    TRANSLATION_DE_CENTRAGE
                                        /* Translations a apporter aux coordonnees physiques. Celles-ci sont introduites afin        */
                                        /* que le plan "central" soit en meme temps le plan de projection (Z=0), et soit donc le     */
                                        /* plan de convergence des yeux droit et gauche en cas de vision stereoscopique...           */

#define   COORDONNEES_PHYSIQUES_DANS_01(coordonnee,type,translation)                                                                    \
                    ADD2(NORM(coordonnee                                                                                                \
                             ,ASD2(espace_physique,origine,type)                                                                        \
                             ,ASD2(espace_physique,extremite,type)                                                                      \
                              )                                                                                                         \
                        ,translation                                                                                                    \
                         )                                                                                                              \
                                        /* Mise d'une coordonnee physique dans le segment [0 + translation,1 + translation].         */

#define   X_PHYSIQUE_DANS_01(coordonnee)                                                                                                \
                    COORDONNEES_PHYSIQUES_DANS_01(ANTI_SUPER_ECHELLE_OX(coordonnee),x,TRANSLATION_DE_X_PHYSIQUE)
#define   Y_PHYSIQUE_DANS_01(coordonnee)                                                                                                \
                    COORDONNEES_PHYSIQUES_DANS_01(ANTI_SUPER_ECHELLE_OY(coordonnee),y,TRANSLATION_DE_Y_PHYSIQUE)
#define   Z_PHYSIQUE_DANS_01(coordonnee)                                                                                                \
                    COORDONNEES_PHYSIQUES_DANS_01(ANTI_SUPER_ECHELLE_OZ(coordonnee),z,TRANSLATION_DE_Z_PHYSIQUE)
                                        /* Mise d'une coordonnee physique dans le segment [0,1] ou [-1/2,+1/2] dans le cas de 'Z'... */
                                        /*                                                                                           */
                                        /* Les 'ANTI_SUPER_ECHELLE_O?(...)' ont ete introduites le 20051216105030 par symetrie avec  */
                                        /* ce qui a ete fait dans 'v $xrq/nucleon.L4$I 20051216104908'...                            */

#define   X_DE_VISUALISATION(cx)                                                                                                        \
                    F__cDENORMALISE_OX(cx)
#define   Y_DE_VISUALISATION(cy)                                                                                                        \
                    F__cDENORMALISE_OY(cy)
#define   Z_DE_VISUALISATION(cz)                                                                                                        \
                    F__cDENORMALISE_OZ(cz)
                                        /* Passage des coordonnees physiques dans [0,1] (cx,cy,cz) aux coordonnees de visualisation  */
                                        /* (X,Y,Z).                                                                                  */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O R M A L I S A T I O N   D E S   C O O R D O N N E E S   P A R   R A P P O R T                                          */
/*        A   U N E   C E R T A I N E   L O N G U E U R   P H Y S I Q U E   A R B I T R A I R E  :                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   LONGUEUR_DE_RENORMALISATION                                                                                                   \
                    DIAMETRE_D_UN_HADRON                                                                                                \
                                        /* Longueur caracteristique destinee a renormaliser des coordonnees physiques  dans [0,1].   */
#define   pNORM(coordonnee)                                                                                                             \
                    DIVI(coordonnee,LONGUEUR_DE_RENORMALISATION)                                                                        \
                                        /* Fonction de renormalisation des coordonnees par rapport a une certaine longueur physique  */ \
                                        /* choisie arbitrairement...                                                                 */



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