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