/*************************************************************************************************************************************/ /* */ /* 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... */