/*************************************************************************************************************************************/ /* */ /* 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/nucleon.L4$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 1991??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 Xmin_IMAGE \ Xmin #define Ymin_IMAGE \ Ymin #define Zmin_IMAGE \ Zmin /* Definition du "coin" inferieur-gauche des images. On notera qu'autrefois, on utilisait */ /* (XminPal,YminPal), et que cela empechait de changer le format des images, et par exemple */ /* cela ne permettait pas de faire de filtrage de Fourier qui demande que le format de */ /* l'image soit carre... */ #define Xmax_IMAGE \ Xmax #define Ymax_IMAGE \ Ymax #define Zmax_IMAGE \ Zmax /* Definition du "coin" superieur-droite des images. On notera qu'autrefois, on utilisait */ /* (XmaxPal,YmaxPal), et que cela empechait de changer le format des images, et par exemple */ /* cela ne permettait pas de faire de filtrage de Fourier qui demande que le format de */ /* l'image soit carre... */ #define LONGUEUR_DE_REFERENCE_POUR_LE_FORMATAGE_DES_IMAGES \ FLOT(LONGUEUR(DIMENSION(Ymin_IMAGE,Ymax_IMAGE))) \ /* L'axe 'OY' est l'axe de reference pour les formatages. ATTENTION, on notera que la */ /* fonction 'LONGUEUR(...)' a ete introduite le 19991224100516 (voir ci-apres...). */ #define FORMAT_HORIZONTAL_DES_IMAGES \ DIVI(FLOT(LONGUEUR(DIMENSION(Xmin_IMAGE,Xmax_IMAGE))),LONGUEUR_DE_REFERENCE_POUR_LE_FORMATAGE_DES_IMAGES) #define FORMATAGE_HORIZONTAL_DES_IMAGES(x) \ MUL2(FORMAT_HORIZONTAL_DES_IMAGES,x) /* Definition du format horizontal des images a l'aide du rapport dX/dY... On notera que */ /* 'DIMENSION(...)' a ete remplace par 'LONGUEUR(DIMENSION(...))' le 19991224100516 afin */ /* d'etre homogene avec les fonctions du type 'F__?DENORMALISE_AXES(...)'. Ce commentaire */ /* vaut aussi pour la procedure 'FORMATAGE_VERTICAL_DES_IMAGES(...)' et la procedure */ /* 'FORMATAGE_EN_PROFONDEUR_DES_IMAGES(...)'. */ #define FORMAT_VERTICAL_DES_IMAGES \ DIVI(FLOT(LONGUEUR(DIMENSION(Ymin_IMAGE,Ymax_IMAGE))),LONGUEUR_DE_REFERENCE_POUR_LE_FORMATAGE_DES_IMAGES) #define FORMATAGE_VERTICAL_DES_IMAGES(y) \ CHOI(NEUT(y),MUL2(FORMAT_VERTICAL_DES_IMAGES,y)) /* Definition du format vertical des images a l'aide du rapport dY/dY introduit le */ /* 19991224100516 par symetrie {X,Y,Z}. ATTENTION : retour au "neutre" le 19991224154610. */ #define FORMAT_EN_PROFONDEUR_DES_IMAGES \ DIVI(FLOT(LONGUEUR(DIMENSION(Zmin_IMAGE,Zmax_IMAGE))),LONGUEUR_DE_REFERENCE_POUR_LE_FORMATAGE_DES_IMAGES) #define FORMATAGE_EN_PROFONDEUR_DES_IMAGES(z) \ CHOI(NEUT(z),MUL2(FORMAT_EN_PROFONDEUR_DES_IMAGES,z)) /* Le formatage en profondeur a ete introduit le 19991224100516. */ #define FORMAT_DES_IMAGES \ FORMAT_HORIZONTAL_DES_IMAGES \ /* Definition du format des images a l'aide du rapport dX/dY. ATTENTION : retour au */ \ /* "neutre" le 19991224154610. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 ( F I N ) : */ /* */ /*************************************************************************************************************************************/ DEFV(Local,DEFV(pointF_3D,centre_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 \ ); \ INITIALISATION_POINT_3D(centre_de_l_espace_physique \ ,MOYE(ASD2(espace_physique,origine,x),ASD2(espace_physique,extremite,x)) \ ,MOYE(ASD2(espace_physique,origine,y),ASD2(espace_physique,extremite,y)) \ ,MOYE(ASD2(espace_physique,origine,z),ASD2(espace_physique,extremite,z)) \ ); \ Eblock \ /* Initialisation de la definition de l'espace physique. */ #define EDITER_LA_DEFINITION_DE_L_UNIVERS_PHYSIQUE \ FAUX DEFV(Local,DEFV(Logical,INIT(editer_la_definition_de_l_univers_physique,EDITER_LA_DEFINITION_DE_L_UNIVERS_PHYSIQUE))); /* Cet indicateur permet d'editer la definition de l'univers physique utilise. */ #define EDITER_L_UNIVERS_PHYSIQUE \ Bblock \ Test(IL_FAUT(editer_la_definition_de_l_univers_physique)) \ Bblock \ CAL2(Prin6("UNIVERS=((XUI=%+.^^^,YUI=%+.^^^,ZUI=%+.^^^),(XUS=%+.^^^,YUS=%+.^^^,ZUS=%+.^^^))\n" \ ,ASD2(espace_physique,origine,x) \ ,ASD2(espace_physique,origine,y) \ ,ASD2(espace_physique,origine,z) \ ,ASD2(espace_physique,extremite,x) \ ,ASD2(espace_physique,extremite,y) \ ,ASD2(espace_physique,extremite,z) \ ) \ ); \ /* Le 19980227102515, j'ai remplace les '{}' par des '()' a cause de l'utilisation qui est */ \ /* faite de tout ceci dans des sequences telles : */ \ /* */ \ /* xivPdf 11 2 / 005633_006144 */ \ /* */ \ /* car, en effet, les '{}' sont interpretees par le 'C-Shell'... */ \ /* */ \ /* Le 20060105160224, le format "16g" est passe a "^^g" pour plus de souplesse... */ \ /* */ \ /* Le 20091123123446, le format "^^g" est passe a "^^^" pour plus de souplesse... */ \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Eblock \ /* Edition de l'univers physique utilise. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 E T I N V E R S E M E N T : */ /* */ /*************************************************************************************************************************************/ #define LONGUEURS_PHYSIQUES_DANS_01(longueur,type) \ SCAL(longueur \ ,SOUS(ASD2(espace_physique,extremite,type),ASD2(espace_physique,origine,type)) \ ,SOUS(COORDONNEE_BARYCENTRIQUE_MAXIMALE,COORDONNEE_BARYCENTRIQUE_MINIMALE) \ ) \ /* Mise d'une longueur physique sur n'importe quel axe dans le segment [0,1]... */ #define lX_PHYSIQUE_DANS_01(longueur) \ LONGUEURS_PHYSIQUES_DANS_01(ANTI_SUPER_ECHELLE_OX(longueur),x) #define lY_PHYSIQUE_DANS_01(longueur) \ LONGUEURS_PHYSIQUES_DANS_01(ANTI_SUPER_ECHELLE_OY(longueur),y) #define lZ_PHYSIQUE_DANS_01(longueur) \ LONGUEURS_PHYSIQUES_DANS_01(ANTI_SUPER_ECHELLE_OZ(longueur),z) /* Mise d'une longueur physique dans le segment [0,1]... */ /* */ /* Les 'ANTI_SUPER_ECHELLE_O?(...)' ont ete introduites le 20051216104908... */ #define lX_PHYSIQUE_A_VISUALISATION(longueur) \ X_DE_VISUALISATION(lX_PHYSIQUE_DANS_01(longueur)) #define lY_PHYSIQUE_A_VISUALISATION(longueur) \ Y_DE_VISUALISATION(lY_PHYSIQUE_DANS_01(longueur)) #define lZ_PHYSIQUE_A_VISUALISATION(longueur) \ Z_DE_VISUALISATION(lZ_PHYSIQUE_DANS_01(longueur)) /* Passage des longueurs physiques (lx,ly,lz) aux longueurs de visualisation (lX,lY,lZ). */ /* Des essais effectues le 19991224100516 sur '$LACT27' avec 'v $xrk/rdn_walk.52$K' */ /* donnent les valeurs suivantes : */ /* */ /* lX_PHYSIQUE_A_VISUALISATION(1.0) = 287.131410 */ /* lY_PHYSIQUE_A_VISUALISATION(1.0) = 287.000000 */ /* lZ_PHYSIQUE_A_VISUALISATION(1.0) = 7.500000 */ /* */ /* avec : */ /* */ /* Pal */ /* Zmin=0 Zmax=15 */ /* */ /* Cela est relativement problematique car des longueurs identiques dans l'espace physique */ /* ne donnent pas des longueurs identiques au niveau de la visualisation. Que faire ? La */ /* solution semble etre d'utiliser : */ /* */ /* Zmin=0 Zmax=574 */ /* */ /* c'est-a-dire : */ /* */ /* Zmin=Ymin */ /* Zmax=Ymax */ /* */ /* C'est pourquoi 'FORMATAGE_EN_PROFONDEUR_DES_IMAGES(...)' a ete introduit de meme que */ /* 'FORMATAGE_VERTICAL_DES_IMAGES(...)'. Enfin, le passage de 'DIMENSION(...)' a */ /* 'LONGUEUR(DIMENSION(...))' a permis d'obtenir : */ /* */ /* lX_PHYSIQUE_A_VISUALISATION(1.0) = 287.000000 */ /* lY_PHYSIQUE_A_VISUALISATION(1.0) = 287.000000 */ /* lZ_PHYSIQUE_A_VISUALISATION(1.0) = 287.000000 */ /* */ /* avec : */ /* */ /* Pal */ /* Zmin=0 Zmax=15 */ /* */ /* ce qui est tres bien... */ /* */ /* Malheureusement, le 19991224154610, j'ai decouvert que cela avait des consequences sur */ /* 'DEFINITION_DE_L_ESPACE_PHYSIQUE(...)' a cause de {Zmin_ESPACE,Zmax_ESPACE} qui */ /* se retrouvaient disproportionnes pour de faibles valeurs de 'Zmax' (15 par exemple). Or */ /* il est pratiquement impossible de donner des "grandes" valeurs a 'Zmax' a cause de son */ /* utilisation dans des 'album's ('v $xrk/rdn_walk.52$K album'). La solution semble donc */ /* etre de rendre neutre la fonction 'FORMATAGE_EN_PROFONDEUR_DES_IMAGES(...)', de meme que */ /* 'FORMATAGE_VERTICAL_DES_IMAGES(...)', par symetrie... Cela donne donc : */ /* */ /* lX_PHYSIQUE_A_VISUALISATION(1.0) = 287.000000 */ /* lY_PHYSIQUE_A_VISUALISATION(1.0) = 287.000000 */ /* lZ_PHYSIQUE_A_VISUALISATION(1.0) = 7.500000 */ /* */ /* avec : */ /* */ /* Pal */ /* Zmin=0 Zmax=15 */ /* */ /* ce qui est moins bien... */ #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]. */ \ /* */ \ /* ATTENTION : au cas ou 'BUG_SYSTEME_APC_GCC_ExcessPrecisionProblem_02' existerait, une */ \ /* solution pour faire fonctionner correctement 'COORDONNEES_PHYSIQUES_DANS_01(...)' est */ \ /* d'inclure sa definition dans un 'GRO2(FRA2(...))' comme les tests effectues avec */ \ /* 'v $Dbugs/APC$D/LinuxRedHat$D/GCC$D/flottant.21$c' l'ont montre... */ #define gX_PHYSIQUE_DANS_01(coordonnee,translation) \ COORDONNEES_PHYSIQUES_DANS_01(ANTI_SUPER_ECHELLE_OX(coordonnee),x,translation) #define gY_PHYSIQUE_DANS_01(coordonnee,translation) \ COORDONNEES_PHYSIQUES_DANS_01(ANTI_SUPER_ECHELLE_OY(coordonnee),y,translation) #define gZ_PHYSIQUE_DANS_01(coordonnee,translation) \ COORDONNEES_PHYSIQUES_DANS_01(ANTI_SUPER_ECHELLE_OZ(coordonnee),z,translation) /* Mise d'une coordonnee physique dans le segment [0 + translation,1 + translation]. */ /* */ /* Ces procedures ont ete introduites le 20010201131010 afin de permettre la generation */ /* de coordonnees {X,Y,Z} dans [Xmin,Xmax]x[Ymin,Ymax]x[Zmin,Zmax] via une 'translation' */ /* nulle. Ceci a ete rendu necessaire par 'v $xrk/rdn_walk.52$K g._PHYSIQUE_A_VISUALISATION' */ /* dans lequel ces coordonnees {X,Y,Z} sont ensuite utilisees pour indexer des albums */ /* d'image via 'v $xrk/rdn_walk.52$I FAload_point' ; avant cela, la coordonnee 'Z' etait */ /* incorrecte car etant dans [-Zmax/2,+Zmax/2]. */ /* */ /* Les 'ANTI_SUPER_ECHELLE_O?(...)' ont ete introduites le 20051216104908 en conjonction */ /* avec 'v $xrv/champs_5.1A$I 20051216104459'... */ #define X_PHYSIQUE_DANS_01(coordonnee) \ gX_PHYSIQUE_DANS_01(coordonnee,TRANSLATION_DE_X_PHYSIQUE) #define Y_PHYSIQUE_DANS_01(coordonnee) \ gY_PHYSIQUE_DANS_01(coordonnee,TRANSLATION_DE_Y_PHYSIQUE) #define Z_PHYSIQUE_DANS_01(coordonnee) \ gZ_PHYSIQUE_DANS_01(coordonnee,TRANSLATION_DE_Z_PHYSIQUE) /* Mise d'une coordonnee physique dans le segment [0,1] ou [-1/2,+1/2] dans le cas de 'Z'... */ #define COORDONNEES_01_DANS_PHYSIQUES(coordonnee,type,translation) \ DENO(SOUS(coordonnee \ ,translation \ ) \ ,ASD2(espace_physique,origine,type) \ ,ASD2(espace_physique,extremite,type) \ ) \ /* Operation inverse de 'COORDONNEES_PHYSIQUES_DANS_01(...)'. */ #define gX_01_DANS_PHYSIQUE(coordonnee,translation) \ COORDONNEES_01_DANS_PHYSIQUES(coordonnee,x,translation) #define gY_01_DANS_PHYSIQUE(coordonnee,translation) \ COORDONNEES_01_DANS_PHYSIQUES(coordonnee,y,translation) #define gZ_01_DANS_PHYSIQUE(coordonnee,translation) \ COORDONNEES_01_DANS_PHYSIQUES(coordonnee,z,translation) /* Operations inverses de 'g[XYZ]_PHYSIQUE_DANS_01(...)'... */ #define X_01_DANS_PHYSIQUE(coordonnee) \ gX_01_DANS_PHYSIQUE(coordonnee,TRANSLATION_DE_X_PHYSIQUE) #define Y_01_DANS_PHYSIQUE(coordonnee) \ gY_01_DANS_PHYSIQUE(coordonnee,TRANSLATION_DE_Y_PHYSIQUE) #define Z_01_DANS_PHYSIQUE(coordonnee) \ gZ_01_DANS_PHYSIQUE(coordonnee,TRANSLATION_DE_Z_PHYSIQUE) /* Operations inverses de '[XYZ]_PHYSIQUE_DANS_01(...)'... */ #define LONGUEURS_01_DANS_PHYSIQUES(longueur,type) \ SCAL(longueur \ ,SOUS(COORDONNEE_BARYCENTRIQUE_MAXIMALE,COORDONNEE_BARYCENTRIQUE_MINIMALE) \ ,SOUS(ASD2(espace_physique,extremite,type),ASD2(espace_physique,origine,type)) \ ) \ /* Operation identique a 'COORDONNEES_01_DANS_PHYSIQUES(...)' mais pour des longueurs... */ #define LONGUEUR_X_01_DANS_PHYSIQUE(longueur) \ LONGUEURS_01_DANS_PHYSIQUES(longueur,x) #define LONGUEUR_Y_01_DANS_PHYSIQUE(longueur) \ LONGUEURS_01_DANS_PHYSIQUES(longueur,y) #define LONGUEUR_Z_01_DANS_PHYSIQUE(longueur) \ LONGUEURS_01_DANS_PHYSIQUES(longueur,z) /* Operations identiques a '[XYZ]_01_DANS_PHYSIQUE(...)' mais pour des longueurs... */ #define COORDONNEES_DE_VISUALISATION(coordonnee,type,normalisation) \ normalisation(coordonnee) \ /* Passage general d'une coordonnee physique a une coordonnee de visualisation (on ne */ \ /* s'inquietera pas de 'type' qui correspond a une ancienne version, mais qui est */ \ /* conserve pour des raisons de symetrie...). */ #define X_DE_VISUALISATION(coordonnee) \ COORDONNEES_DE_VISUALISATION(coordonnee,x,F__cDENORMALISE_OX) #define Y_DE_VISUALISATION(coordonnee) \ COORDONNEES_DE_VISUALISATION(coordonnee,y,F__cDENORMALISE_OY) #define Z_DE_VISUALISATION(coordonnee) \ COORDONNEES_DE_VISUALISATION(coordonnee,z,F__cDENORMALISE_OZ) /* Passage des coordonnees physiques dans [0,1] {x,y,z} aux coordonnees de visualisation */ /* {X,Y,Z}. */ #define gX_PHYSIQUE_A_VISUALISATION(coordonnee,translation) \ X_DE_VISUALISATION(gX_PHYSIQUE_DANS_01(coordonnee,translation)) #define gY_PHYSIQUE_A_VISUALISATION(coordonnee,translation) \ Y_DE_VISUALISATION(gY_PHYSIQUE_DANS_01(coordonnee,translation)) #define gZ_PHYSIQUE_A_VISUALISATION(coordonnee,translation) \ Z_DE_VISUALISATION(gZ_PHYSIQUE_DANS_01(coordonnee,translation)) /* Passage des coordonnees physiques {x,y,z} aux coordonnees de visualisation {X,Y,Z} avec */ /* translation explicite. */ /* */ /* Ces procedures ont ete introduites le 20010201131010 afin de permettre la generation */ /* de coordonnees {X,Y,Z} dans [Xmin,Xmax]x[Ymin,Ymax]x[Zmin,Zmax] via une 'translation' */ /* nulle. Ceci a ete rendu necessaire par 'v $xrk/rdn_walk.52$K g._PHYSIQUE_A_VISUALISATION' */ /* dans lequel ces coordonnees {X,Y,Z} sont ensuite utilisees pour indexer des albums */ /* d'image via 'v $xrk/rdn_walk.52$I FAload_point' ; avant cela, la coordonnee 'Z' etait */ /* incorrecte car etant dans [-Zmax/2,+Zmax/2]. */ #define X_PHYSIQUE_A_VISUALISATION(coordonnee) \ X_DE_VISUALISATION(X_PHYSIQUE_DANS_01(coordonnee)) #define Y_PHYSIQUE_A_VISUALISATION(coordonnee) \ Y_DE_VISUALISATION(Y_PHYSIQUE_DANS_01(coordonnee)) #define Z_PHYSIQUE_A_VISUALISATION(coordonnee) \ Z_DE_VISUALISATION(Z_PHYSIQUE_DANS_01(coordonnee)) /* Passage des coordonnees physiques {x,y,z} aux coordonnees de visualisation {X,Y,Z} avec */ /* translation implicite {TRANSLATION_DE_?_PHYSIQUE}. */ #define COORDONNEES_PHYSIQUES(coordonnee,type,denormalisation,translation) \ AXPB(SOUS(ASD2(espace_physique,extremite,type) \ ,ASD2(espace_physique,origine,type) \ ) \ ,SOUS(denormalisation(coordonnee),translation) \ ,ASD2(espace_physique,origine,type) \ ) \ /* Passage general d'une coordonnee de visualisation a une coordonnee physique. */ #define gX_PHYSIQUE(coordonnee,translation) \ COORDONNEES_PHYSIQUES(coordonnee,x,_____cNORMALISE_OX,translation) #define gY_PHYSIQUE(coordonnee,translation) \ COORDONNEES_PHYSIQUES(coordonnee,y,_____cNORMALISE_OY,translation) #define gZ_PHYSIQUE(coordonnee,translation) \ COORDONNEES_PHYSIQUES(coordonnee,z,_____cNORMALISE_OZ,translation) /* Passage des coordonnees de visualisation {X,Y,Z} aux coordonnees physiques {x,y,z}. */ #define X_PHYSIQUE(coordonnee) \ gX_PHYSIQUE(coordonnee,TRANSLATION_DE_X_PHYSIQUE) #define Y_PHYSIQUE(coordonnee) \ gY_PHYSIQUE(coordonnee,TRANSLATION_DE_Y_PHYSIQUE) #define Z_PHYSIQUE(coordonnee) \ gZ_PHYSIQUE(coordonnee,TRANSLATION_DE_Z_PHYSIQUE) /* Passage des coordonnees de visualisation {X,Y,Z} aux coordonnees physiques {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 A L ' I N T E R I E U R D U P R O T O N : */ /* */ /*************************************************************************************************************************************/ #define LONGUEUR_DE_RENORMALISATION \ DIAMETRE_D_UN_HADRON \ /* Longueur caracteristique destinee a renormaliser les coordonnees dans [0,1]. */ #define pNORM(coordonnee) \ DIVI(coordonnee,LONGUEUR_DE_RENORMALISATION) \ /* Fonction de renormalisation des coordonnees a l'interieur du proton, telle que : */ \ /* [-d,+d] <--> [-1,+1] (ou 'd' designe 'DIAMETRE_D_UN_HADRON') ; cette fonction est */ \ /* utilisee dans les fonctions de definition des champs (dans 'DISTANCE_ORDRE_0(...)', */ \ /* 'DISTANCE_ORDRE_1(...)' et 'DISTANCE_ORDRE_2(...)'). */