_______________________________________________________________________________________________________________________________________
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        R E S E R V A T I O N   D E S   I M A G E S   E N   M E M O I R E  :                                                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definitions des termes utilises :                                                                                          */
/*                                                                                                                                   */
/*                    On utilisera en general trois images, appelees                                                                 */
/*                  "imageA1", "imageA2" et "imageR" (le "A" signifiant                                                              */
/*                  'Argument' et le "R", 'Resultat') ; en effet, les                                                                */
/*                  operations effectuees seront du type :                                                                           */
/*                                                                                                                                   */
/*                                      imageR <-- (imageA1).OP.(imageA2)                                                            */
/*                                                                                                                                   */
/*                  ou '.OP.' designe un operateur.                                                                                  */
/*                                                                                                                                   */
/*                    On appelera image "standard", une image dont                                                                   */
/*                  les pixels sont generes par "genere_p" via "image",                                                              */
/*                  et image "CHAR"/"Int"/"Float" une image dont les                                                                 */
/*                  pixels sont generes par "CHAR"/"Int"/"Float"                                                                     */
/*                  via "imageC"/"imageI"/"imageF".                                                                                  */
/*                                                                                                                                   */
/*        Rangement en memoire :                                                                                                     */
/*                                                                                                                                   */
/*                    Les images image(X,Y) sont rangees sequentiellement                                                            */
/*                  dans la memoire de la facon suivante image[Y][X] : c'est la                                                      */
/*                  coordonnee "X" qui varie la plus vite ; on trouve donc                                                           */
/*                  ainsi dans l'ordre les points {X,Y} :                                                                            */
/*                                                                                                                                   */
/*                                      (0,0),(1,0),(2,0),...                                                                        */
/*                                      (0,1),(1,1),(2,1),...                                                                        */
/*                                      (0,2),(1,2),(2,2),...                                                                        */
/*                                      .                                                                                            */
/*                                      .                                                                                            */
/*                                      .                                                                                            */
/*                                                                                                                                   */
/*                    Ainsi, lors de la sortie d'images sur bande,                                                                   */
/*                  elles sont pretes a etre visualisees sur un                                                                      */
/*                  support raster ligne a ligne...                                                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xiii/Images$STR' :                                                                                             */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 19870000000000).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E S   " B U G S "   P R E S E N T S  :                                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifdef    BUG_SYSTEME_NWS3000_NEWSOS_LACT23_EDFR11_HOME11_ZONE_DE_SWAP_1        /* Common,DEFV(Fonction,) : bug...                   */
DEFV(Common,DEFV(Logical,_____BUG_SYSTEME_NWS3000_NEWSOS_LACT23_EDFR11_HOME11_ZONE_DE_SWAP_1));
#Aifdef   BUG_SYSTEME_NWS3000_NEWSOS_LACT23_EDFR11_HOME11_ZONE_DE_SWAP_1        /* Common,DEFV(Fonction,) : bug...                   */
#Eifdef   BUG_SYSTEME_NWS3000_NEWSOS_LACT23_EDFR11_HOME11_ZONE_DE_SWAP_1        /* Common,DEFV(Fonction,) : bug...                   */

#ifdef    BUG_SYSTEME_NWS3000_NEWSOS_LACT23_EDFR11_HOME11_LIMIT_MEMORY_1        /* Common,DEFV(Fonction,) : bug...                   */
DEFV(Common,DEFV(Logical,_____BUG_SYSTEME_NWS3000_NEWSOS_LACT23_EDFR11_HOME11_LIMIT_MEMORY_1));
#Aifdef   BUG_SYSTEME_NWS3000_NEWSOS_LACT23_EDFR11_HOME11_LIMIT_MEMORY_1        /* Common,DEFV(Fonction,) : bug...                   */
#Eifdef   BUG_SYSTEME_NWS3000_NEWSOS_LACT23_EDFR11_HOME11_LIMIT_MEMORY_1        /* Common,DEFV(Fonction,) : bug...                   */

#ifdef    BUG_SYSTEME_C_complexite_01                                           /* Common,DEFV(Fonction,) : bug...                   */
DEFV(Common,DEFV(Logical,_____BUG_SYSTEME_C_complexite_01));
                                        /* ATTENTION : le 20061124142825 '_____BUG_SYSTEME_C_complexite_01' a ete installe ici       */
                                        /* depuis 'v $xiipd/fonction.1$FON 20061124142825' car, en effet, ce dernier fichier         */
                                        /* ('v $xiipd/fonction.1$FON') n'est pas compile (au passage le directory '$xbipd'           */
                                        /* n'existe pas...).                                                                         */
#Aifdef   BUG_SYSTEME_C_complexite_01                                           /* Common,DEFV(Fonction,) : bug...                   */
#Eifdef   BUG_SYSTEME_C_complexite_01                                           /* Common,DEFV(Fonction,) : bug...                   */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        R E S E R V A T I O N   D E S   I M A G E S   " S T A N D A R D S "   E N   F A U S S E S   C O U L E U R S  :             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifndef   NE_PAS_GENERER_ImageA         /* Common : la generation de 'ImageA' est facultative...                                     */
DEFV(Common,DEFV(Statique,DEFV(image,ImageA)));
                                        /* Definition de l'image Argument unique.                                                    */
#Aifndef  NE_PAS_GENERER_ImageA         /* Common : la generation de 'ImageA' est facultative...                                     */
#Eifndef  NE_PAS_GENERER_ImageA         /* Common : la generation de 'ImageA' est facultative...                                     */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________

#ifndef   NE_PAS_GENERER_ImageA1        /* Common : la generation de 'ImageA1' est facultative...                                    */
DEFV(Common,DEFV(Statique,DEFV(image,ImageA1)));
                                        /* Definition de la premiere image Argument,                                                 */
#Aifndef  NE_PAS_GENERER_ImageA1        /* Common : la generation de 'ImageA1' est facultative...                                    */
#Eifndef  NE_PAS_GENERER_ImageA1        /* Common : la generation de 'ImageA1' est facultative...                                    */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________

#ifndef   NE_PAS_GENERER_ImageA2        /* Common : la generation de 'ImageA2' est facultative...                                    */
DEFV(Common,DEFV(Statique,DEFV(image,ImageA2)));
                                        /* Definition de la deuxieme image Argument.                                                 */
#Aifndef  NE_PAS_GENERER_ImageA2        /* Common : la generation de 'ImageA2' est facultative...                                    */
#Eifndef  NE_PAS_GENERER_ImageA2        /* Common : la generation de 'ImageA2' est facultative...                                    */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________

#ifndef   NE_PAS_GENERER_ImageR         /* Common : la generation de 'ImageR' est facultative...                                     */
DEFV(Common,DEFV(Statique,DEFV(image,ImageR)));
                                        /* Definition de l'image Resultat unique.                                                    */
#Aifndef  NE_PAS_GENERER_ImageR         /* Common : la generation de 'ImageR' est facultative...                                     */
#Eifndef  NE_PAS_GENERER_ImageR         /* Common : la generation de 'ImageR' est facultative...                                     */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________

#ifndef   NE_PAS_GENERER_ImageG         /* Common : la generation de 'ImageG' est facultative...                                     */
DEFV(Common,DEFV(Statique,DEFV(image,ImageG)));
                                        /* Definition de l'image Graphique.                                                          */
#Aifndef  NE_PAS_GENERER_ImageG         /* Common : la generation de 'ImageG' est facultative...                                     */
#Eifndef  NE_PAS_GENERER_ImageG         /* Common : la generation de 'ImageG' est facultative...                                     */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        R E S E R V A T I O N   D E S   I M A G E S   " S T A N D A R D S "   E N   V R A I E S   C O U L E U R S  :               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifndef   NE_PAS_GENERER_Image_ROUGE    /* Common : la generation de 'Image_ROUGE' est facultative...                                */
DEFV(Common,DEFV(Statique,DEFV(image,Image_ROUGE)));
                                        /* Definition de l'image ROUGE,                                                              */
#Aifndef  NE_PAS_GENERER_Image_ROUGE    /* Common : la generation de 'Image_ROUGE' est facultative...                                */
#Eifndef  NE_PAS_GENERER_Image_ROUGE    /* Common : la generation de 'Image_ROUGE' est facultative...                                */

#ifndef   NE_PAS_GENERER_Image_VERTE    /* Common : la generation de 'Image_VERTE' est facultative...                                */
DEFV(Common,DEFV(Statique,DEFV(image,Image_VERTE)));
                                        /* Definition de l'image VERTE,                                                              */
#Aifndef  NE_PAS_GENERER_Image_VERTE    /* Common : la generation de 'Image_VERTE' est facultative...                                */
#Eifndef  NE_PAS_GENERER_Image_VERTE    /* Common : la generation de 'Image_VERTE' est facultative...                                */

#ifndef   NE_PAS_GENERER_Image_BLEUE    /* Common : la generation de 'Image_BLEUE' est facultative...                                */
DEFV(Common,DEFV(Statique,DEFV(image,Image_BLEUE)));
                                        /* Definition de l'image BLEUE.                                                              */
#Aifndef  NE_PAS_GENERER_Image_BLEUE    /* Common : la generation de 'Image_BLEUE' est facultative...                                */
#Eifndef  NE_PAS_GENERER_Image_BLEUE    /* Common : la generation de 'Image_BLEUE' est facultative...                                */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A C C E L E R A T E U R   D E   L A   C O M P I L A T I O N  :                                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Afin d'acceler la compilation de                                                                               */
/*                  certains modules (et par exemple                                                                                 */
/*                  'aleatoires.fon'), certaines valeurs                                                                             */
/*                  definies par des '#define' vont etre                                                                             */
/*                  etre definies ici sous forme de                                                                                  */
/*                  variables en memoire...                                                                                          */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E S T I O N   D E   L ' I N D E X A T I O N   D E S   I M A G E S  :                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifdef    __VERSION__INDEXATION_SIMPLIFIEE_A_PRIORI                             /* Common,DEFV(Fonction,) : avec '__VERSION__'.      */
DEFV(Common,DEFV(Logical,_______VERSION__INDEXATION_SIMPLIFIEE_A_PRIORI));
#Aifdef   __VERSION__INDEXATION_SIMPLIFIEE_A_PRIORI                             /* Common,DEFV(Fonction,) : avec '__VERSION__'.      */
#Eifdef   __VERSION__INDEXATION_SIMPLIFIEE_A_PRIORI                             /* Common,DEFV(Fonction,) : avec '__VERSION__'.      */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E S T I O N   D U   F O R M A T   D E S   I M A G E S  :                                                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Il y a deux possibilites : soit le                                                                             */
/*                  format des images est fige et defini par                                                                         */
/*                  (dimX,dimY,dimZ), soit il est variable et                                                                        */
/*                  defini par [Xmin,Xmax]x[Ymin,Ymax]x[Zmin,Zmax].                                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#if  ((defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_02)) || (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_03)))    /* Common :       */
DEFV(Common,DEFV(Logical,ZINT(cHOMOTHETIE_Std_AXES_____compatibilite_20120210,FAUX)));
DEFV(Common,DEFV(Logical,ZINT(lHOMOTHETIE_Std_AXES_____compatibilite_20120210,FAUX)));
                                        /* Introduit le 20120210184353...                                                            */
#Aif ((defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_02)) || (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_03)))    /* Common :       */
#Eif ((defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_02)) || (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_03)))    /* Common :       */

DEFV(Common,DEFV(Int,ZINT(X,k___Xmin)));
DEFV(Common,DEFV(Int,ZINT(Y,k___Ymin)));
DEFV(Common,DEFV(Int,ZINT(Z,k___Zmin)));
DEFV(Common,DEFV(Int,ZINT(T,k___Tmin)));
                                        /* Ces trois definitions, en apparence inutiles, ont ete introduites le 1995021600 a cause   */
                                        /* du programme 'v $xrv/champs_5.30$K' ; en effet, dans les procedures 'begin_fuiteQ(...)',  */
                                        /* 'begin_colonneQ(...)' et 'begin_ligneQ(...)' a ete introduite la sauvegarde de la         */
                                        /* valeur d'hypothetiques coordonnees {X,Y,Z} anterieures, et ce afin de permettre la        */
                                        /* recursivite de ces trois procedures. Ainsi, il a fallu creer des valeurs {X,Y,Z} au       */
                                        /* niveau le plus bas, c'est-a-dire ici...                                                   */

#ifdef    GESTION_DES_IMAGES_STATIQUES_VERSION_02                               /* Common,DEFV(Fonction,) : avec 'VERSION_02'.       */
DEFV(Common,DEFV(Logical,ZINT(valider_les_axes_OX_OY_OZ,NE_PAS_VALIDER_LES_AXES_OX_OY_OZ)));
                                        /* Cet indicateur precise s'il faut ('VRAI') ou pas ('FAUX') valider les trois axes. Ceci    */
                                        /* a ete ajoute le 19980324104621 afin de permettre de manipuler des fichiers "textes"       */
                                        /* comme des images definies par :                                                           */
                                        /*                                                                                           */
                                        /*                  Xmin = 0                                                                 */
                                        /*                  Xmax = LongueurFichierTexte-1                                            */
                                        /*                                                                                           */
                                        /*                  Ymin = 0                                                                 */
                                        /*                  Ymax = 0                                                                 */
                                        /*                                                                                           */
                                        /* ainsi, on pourra, par exemple, faire une sorte de "ou" entre deux textes a l'aide de la   */
                                        /* commande 'v $xci/maximum$K'. On notera au passage que le code du '$K_BLANC' est le plus   */
                                        /* faible des codes utiles, ce qui fait que ce caractere joue en quelque sorte le role du    */
                                        /* zero...                                                                                   */
                                        /*                                                                                           */
                                        /* Le 19980409181211, j'ai aussi pris conscience que tout en conservant la dimension d'une   */
                                        /* image (soit 'dimXY'), on pouvait changer en fait les deux couples {Xmin,Xmax} et          */
                                        /* {Ymin,Ymax} (en notant encore une fois que 'dimXY' doit etre conserve). Cette operation   */
                                        /* permet par exemple de changer la definition du voisinage d'un point (dans les operations  */
                                        /* de convolution par exemple) en faisant que ce voisinage ne soit plus fait des veritables  */
                                        /* voisins dans l'une des deux directions...                                                 */
                                        /*                                                                                           */
                                        /* Le 20120123131422, il y a eu passage de 'VALIDER_LES_AXES_OX_OY_OZ' a                     */
                                        /* 'NE_PAS_VALIDER_LES_AXES_OX_OY_OZ' ce qui simplifie les choses...                         */
DEFV(Common,DEFV(Float,ZINT(coefficient_de_forme_de_l_espace_tridimensionnel,COEFFICIENT_DE_FORME_DE_L_ESPACE_TRIDIMENSIONNEL)));
                                        /* Ce qui precede fut completer le 20140103185215 par le parametrage possible du coefficient */
                                        /* de forme de l'espace tridimensionnel...                                                   */
#Aifdef   GESTION_DES_IMAGES_STATIQUES_VERSION_02                               /* Common,DEFV(Fonction,) : avec 'VERSION_02'.       */
#Eifdef   GESTION_DES_IMAGES_STATIQUES_VERSION_02                               /* Common,DEFV(Fonction,) : avec 'VERSION_02'.       */

#if  ((defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_01)))                                                          /* Common :       */
#Aif ((defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_01)))                                                          /* Common :       */
#Eif ((defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_01)))                                                          /* Common :       */

#if  ((defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_02)) || (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_03)))    /* Common :       */
DEFV(Common,DEFV(Int,ZINT(Xmin,k___Xmin)));
DEFV(Common,DEFV(Int,ZINT(Xmax,k___Xmax)));
                                        /* Definition de l'axe 'OX' a l'aide de l'intervalle [Xmin,Xmax] ; toutes les autres         */
                                        /* definitions ('dimX', 'dimX2', 'Xmax2', 'Xcentre', 'MdimXY', 'MdimXYZ', 'dimXY', 'dimXYZ', */
                                        /* 'PLUS_GRANDE_IMAGE_CARREE_INSCRITE' et 'PLUS_PETITE_IMAGE_CARREE_CIRCONSCRITE') en        */
                                        /* decoulent (voir le fichier 'v $xiiD/definit.1$DEF').                                      */
DEFV(Common,DEFV(Int,ZINT(Ymin,k___Ymin)));
DEFV(Common,DEFV(Int,ZINT(Ymax,k___Ymax)));
                                        /* Definition de l'axe 'OY' a l'aide de l'intervalle [Ymin,Ymax] ; toutes les autres         */
                                        /* definitions ('dimY', 'dimY2', 'Ymax2', 'Ycentre', 'MdimXY', 'MdimXYZ', 'dimXY', 'dimXYZ', */
                                        /* 'PLUS_GRANDE_IMAGE_CARREE_INSCRITE' et 'PLUS_PETITE_IMAGE_CARREE_CIRCONSCRITE') en        */
                                        /* decoulent (voir le fichier 'v $xiiD/definit.1$DEF').                                      */
DEFV(Common,DEFV(Int,ZINT(Zmin,k___Zmin)));
DEFV(Common,DEFV(Int,ZINT(Zmax,k___Zmax)));
                                        /* Definition de l'axe 'OZ' a l'aide de l'intervalle [Zmin,Zmax] ; toutes les autres         */
                                        /* definitions ('dimZ', 'dimZ2', 'Zmax2', 'Zcentre', 'MdimXY', 'MdimXYZ', 'dimXY', 'dimXYZ', */
                                        /* 'PLUS_GRANDE_IMAGE_CARREE_INSCRITE' et 'PLUS_PETITE_IMAGE_CARREE_CIRCONSCRITE') en        */
                                        /* decoulent (voir le fichier 'v $xiiD/definit.1$DEF').                                      */
DEFV(Common,DEFV(Int,ZINT(Tmin,k___Tmin)));
DEFV(Common,DEFV(Int,ZINT(Tmax,k___Tmax)));
                                        /* Definition de l'axe 'OT' a l'aide de l'intervalle [Tmin,Tmax] (introduit le               */
                                        /* 20171219110444).                                                                          */
#Aif ((defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_02)) || (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_03)))    /* Common :       */
#Eif ((defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_02)) || (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_03)))    /* Common :       */

DEFV(Common,DEFV(Int,ZINT(Xmin_reference,k___Xmin)));
DEFV(Common,DEFV(Int,ZINT(Xmax_reference,k___Xmax)));

DEFV(Common,DEFV(Int,ZINT(Ymin_reference,k___Ymin)));
DEFV(Common,DEFV(Int,ZINT(Ymax_reference,k___Ymax)));

DEFV(Common,DEFV(Int,ZINT(Zmin_reference,k___Zmin)));
DEFV(Common,DEFV(Int,ZINT(Zmax_reference,k___Zmax)));
                                        /* Definition des axes 'OX', 'OY' et 'OZ' de reference (introduits le 20170322091625 afin    */
                                        /* de pouvoir definir des grandeurs "homothetiques" et par exemple des tailles de paves).    */
                                        /*                                                                                           */
                                        /* ATTENTION : je note le 20170322102212 l'existence de plusieurs variables dans             */
                                        /* 'v $ximcf/conformes$FON _reference.k___'. Mais, on ne peut pas les faire disparaitre      */
                                        /* au profit des six variables ci-dessus car, en effet, si l'on changeait leur definition    */
                                        /* (par exemple au profit du format 'Pal' il ne faudrait pas, pour des raisons de            */
                                        /* compatibilite, changer celles de 'v $ximcf/conformes$FON _reference.k___'...              */

DEFV(Common,DEFV(Float,ZINT(DENORMALISE_AXES_____epsilon,nEPSILON___DENORMALISE_AXES)));
                                        /* Petite quantite utilisee dans les fonctions de type '_?DENORMALISE_AXES(...)'.            */

DEFV(Common,DEFV(Logical,ZINT(ACCES_A_LA_COORDONNEE_X_D_UN_CHAMP_3D_____coordonnees_dans_un_carre,VRAI)));
DEFV(Common,DEFV(Logical,ZINT(ACCES_A_LA_COORDONNEE_Y_D_UN_CHAMP_3D_____coordonnees_dans_un_carre,VRAI)));
                                        /* Introduit le 20041107140655 afin de pouvoir garantir, par exemple, de generer une periode */
                                        /* d'un sinus le long de 'dimX' et 'dimY' dans 'v $xci/sinus$K GENERATION_DU_CHAMP_DEMANDE'. */
DEFV(Common,DEFV(Logical,ZINT(ACCES_A_LA_COORDONNEE_X_D_UN_CHAMP_3D_____compatibilite_20061128,FAUX)));
DEFV(Common,DEFV(Logical,ZINT(ACCES_A_LA_COORDONNEE_Y_D_UN_CHAMP_3D_____compatibilite_20061128,FAUX)));
                                        /* Introduit le 20061128143233 afin de pouvoir garantir la compatibilite anterieure, si      */
                                        /* besoin est...                                                                             */
                                        /*                                                                                           */
                                        /* Le 20061128160349 je note que la difference entre le mode normal et le mode "compatible"  */
                                        /* ne se manifeste que si l'echelle ('v $xiii/mono_image$FON coeffF_2D.POINTERs.echelle.')   */
                                        /* relative a la coordonnee concernee ('X' et/ou 'Y') differe de 1...                        */
DEFV(Common,DEFV(Logical,ZINT(ACCES_A_LA_COORDONNEE_X_D_UN_CHAMP_3D_____compatibilite_20100210,FAUX)));
DEFV(Common,DEFV(Logical,ZINT(ACCES_A_LA_COORDONNEE_Y_D_UN_CHAMP_3D_____compatibilite_20100210,FAUX)));
                                        /* Introduit le 20100210104232 afin de pouvoir garantir la compatibilite anterieure, si      */
                                        /* besoin est...                                                                             */
DEFV(Common,DEFV(Logical,ZINT(ACCES_A_LA_COORDONNEE_X_D_UN_CHAMP_3D_____coordonnees_normalisees,VRAI)));
DEFV(Common,DEFV(Logical,ZINT(ACCES_A_LA_COORDONNEE_Y_D_UN_CHAMP_3D_____coordonnees_normalisees,VRAI)));
                                        /* Introduit le 20060607174931 afin de pouvoir utiliser directement les coordonnees {X,Y}    */
                                        /* des images et ainsi, par exemple, pouvoir generer des tramages via 'v $xci/lineaire$K'.   */
                                        /* Ainsi, le 20060608114008, je note que :                                                   */
                                        /*                                                                                           */
                                        /*             $xci/lineaire$X     A=0 B=1 C=0                                            \  */
                                        /*                                 carre_X_CHAMP_3D=FAUX X_CHAMP_3D_denormalisee=VRAI     \  */
                                        /*                                 carre_Y_CHAMP_3D=FAUX Y_CHAMP_3D_denormalisee=VRAI     \  */
                                        /*                                 amplificateur=1 translateur=0                          \  */
                                        /*                                 Tx=0 Ty=0                                              \  */
                                        /*                                 modulo=VRAI                                            \  */
                                        /*                                 (...)                                                     */
                                        /*                                                                                           */
                                        /* donne une trame horizontale faite d'une alternance de lignes blanches et de lignes        */
                                        /* noires a condition de visualiser celle-ci avec la palette '$xiP/plan.01'...               */
                                        /*                                                                                           */
                                        /* ATTENTION : 'ACCES_A_LA_COORDONNEE_?_D_UN_CHAMP_3D_____coordonnees_normalisees' demande   */
                                        /* 'EST_FAUX(ACCES_A_LA_COORDONNEE_?_D_UN_CHAMP_3D_____coordonnees_dans_un_carre') pour      */
                                        /* pouvoir etre activable...                                                                 */

DEFV(Common,DEFV(Logical,ZINT(AXES_COORDONNEES_FERMES_OUVERTS_____compatibilite_20090929,FAUX)));
                                        /* Introduit le 20090929092932 afin de pouvoir garantir la compatibilite anterieure, si      */
                                        /* besoin est...                                                                             */
                                        /*                                                                                           */
                                        /* Le 20091203085638 je note un besoin pressant de cette compatibilite avec certains         */
                                        /* entrelacs (tous ?) et en particulier 'v $xiirv/STRV.J2' qui si cette image est recalculee */
                                        /* via sa description ('xlistN Debut_listG_STRV_J2 Fin_listG_STRV_J2' dans '$xiirv') voit    */
                                        /* apparaitre un grand trefle (a trois feuilles) sous la forme de deux traits sombres et     */
                                        /* steompes. Ce phenomene disparait en faisant :                                             */
                                        /*                                                                                           */
                                        /*                  COORDONNEES_____compatibilite_20090929=FAUX                              */
                                        /*                                                                                           */
                                        /* pour toutes les occurences de '$xci/trefle$X' (et pas les autres '$X'...).                */
                                        /*                                                                                           */
                                        /* Le 20101005093319, en calculant 'v $xiirs/PROK.41', je note le probleme que cette         */
                                        /* option pose dans les programmes 'v $xrs/project2D.11$K 20101005092845' et                 */
                                        /* 'v $xrs/project3D.11$K 20101005092842' pour les images generees anterieurement au         */
                                        /* 20090929092932, d'ou les modifications faites alors a ces deux programmes pour y          */
                                        /* autoriser par defaut cette compatibilite...                                               */
DEFV(Common,DEFV(Logical,ZINT(AXE_NIVEAUX_OUVERT_FERME_____compatibilite_19951221,FAUX)));
                                        /* Introduit le 20091015111754 afin de pouvoir garantir la compatibilite anterieure, si      */
                                        /* besoin est...                                                                             */
                                        /*                                                                                           */
                                        /* Le 20091015114844 la valeur de 'AXE_NIVEAUX_OUVERT_FERME_____compatibilite_20091015'      */
                                        /* par defaut est passee de 'FAUX' a 'VRAI' ('v $xiiD/definit.2$DEF 20091015114101')...      */
                                        /*                                                                                           */
                                        /* Le 20091015174102, "compatibilite_20091015" a ete change en "compatibilite_19951221"      */
                                        /* la date "19951221" etant approximative et resultat d'un 'retrouva $xiiD/definit.2$DEF'    */
                                        /* en choisissant la plus ancienne archive utilisant 'BLANC' et non plus 'COULEURS',         */
                                        /* c'est-a-dire finalement la premiere. Simultanement, la signification de cet indicateur    */
                                        /* a ete inversee, d'ou le retour a la valeur 'FAUX' par defaut...                           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N I V E A U X   D E S   I M A G E S   E T   D E S   A L B U M S  :                                                         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(genere_p,ZINT(Niveau____hors_image,NIVEAU_HORS_ECRAN)));
DEFV(Common,DEFV(genere_p,ZINT(Niveau____hors_album,NIVEAU_HORS_ECRAN)));
                                        /* Introduits le 20070213144659...                                                           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D E   S O U S - E C H A N T I L L O N N A G E   D E S   I M A G E S  :                                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Afin de permettre a toutes les                                                                                 */
/*                  fonctions de manipuler et traiter                                                                                */
/*                  des images de dimensions apparentes                                                                              */
/*                  inferieures a [dimX,dimY], les pas                                                                               */
/*                  d'echantillonnage des images, soit                                                                               */
/*                  [pasX,pasY], sont des donnees pro-                                                                               */
/*                  grammables. La dimension apparente                                                                               */
/*                  d'une image est alors [dimX/pasX,dimY/pasY].                                                                     */
/*                  De plus, il est possible de transla-                                                                             */
/*                  ter ce maillage ; ainsi on pourra                                                                                */
/*                  multiplexer plusieurs images sous-                                                                               */
/*                  echantillonnees, et creer ainsi des                                                                              */
/*                  images "spatio-temporelles", c'est-                                                                              */
/*                  a-dire finalement une animation...                                                                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Utilisation :                                                                                                              */
/*                                                                                                                                   */
/*                                      PUSH_ECHANTILLONNAGE;                                                                        */
/*                                      PULL_ECHANTILLONNAGE;                                                                        */
/*                                                                                                                                   */
/*                  permettent de sauvegarder, puis                                                                                  */
/*                  de restaurer (pasX,pasY,pasZ), et enfin,                                                                         */
/*                                                                                                                                   */
/*                                      SET_ECHANTILLONNAGE(pas_sur_l_axe_OX,pas_sur_l_axe_OY);                                      */
/*                                      SET_ECHANTILLONNAGE_DE_PROFONDEUR(pas_sur_l_axe_OZ);                                         */
/*                                                                                                                                   */
/*                  permet de positionner (pasX,pasY) et 'pasZ' (seul).                                                              */
/*                                                                                                                                   */
/*                                      PUSH_TRANSLATION;                                                                            */
/*                                      PULL_TRANSLATION;                                                                            */
/*                                                                                                                                   */
/*                  permettent de sauvegarder, puis                                                                                  */
/*                  de restaurer (translationX,translationY), et enfin,                                                              */
/*                                                                                                                                   */
/*                                      SET_TRANSLATION(translation_sur_l_axe_OX,translation_sur_l_axe_OY);                          */
/*                                                                                                                                   */
/*                  permet de positionner (translationX,translationY).                                                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,ZINT(echantillonnage,FAUX)));
                                        /* Cet indicateur precise s'il y a ('VRAI') ou pas ('FAUX')                                  */
                                        /* echantillonnage ; il n'y a pas d'echantillonnage a                                        */
                                        /* chaque fois que :                                                                         */
                                        /*                                                                                           */
                                        /*                  pasX==PasX, et                                                           */
                                        /*                  pasY==PasY, et                                                           */
                                        /*                  translationX==TraX, et                                                   */
                                        /*                  translationY==TraY,                                                      */
                                        /*                                                                                           */
                                        /* ce qui correspond a l'etat initial, mais, on notera l'absence ici de 'pasZ'...            */
DEFV(Common,DEFV(Int,ZINT(pasX,PasX)));
                                        /* Pas d'echantillonnage horizontal,                                                         */
DEFV(Common,DEFV(Int,ZINT(pasY,PasY)));
                                        /* Pas d'echantillonnage vertical,                                                           */
DEFV(Common,DEFV(Int,ZINT(pasZ,PasZ)));
                                        /* Et enfin, pas d'echantillonnage suivant le troisieme axe, mais traite tout a fait a       */
                                        /* part, par rapport a 'pasX' et 'pasY'...                                                   */
DEFV(Common,DEFV(Int,ZINT(pasT,PasT)));
                                        /* Introduit le 20171219110444...                                                            */
DEFV(Common,DEFV(Int,INIT(POINTERi(ApasX),ADRESSE(pasX))));
DEFV(Common,DEFV(Int,INIT(POINTERi(ApasY),ADRESSE(pasY))));
DEFV(Common,DEFV(Int,INIT(POINTERi(ApasZ),ADRESSE(pasZ))));
DEFV(Common,DEFV(Int,INIT(POINTERi(ApasT),ADRESSE(pasT))));
                                        /* Ces trois relais sont destines a permettre un acces aux "vrais" (pasX,pasY,pasZ) meme     */
                                        /* lorsque ceux-ci sont "caches" par des variables locales de meme non (par exemple a        */
                                        /* l'interieur d'un couple ('begin_image','end_image')...                                    */
DEFV(Common,DEFV(Int,ZINT(translationX,TraX)));
                                        /* Translation horizontal du maillage de sous-echantillonnage,                               */
DEFV(Common,DEFV(Int,ZINT(translationY,TraY)));
                                        /* Translation vertical du maillage de sous-echantillonnage,                                 */
DEFV(Common,DEFV(Int,ZINT(translationZ,TraZ)));
                                        /* Translation de profondeur du maillage de sous-echantillonnage.                            */
DEFV(Common,DEFV(Int,ZINT(translationT,TraT)));
                                        /* Translation du temps du maillage de sous-echantillonnage.                                 */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R C O U R S   E N   S P I R A L E   D ' U N E   I M A G E  :                                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Int,ZINT(SPIRALE_DEFINITION_____facteur_delta_horizontal,FACTEUR_DE_SPIRALE_DELTA_HORIZONTAL)));
DEFV(Common,DEFV(Int,ZINT(SPIRALE_DEFINITION_____facteur_delta_vertical,FACTEUR_DE_SPIRALE_DELTA_VERTICAL)));
                                        /* Pour choisir la direction initiale d'une spirale.                                         */
                                        /*                                                                                           */
                                        /* ATTENTION, on notera les differents conseils suivants :                                   */
                                        /*                                                                                           */
                                        /* 1-pour un fonctionnement mathematiquement correct, il est imperatif que l'un de ces       */
                                        /* deux facteurs soit nul ; implicitement :                                                  */
                                        /*                                                                                           */
                                        /*                  SPIRALE_DEFINITION_____facteur_delta_horizontal = 1                      */
                                        /*                  SPIRALE_DEFINITION_____facteur_delta_vertical   = 0                      */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /* 2-lorsque l'un de ces deux facteurs est plus grand que 1, pour une utilisation dans       */
                                        /* l'une des fonctions 'Pconvolution(...)' et 'PFconvolution(...)', on aura interet a        */
                                        /* utiliser le cumul total des ponderations pour renormaliser (et non pas le cumul des       */
                                        /* ponderations utilisees). Il y a pour ce faire l'indicateur suivant :                      */
                                        /*                                                                                           */
                                        /*                  Pconvolution_____normaliser_uniquement_avec_les_ponderations_utilisees   */
                                        /*                                                                                           */
                                        /* qui controle ce choix (sachant qu'il est implicitement 'VRAI'). Dans le cas contraire,    */
                                        /* on risque de voir apparaitre des discontinuites dans l'image resultante ; en particulier  */
                                        /* cela peut etre vu avec l'image '$xiio/MIRE' convoluee avec '$xci/convol.01$X' avec, par   */
                                        /* exemple, les parametres suivants :                                                        */
                                        /*                                                                                           */
                                        /*                  points=81                                                                */
                                        /*                  spirale_horizontal=32                                                    */
                                        /*                  ponderations_utiles=VRAI                                                 */
                                        /*                                                                                           */
                                        /* ce qui donne une luminance non monotone de la gauche vers la droite...                    */
DEFV(Common,DEFV(Int,ZINT(SPIRALE_PARCOURS_____sinus_de_l_angle_de_la_rotation,UN)));
                                        /* Pour definir la rotation de parcours d'une spirale :                                      */
                                        /*                                                                                           */
                                        /*                  +1      : +pi/2                                                          */
                                        /*                  -1      : -pi/2                                                          */
                                        /*                                                                                           */
DEFV(Common,DEFV(Int,ZINT(SPIRALE_DEPLACEMENT_____amplitude_horizontale,UN)));
DEFV(Common,DEFV(Int,ZINT(SPIRALE_DEPLACEMENT_____amplitude_verticale__,UN)));
DEFV(Common,DEFV(Int,ZINT(SPIRALE_CIRCULAIRE_DEPLACEMENT_ET_PARCOURS_____amplitude_horizontale,UN)));
DEFV(Common,DEFV(Int,ZINT(SPIRALE_CIRCULAIRE_DEPLACEMENT_ET_PARCOURS_____amplitude_verticale__,UN)));
                                        /* Parametres introduits le 20151109145126 afin de simuler un pas de parcours des spirales   */
                                        /* dans 'SPIRALE_DEPLACEMENT(...)' et 'SPIRALE_CIRCULAIRE_DEPLACEMENT_ET_PARCOURS(...)'      */
                                        /* respectivement...                                                                         */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D E   F I L T R A G E   D E S   N I V E A U X  :                                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Un certain nombre de traitements                                                                               */
/*                  pourront affecter un niveau apres                                                                                */
/*                  son calcul :                                                                                                     */
/*                                                                                                                                   */
/*                  1 - le "masque",                                                                                                 */
/*                  2 - l'"ecrasement",                                                                                              */
/*                  3 - la "substitution",                                                                                           */
/*                  4 - le "calibrage",                                                                                              */
/*                  5 - une fonction variable "Vf".                                                                                  */
/*                                                                                                                                   */
/*                    Toutes ces operations pourront                                                                                 */
/*                  etre activees ou desactivees glo-                                                                                */
/*                  balement grace a l'indicateur                                                                                    */
/*                  introduit ici.                                                                                                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Utilisation :                                                                                                              */
/*                                                                                                                                   */
/*                                      PUSH_FILTRAGE;                                                                               */
/*                                      PULL_FILTRAGE;                                                                               */
/*                                                                                                                                   */
/*                  permettent de sauvegarder, puis                                                                                  */
/*                  de restaurer l'etat courant du                                                                                   */
/*                  filtrage des niveaux, et enfin,                                                                                  */
/*                                                                                                                                   */
/*                                      SET_FILTRAGE(ACTIF ou INACTIF);                                                              */
/*                                                                                                                                   */
/*                  puis :                                                                                                           */
/*                                                                                                                                   */
/*                                      PUSH_OPTIMISATION;                                                                           */
/*                                      PULL_OPTIMISATION;                                                                           */
/*                                                                                                                                   */
/*                  permettent de sauvegarder, puis                                                                                  */
/*                  de restaurer l'etat courant de                                                                                   */
/*                  l'optimisation portant sur l'uti-                                                                                */
/*                  lisation des substitutions seules,                                                                               */
/*                  et enfin :                                                                                                       */
/*                                                                                                                                   */
/*                                      SET_OPTIMISATION(VRAI ou FAUX);                                                              */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,ZINT(etat_Filtrage_niveaux,INACTIF)));
                                        /* L'indicateur 'etat_Filtrage_niveaux' controle globalement les transformations             */
                                        /* portant sur un niveau ; il prend deux valeurs 'ACTIF' et 'INACTIF' (cet                   */
                                        /* etat initial inhibe globalement l'ensemble des transformations).                          */
DEFV(Common,DEFV(Logical,ZINT(ne_faire_que_les_substitutions,FAUX)));
                                        /* L'indicateur 'ne_faire_que_les_substitutions' n'a de sens que si l'indicateur             */
                                        /* 'etat_Filtrage_niveaux' est 'ACTIF' ; il indique alors si le filtrage doit etre           */
                                        /* complet (il vaut alors 'FAUX') ou partiel, et ne porter alors que sur les                 */
                                        /* substitutions (il vaut alors 'VRAI'). L'etat implicite donne acces a l'ensemble           */
                                        /* des filtrages ; dans l'etat contraire, le fonctionnement est plus rapide...               */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D E   M A S Q U E  :                                                                                         */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Les acces aux images par les fonctions                                                                         */
/*                  du type "load" ('load_point()',...),                                                                             */
/*                  "store" ('store_point()',...) et de                                                                              */
/*                  "parcours" ('traite_image_...') sont                                                                             */
/*                  partiellement (point par point) inhibables                                                                       */
/*                  a l'aide de ce que l'on appelera un                                                                              */
/*                  "masque". Il s'agit d'une image parti-                                                                           */
/*                  culiere ; lorsque l'on accede a un                                                                               */
/*                  point {X,Y} d'une image quelconque,                                                                              */
/*                  on teste la valeur du point {X,Y} du                                                                             */
/*                  "masque", et suivant sa valeur et la                                                                             */
/*                  fonction demandee ("load", "store" ou                                                                            */
/*                  "acces"), l'acces a lieu ou pas...                                                                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Utilisation :                                                                                                              */
/*                                                                                                                                   */
/*                                      DEMASQUE_IMAGES;                                                                             */
/*                                      MASQUE_IMAGES(seuil);                                                                        */
/*                                      MASQUE_IMAGES_PORTEE(seuil,portee);                                                          */
/*                                                                                                                                   */
/*                  permettent de mettre hors fonction                                                                               */
/*                  ou bien d'activer le masquage avec                                                                               */
/*                  un certain seuil (les points {X,Y}                                                                               */
/*                  dont Masque(X,Y) associe est supe-                                                                               */
/*                  rieur ou egal a "seuil" ne sont pas                                                                              */
/*                  masques) et une certaine "portee"                                                                                */
/*                  (c'est-a-dire suivant la fonction                                                                                */
/*                  -"load", "store" ou "parcours"-                                                                                  */
/*                  demandee ; 'MASQUE_IMAGES a implicitement                                                                        */
/*                  une portee limitee a la fonction de                                                                              */
/*                  "parcours"), et enfin,                                                                                           */
/*                                                                                                                                   */
/*                                      PUSH_MASQUE;                                                                                 */
/*                                      PULL_MASQUE;                                                                                 */
/*                                                                                                                                   */
/*                  permettent de sauvegarder et de                                                                                  */
/*                  restaurer (respectivement) l'etat                                                                                */
/*                  du masque.                                                                                                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Statique,DEFV(image,Masque)));
                                        /* Le "masque" est une image "standard" comme une autre...                                   */
DEFV(Common,DEFV(Logical,ZINT(Masque_____etat,INACTIF)));
                                        /* L'indicateur 'Masque_____etat' controle l'activite du "masque" ; il peut                  */
                                        /* donc prendre deux valeurs 'ACTIF' et 'INACTIF'.                                           */
DEFV(Common,DEFV(genere_p,ZINT(Masque_____seuil,NOIR)));
DEFV(Common,DEFV(binaire,ZINT(Masque_____portee,MASQUER_PARCOURS)));
                                        /* Lorsque le "masque" est actif (Masque_____etat=ACTIF), l'acces au point {X,Y}             */
                                        /* n'a lieu que si : Masque(X,Y) >= seuil et si le masque de "portee" contient               */
                                        /* le bit (a 1) de la fonction demandee ("load", "store" ou "parcours").                     */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D E   M A R Q U E U R  :                                                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Pour certains algorithmes, tels le                                                                             */
/*                  remplissage de contour, il est neces-                                                                            */
/*                  saire de marquer les points par les-                                                                             */
/*                  quels on est passe. C'est le role                                                                                */
/*                  des donnees et definition qui suivent.                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Utilisation :                                                                                                              */
/*                                                                                                                                   */
/*                                      MARQUAGE_VALIDATION_ET_INITIALISATION;                                                       */
/*                                                                                                                                   */
/*                  permet de verifier que la liste de                                                                               */
/*                  substitution courante si elle est                                                                                */
/*                  active est compatible avec les                                                                                   */
/*                  niveaux de marquage.                                                                                             */
/*                                                                                                                                   */
/*                                      MARQUAGE_POINT(x,y);                                                                         */
/*                                                                                                                                   */
/*                  permet de memoriser le passage par                                                                               */
/*                  le point {x,y}.                                                                                                  */
/*                                                                                                                                   */
/*                                      TEST_POINT_MARQUE(x,y);                                                                      */
/*                                      TEST_POINT_NON_MARQUE(x,y);                                                                  */
/*                                                                                                                                   */
/*                  qui permettent de savoir si le point                                                                             */
/*                  {x,y} a deja ete atteint ou pas...                                                                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifndef   NE_PAS_GENERER_Marqueur       /* Common : la generation de 'Marqueur' est facultative...                                   */
DEFV(Common,DEFV(Statique,DEFV(image,Marqueur)));
                                        /* Le "marqueur" est une image "standard" comme une autre...                                 */
#Aifndef  NE_PAS_GENERER_Marqueur       /* Common : la generation de 'Marqueur' est facultative...                                   */
#Eifndef  NE_PAS_GENERER_Marqueur       /* Common : la generation de 'Marqueur' est facultative...                                   */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D E   Z - B U F F E R  :                                                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Une image de type 'imageF' va                                                                                  */
/*                  etre definie ici. Elle contiendra                                                                                */
/*                  lorsque cela sera necessaire la                                                                                  */
/*                  troisieme coordonnee ('Z') de                                                                                    */
/*                  chaque point {X,Y}. Ainsi, elle                                                                                  */
/*                  donnera a tout instant en chaque                                                                                 */
/*                  point {X,Y}, la profondeur du point                                                                              */
/*                  le plus proche de l'observateur                                                                                  */
/*                  marque. Un 'bypath' existe : s'il                                                                                */
/*                  vaut +INFINI, on trace toujours,                                                                                 */
/*                  alors que pour -INFINI, on fait le                                                                               */
/*                  test complet, et on ne trace que si                                                                              */
/*                  Z >= Z-Buffer...                                                                                                 */
/*                                                                                                                                   */
/*                    On notera que l'axe 'OZ' va                                                                                    */
/*                  d'arriere en avant.                                                                                              */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Nota :                                                                                                                     */
/*                                                                                                                                   */
/*                    Lorsque le 'Z-Buffer est inactif,                                                                              */
/*                  au lieu de le mettre a jour, on procede                                                                          */
/*                  au comptage des "pseudo-collisions",                                                                             */
/*                  c'est-a-dire des cas tels que :                                                                                  */
/*                                                                                                                                   */
/*                                      Z_Buffer(X,Y) + Zavant > Z > Z_Buffer(X,Y) - Zarriere                                        */
/*                                                                                                                                   */
/*                  ou P(X,Y,Z) est point a tester et a condition                                                                    */
/*                  que le point {X,Y} ne soit pas masque.                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifndef   NE_PAS_GENERER_Z_Buffer       /* Common : la generation de 'Z_Buffer' est facultative...                                   */
DEFV(Common,DEFV(Logical,ZINT(Z_Buffer_____actif,VRAI)));
                                        /* Cet indicateur indique si le 'Z-Buffer' est actif ('VRAI'), auquel cas on le met          */
                                        /* a jour lorsqu'il est accede, ou bien inactif ('FAUX'), auquel cas il n'est pas            */
                                        /* mis a jour, et seules sont comptees les pseudo-collisions, c'est-a-dire les cas           */
                                        /* tels que, soit P(X,Y,Z) le point a marquer : il y a pseudo-collision si :                 */
                                        /* Z_Buffer(X,Y) + Zavant > Z > Z_Buffer(X,Y) - Zarriere.                                    */
DEFV(Common,DEFV(Logical,ZINT(Z_Buffer_____mettre_a_jour,VRAI)));
                                        /* Lorsque le 'Z-Buffer' est actif (voir l'indicateur 'Z_Buffer_____actif' ci-dessus), cet   */
                                        /* indicateur precise si malgre tout le 'Z-Buffer' doit etre mis a jour ('VRAI'), ou bien    */
                                        /* laisse en l'etat ('FAUX'). Ceci peut etre utilise, par exemple, lorsque l'on manipule     */
                                        /* sequentiellement les trois composantes 'ROUGE', 'VERTE' et 'BLEUE' d'une image en vraies  */
                                        /* couleurs ; on fera :                                                                      */
                                        /*                                                                                           */
                                        /* NE_PAS_METTRE_A_JOUR_LE_Z_Buffer;                                                         */
                                        /*      TRAITER_LA_COMPOSANTE(ROUGE);                                                        */
                                        /*      TRAITER_LA_COMPOSANTE(VERTE);                                                        */
                                        /* METTRE_A_JOUR_LE_Z_Buffer;                                                                */
                                        /*      TRAITER_LA_COMPOSANTE(BLEUE);                                                        */
                                        /*                                                                                           */
                                        /* ainsi le 'Z-Buffer' ne sera mis a jour qu'une seule fois pour un meme point des trois     */
                                        /* composantes, et la coordonnee 'Z' testee le sera toujours par rapport a l'etat anterieur  */
                                        /* du 'Z-Buffer' (c'est-a-dire tel qu'il etait avant 'TRAITER_LA_COMPOSANTE(ROUGE)').        */
                                        /*                                                                                           */
                                        /* Mais ATTENTION : la procedure 'NE_PAS_METTRE_A_JOUR_LE_Z_Buffer' doit etre utilisee avec  */
                                        /* la plus grande precaution. En effet, s'il y a par exemple plusieurs objets 'ROUGE' qui se */
                                        /* cachent les uns les autres, le 'Z-Buffer' n'etant pas mis a jour pour le 'ROUGE', il n'y  */
                                        /* aura pas elimination des lignes cachees, et cette meme composante 'ROUGE' sera donc       */
                                        /* incorrecte, et incoherente vis a vis de la composante 'BLEUE'. Enfin, ce qui a ete dit    */
                                        /* pour le 'ROUGE' vaut aussi pour le 'VERTE'...                                             */
DEFV(Common,DEFV(Statique,DEFV(imageF,Z_Buffer)));
                                        /* Definition du 'Z-buffer'.                                                                 */
DEFV(Common,DEFV(Logical,INIT(Z_Buffer_____etat,INVALIDE)));
                                        /* Cet indicateur indique si le contenu du 'Z-Buffer' est significatif ('VALIDE')            */
                                        /* ou pas ('INVALIDE') ; il est positionne par 'IloadF_image'                                */
                                        /* et 'IFinitialisation'.                                                                    */
DEFV(Common,DEFV(genere_Float,ZINT(Z_Buffer_____minimum,F_INFINI)));
DEFV(Common,DEFV(genere_Float,ZINT(Z_Buffer_____maximum,F_MOINS_L_INFINI)));
                                        /* Definition du minimum et du maximum du 'Z-Buffer' au cours de son exploitation...         */
                                        /* On notera que ces ceux variables ont ete introduites parce que dans le cas du 'Z-Buffer'  */
                                        /* il est impossible d'utiliser la fonction 'IFnivo_extrema(...)' qui donnerait en ce qui    */
                                        /* concerne 'niveau_minimum' la valeur d'initialisation (ce qui serait de peu d'interet...). */

DEFV(Common,DEFV(Logical,INIT(Z_Buffer_____test_strict,FAUX)));
                                        /* Cet indicateur introduit le 20100223172401 permet de choisir entre 'IFGT(...)' ('VRAI')   */
                                        /* et 'IFGE(...)' ('FAUX'), ce dernier etant le test par defaut pour des raisons de          */
                                        /* compatibilite anterieure...                                                               */

DEFV(Common,DEFV(Statique,DEFV(imageF,Z_Buffer_accumule)));
                                        /* Definition du 'Z-buffer accumule'. Celui-ci a ete introduit le 20010722100154 ; il        */
                                        /* correspond au 'Z-buffer', mais a la difference de celui-ci, il n'est jamais reinitialise. */
                                        /* Cela permet donc une accumulation du 'Z-buffer' au cours de l'execution d'un progarmme,   */
                                        /* ce qui permet, par exemple, de generer une "geometrie tridimensionnelle" a l'aide d'une   */
                                        /* sorte de principe ergodique concernant les objets manipules ; un exemple de ceci peut     */
                                        /* etre vu dans 'v $xrk/rdn_walk.52$K Z_Buffer_accumule'.                                    */
DEFV(Common,DEFV(Logical,INIT(Z_Buffer_accumule_____etat,INVALIDE)));
                                        /* Cet indicateur indique si le contenu du 'Z-Bufferaccumule ' est significatif ('VALIDE')   */
                                        /* ou pas ('INVALIDE') ; il est positionne par 'IFinitialisation'.                           */
DEFV(Common,DEFV(genere_Float,ZINT(Z_Buffer_accumule_____minimum,F_INFINI)));
DEFV(Common,DEFV(genere_Float,ZINT(Z_Buffer_accumule_____maximum,F_MOINS_L_INFINI)));
                                        /* Definition du minimum et du maximum du 'Z-Buffer accumule' au cours de son exploitation.  */
                                        /* On notera que ces ceux variables ont ete introduites parce que dans le cas du 'Z-Buffer'  */
                                        /* il est impossible d'utiliser la fonction 'IFnivo_extrema(...)' qui donnerait en ce qui    */
                                        /* concerne 'niveau_minimum' la valeur d'initialisation (ce qui serait de peu d'interet...). */

DEFV(Common,DEFV(Float,ZINT(Z_Buffer_____bypath,F_MOINS_L_INFINI)));
                                        /* 'bypath' du 'Z-Buffer' initialise de facon a l'invalider, et donc a faire le              */
                                        /* test complet...                                                                           */
DEFV(Common,DEFV(Float,ZINT(Z_Buffer_____avant,FLOT(MOIT(KK___dimZ)))));
                                        /* Borne relative  "avant" de detection des pseudo-collisions.                               */
DEFV(Common,DEFV(Float,ZINT(Z_Buffer_____arriere,FLOT(MOIT(KK___dimZ)))));
                                        /* Borne relative  "arriere" de detection des pseudo-collisions.                             */
DEFV(Common,DEFV(Positive,INIT(Z_Buffer_____compteur_des_pseudo_collisions,ZERO)));
                                        /* Compteur des pseudo-collisions dans le Z_Buffer ; ces trois variables n'ont de sens       */
                                        /* que lorsque le 'Z-Buffer' n'est pas actif...                                              */
#Aifndef  NE_PAS_GENERER_Z_Buffer       /* Common : la generation de 'Z_Buffer' est facultative...                                   */
#Eifndef  NE_PAS_GENERER_Z_Buffer       /* Common : la generation de 'Z_Buffer' est facultative...                                   */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        " A R R O N D I "   D ' U N   N I V E A U   F L O T T A N T  :                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Float,ZINT(GENP_____epsilon_des_fonctions_de_ce_type,nEPSILON_GENP)));
                                        /* Petite quantite utilisee dans les fonctions de type 'GENP(...)'.                          */
DEFV(Common,DEFV(Float,ZINT(epsilon_de_LISSAGE_LISTE_DE_SUBSTITUTION,nEPSILON_GENP)));
                                        /* Petite quantite utilisee dans 'v $xiii/Images$DEF LISSAGE_LISTE_DE_SUBSTITUTION' et       */
                                        /* introduit le 20040910140509. Une  valeur nulle  permet d'assurer la compatibilite         */
                                        /* anterieure ('v $xigP/.INTERPOLE$Y EpsilonLissage').                                       */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D E   C A L I B R A G E  :                                                                                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Lors des rangements des points dans                                                                            */
/*                  les matrices "images", leurs niveaux,                                                                            */
/*                  suivant la valeur des indicateurs qui                                                                            */
/*                  suivront, sont calibres. Trois calibra-                                                                          */
/*                  ges sont prevus :                                                                                                */
/*                                                                                                                                   */
/*                  1 - "modulo" : le niveau est ramene                                                                              */
/*                  dans le segment [noir,blanc],                                                                                    */
/*                                                                                                                                   */
/*                  2 - "seuillage bas" : tous les niveaux                                                                           */
/*                  inferieurs au "noir" sont mis a "noir",                                                                          */
/*                                                                                                                                   */
/*                  3 - "seuillage haut" : tous les niveaux                                                                          */
/*                  superieurs au "blanc" sont mis a "blanc".                                                                        */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Utilisation :                                                                                                              */
/*                                                                                                                                   */
/*                                      SEUILLAGE_BAS_INACTIF;                                                                       */
/*                                      SEUILLAGE_BAS_ACTIF(GENP(seuil));                                                            */
/*                                      SEUILLAGE_HAUT_INACTIF;                                                                      */
/*                                      SEUILLAGE_HAUT_ACTIF(GENP(seuil));                                                           */
/*                                      SEUILLAGE_MODULO_INACTIF;                                                                    */
/*                                      SEUILLAGE_MODULO_ACTIF(GENP(origine),GENP(extremite));                                       */
/*                                                                                                                                   */
/*                  permettent d'inactiver ou d'activer                                                                              */
/*                  respectivement les trois seuillages                                                                              */
/*                  disponibles.                                                                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,ZINT(etat_Cmodulo,INACTIF)));
                                        /* Cet indicateur controle le fonctionement du calibrage "modulo".                           */
DEFV(Common,DEFV(genere_p,ZINT(seuil_Corigine,NOIR)));
                                        /* Valeur du niveau origine du "modulo".                                                     */
DEFV(Common,DEFV(genere_p,ZINT(seuil_Cextremite,BLANC)));
                                        /* Valeur du niveau extremite du "modulo".                                                   */
DEFV(Common,DEFV(Logical,ZINT(etat_Cbas,INACTIF)));
                                        /* Cet indicateur controle le fonctionnement du calibrage "seuil bas".                       */
DEFV(Common,DEFV(genere_p,ZINT(seuil_Cbas,NOIR)));
                                        /* Valeur du niveau de "seuillage bas".                                                      */
DEFV(Common,DEFV(Logical,ZINT(etat_Chaut,INACTIF)));
                                        /* Cet indicateur controle le fonctionnement du calibrage "seuil haut".                      */
DEFV(Common,DEFV(genere_p,ZINT(seuil_Chaut,BLANC)));
                                        /* Valeur du niveau de "seuillage haut".                                                     */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D E   P L A N C H E R  :                                                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Nous allons definir la notion de                                                                               */
/*                  "plancher" ; en effet, lorsque l'on                                                                              */
/*                  marque un point dans une image a fond                                                                            */
/*                  NOIR, si ce point est lui-meme NOIR, il                                                                          */
/*                  n'apparaitra pas. D'ou ici cette definition                                                                      */
/*                  d'un NOIR_PLANCHER utilise pour le marquage                                                                      */
/*                  des points. Celui-ci est variable, et fonction                                                                   */
/*                  des listes de  SUBSTITUTION utilisees...                                                                         */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Utilisation :                                                                                                              */
/*                                                                                                                                   */
/*                                      SET_NOIR_PLANCHER(niveau);                                                                   */
/*                                                                                                                                   */
/*                  permettent de positionner le NOIR_PLANCHER                                                                       */
/*                  courant...                                                                                                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(genere_p,ZINT(noir_plancher_substitution,NOIR_PLANCHER)));
                                        /* Valeur du niveau a ne pas franchir bien souvent ; on notera qu'un '#define' en            */
                                        /* majuscule 'NOIR_PLANCHER_SUBSTITUTION' a ete defini afin de ne pas avoir a modifier       */
                                        /* les fichiers le referencant...                                                            */
DEFV(Common,DEFV(genere_p,ZINT(noir_plancher_des_vecteurs,NOIR_PLANCHER)));
                                        /* Niveau minimal (excepte le vrai 'NOIR') utilise lors du marquage des points d'un          */
                                        /* vecteur ; cette variable est introduite pour permettre une generation correcte des        */
                                        /* mires de barres. On notera que 'noir_plancher_des_vecteurs' se situe dans le fichier      */
                                        /* '$xiii/Images$STR' et non pas dans '$xiii/vecteurs$FON' car en effet elle est referencee  */
                                        /* d'une part par 'SET_FILTRAGE(INACTIF)' et d'autre part par la fonction "incontournable"   */
                                        /* 'Nsubstitution(...)' via la procedure 'CAS_ACCES_LISTE_DE_SUBSTITUTION(...)' ; ainsi      */
                                        /* cette variable est positionnee meme si les fonctions vectorielles ne sont par utilisees.  */
DEFV(Common,DEFV(Int,ZINT(pas_entre_CLIPPING_INTENSITE_et_MIN_INTENSITE,PAS_COULEURS)));
                                        /* Pas entre 'CLIPPING_INTENSITE' et 'MIN_INTENSITE'. Ce parametre a ete introduit le        */
                                        /* 19961007164935 afin de permettre de forcer completement a 'NOIR' les points d'une         */
                                        /* montagne correspondant a des points 'NOIR's de sa texture ('v $xiii/montagnes$FON').      */
                                        /* On notera que cette definition est situee dans ce fichier parce qu'elle est utile aux     */
                                        /* differents modules separes de '$xiii/montagnes$FON'...                                    */

DEFV(Common,DEFV(Float,ZINT(minimum_normalise_du_cosinus_d_une_normale,COORDONNEE_BARYCENTRIQUE_MINIMALE)));
DEFV(Common,DEFV(Float,ZINT(maximum_normalise_du_cosinus_d_une_normale,COORDONNEE_BARYCENTRIQUE_MAXIMALE)));
                                        /* Definit le segment (a priori [0,1]) dans lequel un cosinus de normale est renormalise.    */
                                        /* On notera que ces definitions sont situees dans ce fichier parce qu'elles sont utiles aux */
                                        /* differents modules separes de '$xiii/montagnes$FON'...                                    */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D E   S U B S T I T U T I O N  :                                                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Nous allons definir la notion de                                                                               */
/*                  substitution ; lorsqu'un niveau a ete                                                                            */
/*                  fixe pour un point d'une image, et ce                                                                            */
/*                  apres les fonctions 'Vf' et le "cali-                                                                            */
/*                  brage", il passe par une phase de                                                                                */
/*                  substitution, ou ce niveau calcule                                                                               */
/*                  est un indice dans un vecteur qui donne                                                                          */
/*                  le niveau a attribuer au point.                                                                                  */
/*                    Ce vecteur, est lui-meme range dans                                                                            */
/*                  une matrice, ce qui permet d'avoir                                                                               */
/*                  plusieurs listes de substitution                                                                                 */
/*                  accessibles simultanement. Enfin, une                                                                            */
/*                  matrice "inverse" est utilisee lors                                                                              */
/*                  des 'loadS_point's.                                                                                              */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Utilisation :                                                                                                              */
/*                                                                                                                                   */
/*                                      PUSH_SUBSTITUTION;                                                                           */
/*                                      PULL_SUBSTITUTION;                                                                           */
/*                                                                                                                                   */
/*                  permettent de sauvegarder, puis                                                                                  */
/*                  de restaurer la substitution                                                                                     */
/*                  courante, et enfin,                                                                                              */
/*                                                                                                                                   */
/*                                      SUBSTITUTION(L_SUBSTITUTION_XX);                                                             */
/*                                                                                                                                   */
/*                  permet de choisir la substitu-                                                                                   */
/*                  tion courante parmi la liste                                                                                     */
/*                  suivante :                                                                                                       */
/*                                                                                                                                   */
/*                                      L_SUBSTITUTION_NEUTRE,                                                                       */
/*                                      L_SUBSTITUTION_01,                                                                           */
/*                                      L_SUBSTITUTION_02,                                                                           */
/*                                      L_SUBSTITUTION_11,                                                                           */
/*                                      L_SUBSTITUTION_12,                                                                           */
/*                                      L_SUBSTITUTION_13,                                                                           */
/*                                      L_SUBSTITUTION_14,                                                                           */
/*                                      L_SUBSTITUTION_21,                                                                           */
/*                                      L_SUBSTITUTION_22,                                                                           */
/*                                      L_SUBSTITUTION_23,                                                                           */
/*                                      L_SUBSTITUTION_24,                                                                           */
/*                                      L_SUBSTITUTION_25,                                                                           */
/*                                      L_SUBSTITUTION_26,                                                                           */
/*                                      L_SUBSTITUTION_27,                                                                           */
/*                                      L_SUBSTITUTION_28,                                                                           */
/*                                      L_SUBSTITUTION_31,                                                                           */
/*                                      L_SUBSTITUTION_32,                                                                           */
/*                                      L_SUBSTITUTION_33,                                                                           */
/*                                      L_SUBSTITUTION_34,                                                                           */
/*                                      L_SUBSTITUTION_35,                                                                           */
/*                                      L_SUBSTITUTION_36,                                                                           */
/*                                      L_SUBSTITUTION_37,                                                                           */
/*                                      L_SUBSTITUTION_38,                                                                           */
/*                                      L_SUBSTITUTION_39,                                                                           */
/*                                      L_SUBSTITUTION_3A,                                                                           */
/*                                      L_SUBSTITUTION_3B,                                                                           */
/*                                      L_SUBSTITUTION_3C,                                                                           */
/*                                      L_SUBSTITUTION_3D,                                                                           */
/*                                      L_SUBSTITUTION_3E,                                                                           */
/*                                      L_SUBSTITUTION_3F,                                                                           */
/*                                      L_SUBSTITUTION_3G,                                                                           */
/*                                      L_SUBSTITUTION_FF,                                                                           */
/*                                      L_SUBSTITUTION_FE,                                                                           */
/*                                      L_SUBSTITUTION_FC,                                                                           */
/*                                      L_SUBSTITUTION_F8,                                                                           */
/*                                      L_SUBSTITUTION_F0,                                                                           */
/*                                      L_SUBSTITUTION_E0,                                                                           */
/*                                      L_SUBSTITUTION_C0,                                                                           */
/*                                      L_SUBSTITUTION_80,                                                                           */
/*                                      L_SUBSTITUTION_ROUGE,                                                                        */
/*                                      L_SUBSTITUTION_VERTE,                                                                        */
/*                                      L_SUBSTITUTION_BLEUE,                                                                        */
/*                                      L_SUBSTITUTION_VARIABLE,                                                                     */
/*                                      L_SUBSTITUTION_HISTOGRAMME,                                                                  */
/*                                      L_SUBSTITUTION_SOLAR,                                                                        */
/*                                      L_SUBSTITUTION_X_WINDOW.                                                                     */
/*                                                                                                                                   */
/*                  et,                                                                                                              */
/*                                                                                                                                   */
/*                            MODIFICATION_LISTE_DE_COLORIAGE_X_WINDOW(niveau,niveau_substitue);                                     */
/*                            MODIFICATION_LISTE_DE_SUBSTITUTION(niveau,niveau_substitue);                                           */
/*                            MODIFICATION_LISTE_DE_COLORIAGE(niveau,niveau_substitue_R,niveau_substitue_V,niveau_substitue_B);      */
/*                                                                                                                                   */
/*                  permettent de modifier la liste                                                                                  */
/*                  "VARIABLE" element par element,                                                                                  */
/*                  ainsi que la liste dite de                                                                                       */
/*                  "COLORIAGE" ou triplet (ROUGE,VERTE,BLEUE)                                                                       */
/*                  qui fait office de "look-up tables"..                                                                            */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,INIT(init_substitution,FAUX)));
                                        /* Cet indicateur est rendu necessaire, par le fait que la matrice des                       */
                                        /* substitution ne peut etre initialisee a la compilation... Tant qu'il                      */
                                        /* est a l'etat 'FAUX', cela signifie que les listes de substitution                         */
                                        /* n'ont pas ete initialisees.                                                               */

DEFV(Common,DEFV(Int,ZINT(num_liste_de_substitution,L_SUBSTITUTION_NEUTRE)));
                                        /* Cette variable donne le numero de la liste de substitution courante ; en                  */
                                        /* standard, on utilise la liste qui ne fait rien...                                         */
DEFV(Common,DEFV(Int,ZINT(num_liste_de_substitution_ROUGE,L_SUBSTITUTION_ROUGE_BASIC)));
DEFV(Common,DEFV(Int,ZINT(num_liste_de_substitution_VERTE,L_SUBSTITUTION_VERTE_BASIC)));
DEFV(Common,DEFV(Int,ZINT(num_liste_de_substitution_BLEUE,L_SUBSTITUTION_BLEUE_BASIC)));
                                        /* Ces trois variables permettent de definir une permutation (et meme quelque chose de       */
                                        /* beucoup plus general) des trois listes de COLORIAGE.                                      */

DEFV(Common,DEFV(Logical,DTb1(liste_d_autorisation_de_substitution_des_niveaux,COULEURS)));
                                        /* Ce vecteur permet d'autoriser la substitution ('AUTORISE') d'un niveau quelconque, ou     */
                                        /* de l'interdire ('INTERDIT'), meme quand le mecanisme de substitution est actif.           */
DEFV(Common,DEFV(genere_p,DTb2(listes_de_substitution,NOMBRE_DE_SUBSTITUTIONS,COULEURS)));
                                        /* Matrice des substitutions :                                                               */
                                        /* le premier indice donne le numero de la liste de substitutions,                           */
                                        /* le second indice donne le niveau a substituer.                                            */
DEFV(Common,DEFV(genere_p,DTb2(listes_inverses_de_substitution,NOMBRE_DE_SUBSTITUTIONS,COULEURS)));
                                        /* Matrice "inverse" des substitutions :                                                     */
                                        /* elle donne l'inverse de la matrice de substitution, et est donc                           */
                                        /* utilise lors des 'load_point'.                                                            */
DEFV(Common,DEFV(Logical,DTb2(blocage_des_listes_de_substitution,NOMBRE_DE_SUBSTITUTIONS,COULEURS)));
                                        /* Matrice des blocage des listes de substitutions ; elle est "parallele" a la               */
                                        /* matrice des substitutions, et chaque entree peut prendre les deux valeurs                 */
                                        /* 'AUTORISE' (etat initial) et 'INTERDIT' qui indique si l'on peut ou pas                   */
                                        /* modifier l'entree correspondante...                                                       */

DEFV(Common,DEFV(Int,ZINT(pas_COULEURS,PAS_COULEURS)));
                                        /* Pas de parcours des listes de substitution ; mais attention, contrairement au sous-       */
                                        /* echantillonnage spatial (pasX,pasY), 'pas_COULEURS' n'est pas utilises systematiquement,  */
                                        /* et d'ailleurs plutot exceptionnellement...                                                */

DEFV(Common,DEFV(Logical,ZINT(interpoler_les_listes_de_substitution_entre_D2_et_A3,VRAI)));
                                        /* Cet indicateur a ete introduit le 19970929115853 a cause de problemes rencontres dans     */
                                        /* 'v $xigP/.INTERPOLE$Y Fderivee'. En effet, etant donnee la methode calcul des derivees    */
                                        /* au points de depart 'D' et d'arrivee 'A' par difference de valeurs en 2 points, ces       */
                                        /* derivees sont tres frequemment nulles (par exemple, 'v $xigP/abso.45$Z') car les valeurs  */
                                        /* en ces points (appeles {1,2} et {3,4} respectivement sans '$xigP/.INTERPOLE$Y') sont la   */
                                        /* plupart du temps egales. Le facteur multiplicatifs des derivees 'facteur_des_derivees'    */
                                        /* utilise dans 'LISSAGE_LISTE_DE_SUBSTITUTION(...)' est donc alors d'aucune utilite,        */
                                        /* puisque quelle que soit sa valeur s'il multiplie une valeur nulle, elle le reste. La      */
                                        /* solution est donc la suivante : en plus d'interpoler entre 'D2' et 'A3' (etat par defaut) */
                                        /* la possibilite de le faire entre 'D1' et 'A4' est offerte le 19970929115853. Ainsi, on    */
                                        /* garde le principe anterieur, mais dorenavant, il est possible de faire que les niveaux    */
                                        /* 'D2' et 'A3' ne soient utilises que pour le calcul des derivees sans figurer ensuite dans */
                                        /* la liste de 'SUBSTITUTION' que l'on est en train d'interpoler puisque cette operation     */
                                        /* aura lieu entre 'D1' et 'A4', et que 'D2' et 'A3' sont inclus dans [D1,A4]. En resume,    */
                                        /* il y a donc deux modes d'interpolation disponibles :                                      */
                                        /*                                                                                           */
                                        /*        D2 --> A3         : les niveaux definis en {D1,D2,A3,A4} figurent tel quel dans    */
                                        /*                            la palette.                                                    */
                                        /*                                                                                           */
                                        /*        D1 --> A4         : seuls les niveaux definis en {D1,A4} figurent tel quel dans    */
                                        /*                            la palette alors que ceux qui sont definis en {D2,A3} ne       */
                                        /*                            servent qu'a definir les derivees en {D1,D2} et {A3,A4}        */
                                        /*                            respectivement ; les niveaux figurant en {D2,A3} a la fin      */
                                        /*                            du processus resultant de l'interpolation.                     */
                                        /*                                                                                           */
                                        /* Enfin, pour des raisons de compatibilite anterieure, le mode 'D2 --> A3' est le mode      */
                                        /* par defaut...                                                                             */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D ' E C R A S E M E N T  :                                                                                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Avant les operations 'Vf',                                                                                     */
/*                  "calibrage" et "substitution"                                                                                    */
/*                  d'un point de coordonnees {X,Y},                                                                                 */
/*                  on regarde le niveau anterieur ;                                                                                 */
/*                  ce niveau anterieur est un index                                                                                 */
/*                  dans un vecteur d'autorisation                                                                                   */
/*                  indiquant si l'on a le droit                                                                                     */
/*                  de l'ecraser ou pas...                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Utilisation :                                                                                                              */
/*                                                                                                                                   */
/*                                      ECRASEMENT_AUTORISE(niveau);                                                                 */
/*                                      ECRASEMENT_INTERDIT(niveau);                                                                 */
/*                                                                                                                                   */
/*                  qui permettent d'autoriser et                                                                                    */
/*                  d'interdire individuellement                                                                                     */
/*                  chaque niveau, et                                                                                                */
/*                                                                                                                                   */
/*                                      TOUS_ECRASEMENTS_AUTORISES;                                                                  */
/*                                                                                                                                   */
/*                  qui (re-)autorise l'ecrasement                                                                                   */
/*                  de tous les niveaux.                                                                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,DTb1(liste_d_ecrasement,COULEURS)));
                                        /* Vecteur des ecrasements : donne par niveau l'etat d'iterdiction                           */
                                        /* ou d'autorisation de son ecrasement lors d'un 'store_point'.                              */
DEFV(Common,DEFV(Logical,INIT(init_ecrasement,FAUX)));
                                        /* Cet indicateur est rendu necessaire, par le fait que le vecteur des                       */
                                        /* ecrasements ne peut etre initialisee a la compilation... Tant qu'il                       */
                                        /* est a l'etat 'FAUX', cela signifie que la liste des ecrasements                           */
                                        /* n'ont pas ete initialisees.                                                               */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        L I S S A G E   P A R   A P P R O X I M A T I O N   P A R A B O L I Q U E  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Float,INIT(LISSAGE_PAR_APPROXIMATION_PARABOLIQUE_____coefficient_de__n_m2
                           ,COEFFICIENT_DE_LISSAGE_PAR_APPROXIMATION_PARABOLIQUE_DE_n_m2
                            )
                 )
     );
DEFV(Common,DEFV(Float,INIT(LISSAGE_PAR_APPROXIMATION_PARABOLIQUE_____coefficient_de__n_m1
                           ,COEFFICIENT_DE_LISSAGE_PAR_APPROXIMATION_PARABOLIQUE_DE_n_m1
                            )
                 )
     );
DEFV(Common,DEFV(Float,INIT(LISSAGE_PAR_APPROXIMATION_PARABOLIQUE_____coefficient_de__n_0
                           ,COEFFICIENT_DE_LISSAGE_PAR_APPROXIMATION_PARABOLIQUE_DE_n_0
                            )
                 )
     );
DEFV(Common,DEFV(Float,INIT(LISSAGE_PAR_APPROXIMATION_PARABOLIQUE_____coefficient_de__n_p1
                           ,COEFFICIENT_DE_LISSAGE_PAR_APPROXIMATION_PARABOLIQUE_DE_n_p1
                            )
                 )
     );
DEFV(Common,DEFV(Float,INIT(LISSAGE_PAR_APPROXIMATION_PARABOLIQUE_____coefficient_de__n_p2
                           ,COEFFICIENT_DE_LISSAGE_PAR_APPROXIMATION_PARABOLIQUE_DE_n_p2
                            )
                 )
     );
                                        /* Introduit le 20160603151935 sous cette forme pour plus de generalite...                   */
                                        /*                                                                                           */
                                        /* Aux environs du 20160604093357, ils ont ete introduits dans des 'GET_ARGUMENT_F(...)'     */
                                        /* dans tous les programmes '$K' ou cela etait utile et facile. Cela a donc concerne :       */
                                        /*                                                                                           */
                                        /*                  $xci/fract_2D.01$K            IFfractal_2D_precises(...)                 */
                                        /*                  $xci/fract_3D.01$K            IFfractal_3D_precises(...)                 */
                                        /*                  $xci/lissage$K                IFlissage_parabolique(...)                 */
                                        /*                  $xci/substitue$K              IFmove_avec_substitution(...)              */
                                        /*                                                                                           */
                                        /* Ce sont en fait les seuls '$K' ou 'LISSAGE_PAR_APPROXIMATION_PARABOLIQUE(...)' etait      */
                                        /* deja reellement utilisABLE via les fonctions et les procedures suivantes :                */
                                        /*                                                                                           */
                                        /*   IFlissage_parabolique(...)    LISSAGE_PAR_APPROXIMATION_PARABOLIQUE                     */
                                        /*   IFmove_avec_substitution(...) CONVERSION_FLOTTANTE_D_UNE_LISTE_DE_SUBSTITUTION          */
                                        /*   IFfractal_2D_precises(...)    PREPARATION_DE_L_UTILISATION_D_UNE_LISTE_DE_SUBSTITUTION  */
                                        /*   IFfractal_3D_precises(...)    PREPARATION_DE_L_UTILISATION_D_UNE_LISTE_DE_SUBSTITUTION  */
                                        /*                                                                                           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O N V E R S I O N   " F L O T T A N T E "   D E   L A   L I S T E   D E   S U B S T I T U T I O N                        */
/*        C O U R A N T E   " S T A N D A R D "  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,INIT(CONVERSION_FLOTTANTE_D_UNE_LISTE_DE_SUBSTITUTION_____renormaliser,VRAI)));
                                        /* Cet indicateur controle dans 'CONVERSION_FLOTTANTE_D_UNE_LISTE_DE_SUBSTITUTION(...)'      */
                                        /* la renormalisation des listes de substitution flottantes. Ceci a ete introduit le         */
                                        /* 20130114163336 pour 'v $xci/substitue$K _____renormaliser' principalement. La valeur      */
                                        /* par defaut garantit la compatibilite anterieure...                                        */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D E   T A B L E   D E   M U L T I P L I C A T I O N   G E N E R A L I S E E  :                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Nous allons definir la notion de                                                                               */
/*                  produit generalise ; il s'agit la                                                                                */
/*                  d'une operation binaire en general                                                                               */
/*                  non commutative. On se donne deux                                                                                */
/*                  images 'A1' et 'A2', et une matrice                                                                              */
/*                  [COULEURS][COULEURS] qui donne pour                                                                              */
/*                  chaque couple de niveaux (n(A1),n(A2))                                                                           */
/*                  le niveau n(R) de l'image resultante.                                                                            */
/*                                                                                                                                   */
/*                    On peut considerer cela comme une                                                                              */
/*                  extension bi-dimensionnelle des                                                                                  */
/*                  listes de substitution.                                                                                          */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Utilisation :                                                                                                              */
/*                                                                                                                                   */
/*                            INITIALISATION_QUELCONQUE_TABLE_DE_MULTIPLICATION(table_de_multiplication,DEFINITION_DU_PRODUIT);      */
/*                                                                                                                                   */
/*                  permet d'initialiser une table de multiplication                                                                 */
/*                  de facon tout a fait arbitraire, et :                                                                            */
/*                                                                                                                                   */
/*                            INITIALISATION_TABLE_DE_MULTIPLICATION(table_de_multiplication,DEFINITION_DU_PRODUIT);                 */
/*                                                                                                                                   */
/*                  permet d'initialiser une table de multiplication                                                                 */
/*                  a l'aide d'une certaine definition, et par                                                                       */
/*                  exemple : 'PRODUIT_OU_FLOU',...                                                                                  */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,INIT(initialisation_table_de_multiplication_standard,INVALIDE)));
                                        /* Indique si le contenu de la table de multiplication standard est                          */
                                        /* 'VALIDE' ou encore 'INVALIDE'...                                                          */
DEFV(Common,DEFV(table_de_multiplication_generalisee,table_de_multiplication_standard));
                                        /* Definition d'une table de multiplication standard. ATTENTION : a cause                    */
                                        /* de 'Common', toutes les informations precedentes doivent etre sur la                      */
                                        /* meme ligne...                                                                             */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D ' A U T O M A T E S   C E L L U L A I R E S   M O N O D I M E N S I O N N E L S  :                         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,INIT(initialisation_automate_cellulaire_standard,INVALIDE)));
                                        /* Indique si le contenu de l'automate cellulaire standard est                               */
                                        /* 'VALIDE' ou encore 'INVALIDE'...                                                          */
DEFV(Common,DEFV(automate_cellulaire_monodimensionnel,automate_cellulaire_standard));
                                        /* Definition de l'automate cellulaire standard. ATTENTION : a cause                         */
                                        /* de 'Common', toutes les informations precedentes doivent etre sur la                      */
                                        /* meme ligne...                                                                             */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D E   S T A T I S T I Q U E S  :                                                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Un certain nombre de donnees                                                                                   */
/*                  statistiques relatives a une                                                                                     */
/*                  image seront disponibles ici, et                                                                                 */
/*                  calculees par la fonction generale                                                                               */
/*                  'Ihistogramme'.                                                                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,INIT(Ihistogramme_____etat,INVALIDE)));
                                        /* Indicateur logique rendu necessaire par le fait qu'on ne peut initialiser                 */
                                        /* l'histogramme a la compilation ; il prend donc soit l'etat 'VALIDE',                      */
                                        /* soit l'etat 'INVALIDE'.                                                                   */
DEFV(Common,DEFV(Int,DTb1(histogramme,COULEURS)));
                                        /* L'histogramme est un vecteur comportant autant d'entrees qu'il y a de                     */
                                        /* niveaux possibles ; dans chacune de celles-ci, on trouvera le nombre de                   */
                                        /* points possedant ce niveau dans une image donnee.                                         */
DEFV(Common,DEFV(Int,DTb1(histogramme_cumule,COULEURS)));
                                        /* L'histogramme cumule donne pour chaque niveau la somme de tous les niveaux anterieurs     */
                                        /* y compris ce niveau courant.                                                              */
DEFV(Common,DEFV(Int,DTb1(classement_des_niveaux,COULEURS)));
                                        /* Cette liste donne du 'V_BLANC' au 'V_NOIR' l'ordre des niveaux, du plus rempli            */
                                        /* (dit 'V_BLANC') au moins rempli (dit 'V_NOIR') ; de plus, cette liste est                 */
                                        /* generee par des 'Int' et non des 'genere_p' afin d'eviter des problemes                   */
                                        /* de tests numeriques sur ces valeurs...                                                    */
DEFV(Common,DEFV(Int,INIT(Ihistogramme______nombre_de_points_minimal,UNDEF)));
                                        /* Donne le plus petit nombre de points possedant un meme niveau ; on                        */
                                        /* notera qu'il s'agit d'un "Int" et non pas d'un "Positive", a cause                        */
                                        /* d'eventuelles initialisations sur 'MOINS_L_INFINI'.                                       */
DEFV(Common,DEFV(Int,INIT(Ihistogramme______nombre_de_points_maximal,UNDEF)));
                                        /* Donne le plus grand nombre de points possedant un meme niveau ; on                        */
                                        /* notera qu'il s'agit d'un "Int" et non pas d'un "Positive", a cause                        */
                                        /* d'eventuelles initialisations sur 'MOINS_L_INFINI'.                                       */
DEFV(Common,DEFV(Positive,INIT(Ihistogramme______nombre_de_points,UNDEF)));
                                        /* Cette variable donne le nombre de points utilises par la fonction                         */
                                        /* 'Ihistogramme' ; elle est rendue necessaire par la notion de "masque".                    */
DEFV(Common,DEFV(genere_p,INIT(Ihistogramme______niveau_minimal,NIVEAU_UNDEF)));
                                        /* Cette variable donne le niveau minimal rencontre dans une image.                          */
DEFV(Common,DEFV(genere_p,INIT(Ihistogramme______niveau_maximal,NIVEAU_UNDEF)));
                                        /* Cette variable donne le niveau maximal rencontre dans une image.                          */
DEFV(Common,DEFV(genere_p,INIT(Ihistogramme______niveau_moyen,NIVEAU_UNDEF)));
                                        /* Cette variable donne le niveau moyen rencontre dans une image.                            */

DEFV(Common,DEFV(Positive,ZINT(Ihistogramme______hauteur_de_la_mire_de_barres_situee_a_la_base_de_l_histogramme,ZERO)));
                                        /* Cette variable donne la hauteur de la mire de barres apparaissant systematiquement a la   */
                                        /* base des histogrammes (introduit le 20081006113508).                                      */
                                        /*                                                                                           */
                                        /* Le 20081006152340, la valeur par defaut est passee de 'MIRE_Y_MINIMAL' a 'ZERO', cette    */
                                        /* derniere valeur etant plus logique puisque ne generant pas de barre lorsqu'un element de  */
                                        /* l'histogramme est nul...                                                                  */

DEFV(Common,DEFV(Logical,ZINT(Ihistogramme______renormaliser_la_hauteur_de_la_mire_de_barres_par_rapport_au_maximum,VRAI)));
DEFV(Common,DEFV(Float,ZINT(Ihistogramme______facteur_de_renormalisation_hauteur_mire_de_barres_par_rapport_au_maximum
                           ,FRA10(FRA10(FU))
                            )
                 )
     );
                                        /* Introduit le 20151124134322 afin de permettre d'avoir, si besoin est, des mires de        */
                                        /* barres comparables entre-elles pour differentes images. La valeur par defaut garantit     */
                                        /* la compatibilite anterieure...                                                            */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D O N N E E S   D E   P R O J E C T I O N   D U   3 - E S P A C E   V E R S   L E   2 - E S P A C E  :                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Float,ZINT(projecteur_OX,PROJECTEUR_OX)));
                                        /* Facteur de projection de l'axe des 'Z' sur l'axe des 'X', suivant la formule :            */
                                        /*                                                                                           */
                                        /* X        = X - (3/4).Z                                                                    */
                                        /*  projete                                                                                  */
                                        /*                                                                                           */
DEFV(Common,DEFV(Float,ZINT(projecteur_OY,PROJECTEUR_OY)));
                                        /* Facteur de projection de l'axe des 'Z' sur l'axe des 'Y, suivant la formule :             */
                                        /*                                                                                           */
                                        /* Y        = Y - (1/2).Z                                                                    */
                                        /*  projete                                                                                  */
                                        /*                                                                                           */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P R O J E C T I O N   P A R A L L E L E   D ' U N   4 - E S P A C E   V E R S   L E   3 - E S P A C E  :                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    On definit la projection parallele d'un                                                                        */
/*                  point {x1,x2,x3,x4} appartenant a un espace                                                                      */
/*                  a 4 dimensions sur un point {X,Y,Z} appartenant                                                                  */
/*                  a un espace a 3 dimensions par :                                                                                 */
/*                                                                                                                                   */
/*                                      X = (A  .x ) + (A  .x ) + (A  .x ) + (A  .x )                                                */
/*                                            X1  1      X2  2      X3  3      X4  4                                                 */
/*                                                                                                                                   */
/*                                      Y = (A  .x ) + (A  .x ) + (A  .x ) + (A  .x )                                                */
/*                                            Y1  1      Y2  2      Y3  3      Y4  4                                                 */
/*                                                                                                                                   */
/*                                      Z = (A  .x ) + (A  .x ) + (A  .x ) + (A  .x )                                                */
/*                                            Z1  1      Z2  2      Z3  3      Z4  4                                                 */
/*                                                                                                                                   */
/*                  la matrice 'A' etant initialisee implicitement                                                                   */
/*                  avec les valeurs :                                                                                               */
/*                                                                                                                                   */
/*                                      | 1 0 0 1 |                                                                                  */
/*                                      | 0 1 0 1 |                                                                                  */
/*                                      | 0 0 1 1 |                                                                                  */
/*                                                                                                                                   */
/*                  qui donnent de bons resultats...                                                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x1_X,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x2_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x3_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x4_X,FU___)));
                                        /* Definition de la coordonnee 'X' apres projection 4D --> 3D (introduit le 20040331093927). */

DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x1_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x2_Y,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x3_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x4_Y,FU___)));
                                        /* Definition de la coordonnee 'Y' apres projection 4D --> 3D (introduit le 20040331093927). */

DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x1_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x2_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x3_Z,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_4D_3D_x4_Z,FU___)));
                                        /* Definition de la coordonnee 'Z' apres projection 4D --> 3D (introduit le 20040331093927). */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P R O J E C T I O N   P E R S P E C T I V E   D ' U N   4 - E S P A C E   V E R S   L E   3 - E S P A C E  :               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    On definit la projection perspective d'un                                                                      */
/*                  point {x1,x2,x3,x4} appartenant a un espace                                                                      */
/*                  a 4 dimensions sur un point {X,Y,Z} appartenant                                                                  */
/*                  a un espace a 3 dimensions par. La transformation                                                                */
/*                  perspective est calculee au prealable :                                                                          */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                                     A.O1 + B.O2 + C.O3 + D.O4 + E                                                 */
/*                                      R = ---------------------------------------------------                                      */
/*                                           A.(x1-O1) + B.(x2-O2) + C.(x3-O3) + D.(x4-O4) + E                                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      x1' = O1 + (-R).(x1-O1)                                                                      */
/*                                      x2' = O2 + (-R).(x2-O2)                                                                      */
/*                                      x3' = O3 + (-R).(x3-O3)                                                                      */
/*                                      x4' = O4 + (-R).(x4-O4)                                                                      */
/*                                                                                                                                   */
/*                                      {A,B,C,D,E} etant un hyper-plan et                                                           */
/*                                      {O1,O2,O3,O4} un hyper-observateur.                                                          */
/*                                                                                                                                   */
/*                    Et enfin, le point {x1',x2',x3',x4'} fait                                                                      */
/*                  l'objet de la projection paralelle definie                                                                       */
/*                  precedemment :                                                                                                   */
/*                                                                                                                                   */
/*                                      {x1',x2',x3',x4'} --> {X,Y,Z}                                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_4D_X1,FDU)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_4D_X2,FDU)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_4D_X3,FDEUX)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_4D_X4,FZERO)));
                                        /* Definition de l'hyper-Observateur (introduit le 20230310110208).                          */
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_4D_A,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_4D_B,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_4D_C,FU___)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_4D_D,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_4D_E,FZERO)));
                                        /* Definition de l'hyper-Plan (introduit le 20230310110208).                                 */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P R O J E C T I O N   P A R A L L E L E   D ' U N   6 - E S P A C E   V E R S   L E   3 - E S P A C E  :                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    On definit la projection parallele d'un                                                                        */
/*                  point {x1,x2,x3,x4,x5,x6} appartenant a un espace                                                                */
/*                  a 6 dimensions sur un point {X,Y,Z} appartenant                                                                  */
/*                  a un espace a 3 dimensions par :                                                                                 */
/*                                                                                                                                   */
/*                                      X = (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x )                          */
/*                                            X1  1      X2  2      X3  3      X4  4      X5  5      X6  6                           */
/*                                                                                                                                   */
/*                                      Y = (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x )                          */
/*                                            Y1  1      Y2  2      Y3  3      Y4  4      Y5  5      Y6  6                           */
/*                                                                                                                                   */
/*                                      Z = (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x )                          */
/*                                            Z1  1      Z2  2      Z3  3      Z4  4      Z5  5      Z6  6                           */
/*                                                                                                                                   */
/*                  la matrice 'A' etant initialisee implicitement                                                                   */
/*                  avec les valeurs :                                                                                               */
/*                                                                                                                                   */
/*                                      | 1 0 0 1 0 0 |                                                                              */
/*                                      | 0 1 0 0 1 0 |                                                                              */
/*                                      | 0 0 1 0 0 1 |                                                                              */
/*                                                                                                                                   */
/*                  qui donnent de bons resultats...                                                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x1_X,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x2_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x3_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x4_X,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x5_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x6_X,FZERO)));
                                        /* Definition de la coordonnee 'X' apres projection 6D --> 3D (introduit le 20040331093927). */

DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x1_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x2_Y,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x3_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x4_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x5_Y,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x6_Y,FZERO)));
                                        /* Definition de la coordonnee 'Y' apres projection 6D --> 3D (introduit le 20040331093927). */

DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x1_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x2_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x3_Z,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x4_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x5_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_6D_3D_x6_Z,FU___)));
                                        /* Definition de la coordonnee 'Z' apres projection 6D --> 3D (introduit le 20040331093927). */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P R O J E C T I O N   P A R A L L E L E   D ' U N   8 - E S P A C E   V E R S   L E   3 - E S P A C E  :                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    On definit la projection parallele d'un                                                                        */
/*                  point {x1,x2,x3,x4,x5,x6,x7,x8} appartenant a un espace                                                          */
/*                  a 8 dimensions sur un point {X,Y,Z} appartenant                                                                  */
/*                  a un espace a 3 dimensions par :                                                                                 */
/*                                                                                                                                   */
/*                                      X = (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x )    */
/*                                            X1  1      X2  2      X3  3      X4  4      X5  5      X6  6      X7  7      X8  8     */
/*                                                                                                                                   */
/*                                      Y = (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x )    */
/*                                            Y1  1      Y2  2      Y3  3      Y4  4      Y5  5      Y6  6      Y7  7      Y8  8     */
/*                                                                                                                                   */
/*                                      Z = (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x ) + (A  .x )    */
/*                                            Z1  1      Z2  2      Z3  3      Z4  4      Z5  5      Z6  6      Z7  7      Z8  8     */
/*                                                                                                                                   */
/*                  la matrice 'A' etant initialisee implicitement                                                                   */
/*                  avec les valeurs :                                                                                               */
/*                                                                                                                                   */
/*                                      | 1 0 0 1 1 0 0 1 |                                                                          */
/*                                      | 0 1 0 1 0 1 0 1 |                                                                          */
/*                                      | 0 0 1 1 0 0 1 1 |                                                                          */
/*                                                                                                                                   */
/*                  qui donnent de bons resultats...                                                                                 */
/*                                                                                                                                   */
/*                  L'initialisation implicite est devenue le                                                                        */
/*                  20230207114915 :                                                                                                 */
/*                                                                                                                                   */
/*                                      | 1 0 0 0 0 1 0 0 |                                                                          */
/*                                      | 0 1 0 0 0 1 0 0 |                                                                          */
/*                                      | 0 0 0 0 1 1 0 0 |                                                                          */
/*                                                                                                                                   */
/*                  qui permet de retrouver 'v $xiirs/CAYA.A1.0129'                                                                  */
/*                  avec 'v $xiirs/CAYA.W3'...                                                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x1_X,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x2_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x3_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x4_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x5_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x6_X,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x7_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x8_X,FZERO)));
                                        /* Definition de la coordonnee 'X' apres projection 8D --> 3D (introduit le 20230202142117). */
                                        /*                                                                                           */
                                        /* Lors de la mise au point de 'v $xiirs/CAYA.O3', le 20230207114915, je suis passe de :     */
                                        /*                                                                                           */
                                        /*                  {FU___,FZERO,FZERO,FU___,FU___,FZERO,FZERO,FU___}                        */
                                        /*                                                                                           */
                                        /* a une version compatible avec la projection 4D --> 3D...                                  */

DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x1_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x2_Y,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x3_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x4_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x5_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x6_Y,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x7_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x8_Y,FZERO)));
                                        /* Definition de la coordonnee 'Y' apres projection 8D --> 3D (introduit le 20230202142117). */
                                        /*                                                                                           */
                                        /* Lors de la mise au point de 'v $xiirs/CAYA.O3', le 20230207114915, je suis passe de :     */
                                        /*                                                                                           */
                                        /*                  {FZERO,FU___,FZERO,FU___,FZERO,FU___,FZERO,FU___}                        */
                                        /*                                                                                           */
                                        /* a une version compatible avec la projection 4D --> 3D...                                  */

DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x1_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x2_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x3_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x4_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x5_Z,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x6_Z,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x7_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_8D_3D_x8_Z,FZERO)));
                                        /* Definition de la coordonnee 'Z' apres projection 8D --> 3D (introduit le 20230202142117). */
                                        /*                                                                                           */
                                        /* Lors de la mise au point de 'v $xiirs/CAYA.O3', le 20230207114915, je suis passe de :     */
                                        /*                                                                                           */
                                        /*                  {FZERO,FZERO,FU___,FU___,FZERO,FZERO,FU___,FU___}                        */
                                        /*                                                                                           */
                                        /* a une version compatible avec la projection 4D --> 3D...                                  */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P R O J E C T I O N   P E R S P E C T I V E   D ' U N   8 - E S P A C E   V E R S   L E   3 - E S P A C E  :               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    On definit la projection perspective d'un                                                                      */
/*                  point {x1,x2,x3,x4,x5,x6,x7,x8} appartenant a un espace                                                          */
/*                  a 8 dimensions sur un point {X,Y,Z} appartenant                                                                  */
/*                  a un espace a 3 dimensions par. La transformation                                                                */
/*                  perspective est calculee au prealable :                                                                          */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                               A.O1 + B.O2 + C.O3 + D.O4 + E.O5 + F.O6 +G.O7 + H.O8 + I                            */
/*                       R = ---------------------------------------------------------------------------------------------------     */
/*                            A.(x1-O1) + B.(x2-O2) + C.(x3-O3) + D.(x4-O4) + D.(x5-O5) + D.(x6-O6) + D.(x7-O7) + D.(x8-O8) + I      */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      x1' = O1 + (-R).(x1-O1)                                                                      */
/*                                      x2' = O2 + (-R).(x2-O2)                                                                      */
/*                                      x3' = O3 + (-R).(x3-O3)                                                                      */
/*                                      x4' = O4 + (-R).(x4-O4)                                                                      */
/*                                      x5' = O5 + (-R).(x5-O5)                                                                      */
/*                                      x6' = O6 + (-R).(x6-O6)                                                                      */
/*                                      x7' = O7 + (-R).(x7-O7)                                                                      */
/*                                      x8' = O8 + (-R).(x8-O8)                                                                      */
/*                                                                                                                                   */
/*                                      {A,B,C,D,E,F,G,H,I} etant un hyper-plan et                                                   */
/*                                      {O1,O2,O3,O4,O5,O6,O7,O8} un hyper-observateur.                                              */
/*                                                                                                                                   */
/*                    Et enfin, le point {x1',x2',x3',x4',x5',x6',x7',x8'} fait                                                      */
/*                  l'objet de la projection paralelle definie                                                                       */
/*                  precedemment :                                                                                                   */
/*                                                                                                                                   */
/*                                      {x1',x2',x3',x4',x5',x6',x7',x8'} --> {X,Y,Z}                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_8D_X1,FDU)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_8D_X2,FDU)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_8D_X3,FDEUX)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_8D_X4,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_8D_X5,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_8D_X6,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_8D_X7,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_8D_X8,FZERO)));
                                        /* Definition de l'hyper-Observateur (introduit le 20230316142734).                          */
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_8D_A,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_8D_B,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_8D_C,FU___)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_8D_D,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_8D_E,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_8D_F,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_8D_G,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_8D_H,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_8D_I,FZERO)));
                                        /* Definition de l'hyper-Plan (introduit le 20230316142734).                                 */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P R O J E C T I O N   P A R A L L E L E   D ' U N   1 6 - E S P A C E   V E R S   L E   3 - E S P A C E  :                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    On definit la projection parallele d'un                                                                        */
/*                  point {x01,x02,...,x15,x16} appartenant a un espace                                                              */
/*                  a 16 dimensions sur un point {X,Y,Z} appartenant                                                                 */
/*                  a un espace a 3 dimensions par :                                                                                 */
/*                                                                                                                                   */
/*                                      X = (A   .x  ) + (A   .x  ) + (...) + (A   .x  ) + (A   .x  )                                */
/*                                            X01  01      X02  02              X15  15      X16  16                                 */
/*                                                                                                                                   */
/*                                      Y = (A   .x  ) + (A   .x  ) + (...) + (A   .x  ) + (A   .x  )                                */
/*                                            Y01  01      Y02  02              Y15  15      Y16  16                                 */
/*                                                                                                                                   */
/*                                      Z = (A   .x  ) + (A   .x  ) + (...) + (A   .x  ) + (A   .x  )                                */
/*                                            Z01  01      Z02  02              Z15  15      Z16  16                                 */
/*                                                                                                                                   */
/*                  la matrice 'A' etant initialisee implicitement                                                                   */
/*                  avec les valeurs (introduites le 20230225100532) :                                                               */
/*                                                                                                                                   */
/*                                      | 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |                                                          */
/*                                      | 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |                                                          */
/*                                      | 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 |                                                          */
/*                                                                                                                                   */
/*                  qui permet de retrouver 'v $xiirs/CAYA.A1.0129'                                                                  */
/*                  avec 'v $xiirs/CAYA.O3'...                                                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x01_X,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x02_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x03_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x04_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x05_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x06_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x07_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x08_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x09_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x10_X,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x11_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x12_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x13_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x14_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x15_X,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x16_X,FZERO)));
                                        /* Definition de la coordonnee 'X' apres projection 16D --> 3D.                              */

DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x01_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x02_Y,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x03_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x04_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x05_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x06_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x07_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x08_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x09_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x10_Y,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x11_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x12_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x13_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x14_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x15_Y,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x16_Y,FZERO)));
                                        /* Definition de la coordonnee 'Y' apres projection 16D --> 3D.                              */

DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x01_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x02_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x03_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x04_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x05_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x06_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x07_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x08_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x09_Z,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x10_Z,FU___)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x11_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x12_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x13_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x14_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x15_Z,FZERO)));
DEFV(Common,DEFV(Float,ZINT(coefficient_de_projection_parallele_01_16D_3D_x16_Z,FZERO)));
                                        /* Definition de la coordonnee 'Z' apres projection 16D --> 3D.                              */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P R O J E C T I O N   P E R S P E C T I V E   D ' U N   1 6 - E S P A C E   V E R S   L E   3 - E S P A C E  :             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    On definit la projection perspective d'un                                                                      */
/*                  point {x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15,x16} appartenant a un espace                  */
/*                  a 16 dimensions sur un point {X,Y,Z} appartenant                                                                 */
/*                  a un espace a 3 dimensions par. Cette projection est                                                             */
/*                  tout a fait identique a celle definie pour un                                                                    */
/*                  espace a 8 dimensions...                                                                                         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X01,FDU)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X02,FDU)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X03,FDEUX)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X04,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X05,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X06,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X07,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X08,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X09,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X10,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X11,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X12,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X13,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X14,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X15,FZERO)));
DEFV(Common,DEFV(Float,ZINT(observateur_de_projection_perspective_01_16D_X16,FZERO)));
                                        /* Definition de l'hyper-Observateur (introduit le 20230316142734).                          */
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_A,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_B,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_C,FU___)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_D,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_E,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_F,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_G,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_H,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_I,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_J,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_K,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_L,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_M,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_N,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_O,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_P,FZERO)));
DEFV(Common,DEFV(Float,ZINT(plan_de_projection_perspective_01_16D_Q,FZERO)));
                                        /* Definition de l'hyper-Plan (introduit le 20230316142734).                                 */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N D I C A T E U R S   D E   C O N T R O L E   U T I L E S   A   C E R T A I N E S   C O M M A N D E S  :                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,ZINT(les_images_sont_standards,VRAI)));
DEFV(Common,DEFV(Logical,ZINT(les_imagesA_sont_standards,VRAI)));
DEFV(Common,DEFV(Logical,ZINT(les_imagesN_sont_standards,VRAI)));
DEFV(Common,DEFV(Logical,ZINT(les_imagesR_sont_standards,VRAI)));
DEFV(Common,DEFV(Logical,ZINT(les_images_standards_sont_a_renormaliser,FAUX)));
                                        /* Indicateurs references via les procedures 'gI...(...)' definies dans quelques fichiers    */
                                        /* de type '$DEF' et qui permettent de savoir si les images a manipuler sont de type         */
                                        /* 'genere_Float' ("FAUX") ou bien de type 'genere_p' ("VRAI"), et dans ce dernier cas si    */
                                        /* elles doivent etre renormalisees ("VRAI") ou pas ("FAUX")...                              */
                                        /*                                                                                           */
                                        /* Le 20060307135422 furent introduits les indicateurs 'les_imagesA_sont_standards' et       */
                                        /* 'les_imagesR_sont_standards' permettant de traiter separemment, si besoin est, les        */
                                        /* images Arguments et les images Resultats. Cela fut rendu necessaire a cette date pour     */
                                        /* 'v $xci/filtre.01$K les_imagesA_sont_standards'...                                        */
                                        /*                                                                                           */
                                        /* Le 20240812122154 fut introduit 'les_imagesN_sont_standards' par "symetrie" avec          */
                                        /* 'les_imagesA_sont_standards' pour 'v $xci/filtre.01$K les_imagesN_sont_standards' .       */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        S U P E R - E C H E L L E S   G R A P H I Q U E S  :                                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifdef    super_echelle_OZ_VERSION_01                                           /* Common,DEFV(Fonction,) : avec 'VERSION_01'.       */
DEFV(Common,DEFV(Logical,_____super_echelle_OZ_VERSION_01));
#Aifdef   super_echelle_OZ_VERSION_01                                           /* Common,DEFV(Fonction,) : avec 'VERSION_01'.       */
#Eifdef   super_echelle_OZ_VERSION_01                                           /* Common,DEFV(Fonction,) : avec 'VERSION_01'.       */

#ifdef    super_echelle_OZ_VERSION_02                                           /* Common,DEFV(Fonction,) : avec 'VERSION_02'.       */
DEFV(Common,DEFV(Logical,_____super_echelle_OZ_VERSION_02));
#Aifdef   super_echelle_OZ_VERSION_02                                           /* Common,DEFV(Fonction,) : avec 'VERSION_02'.       */
#Eifdef   super_echelle_OZ_VERSION_02                                           /* Common,DEFV(Fonction,) : avec 'VERSION_02'.       */

                                        /* Ces parametres ont ete implementes ici le 20001222141952, alors que jusqu'a present,      */
                                        /* ils figuraient dans '$xiii/vecteurs$FON'. Ceci est du a l'utilisation des super-echelles  */
                                        /* dans 'v $xiii/di_image$FON SUPER_ECHELLE' pour la fonction 'IFdensite(...)'.              */

DEFV(Common,DEFV(Float,ZINT(super_echelle_OX,SUPER_ECHELLE_DE_BASE)));
DEFV(Common,DEFV(Float,ZINT(super_echelle_OY,SUPER_ECHELLE_DE_BASE)));
DEFV(Common,DEFV(Float,ZINT(super_echelle_OZ,SUPER_ECHELLE_DE_BASE)));
                                        /* Definition des "super-echelles" sur les axes 'OX' et 'OY'. Ces deux "super-echelles"      */
                                        /* sont destinees a permettre plusieurs choses (notons-les 'seX' et 'seY') :                 */
                                        /*                                                                                           */
                                        /* 1-seX=seY=1              : dans ces conditions, un carre trace sur l'ecran aura les       */
                                        /*                            memes proportions que l'image elle-meme. Par exemple en        */
                                        /*                            format 'Pal', il donnera l'impression d'un rectangle           */
                                        /*                            horizontal.                                                    */
                                        /*                                                                                           */
                                        /* 2-seX=1, seY=(dimX/dimY) : dans ces conditions, un carre trace sur l'ecran aura bien      */
                                        /*                            l'air d'un "grand" carre.                                      */
                                        /*                                                                                           */
                                        /* 3-seX=(dimY/dimX), seY=1 : dans ces conditions, un carre trace sur l'ecran aura bien      */
                                        /*                            l'air d'un "petit" carre (par rapport au format ci-dessus).    */
                                        /*                                                                                           */
                                        /* La "super-echelle" sur l'axe 'OZ' a ete ajoutee le 20001224174626 afin de resoudre        */
                                        /* un probleme recontre dans 'v $xiii/di_album$FON AFdensite'.                               */

DEFV(Common,DEFV(Logical,ZINT(super_echelle_____utiliser_le_mode_rectangulaire,VRAI)));
DEFV(Common,DEFV(Logical,ZINT(super_echelle_____utiliser_le_mode_carre__grand_carre,VRAI)));
                                        /* Choix des modes par defaut introduit le 20051216100446. On rappelle qu'en utilisant       */
                                        /* 'super_echelle_OZ_VERSION_02' et en notant {SX,SY,SZ} les "super-echelles" sur les        */
                                        /* axes {OX,OY,OZ} respectivement, on a :                                                    */
                                        /*                                                                                           */
                                        /*                  RECTANGULAIRE :                                                          */
                                        /*                                      SX=1                                                 */
                                        /*                                      SY=1                                                 */
                                        /*                                      SZ=1                                                 */
                                        /*                                                                                           */
                                        /*                  GRAND CARRE :                                                            */
                                        /*                                      SX=1                                                 */
                                        /*                                      SY=dimX/dimY (=1.35 en mode 'Pal' par exemple)       */
                                        /*                                      SZ=1                                                 */
                                        /*                                                                                           */
                                        /*                  PETIT CARRE :                                                            */
                                        /*                                      SX=dimY/dimX (=0.73 en mode 'Pal' par exemple)       */
                                        /*                                      SY=1                                                 */
                                        /*                                      SZ=1                                                 */
                                        /*                                                                                           */
                                        /* Ceci a ete deplace de '$xiii/vecteurs$FON' a ici le 20051216103915...                     */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A R R O N D I S   D E   C O N V E R S I O N   P O U R   ' Afloat_std(...) '  :                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* ATTENTION : cette definition ne peut etre dans 'v $xiii/conversion$FON 20020315122536'    */
                                        /* car, en effet, elle est referencee dans 'v $xig/fonct$vv$DEF 20020315122536' et donc      */
                                        /* dans toutes les commandes '$K'...                                                         */

DEFV(Common,DEFV(Float,ZINT(Afloat_std_____translation_d_arrondi_au_plus_proche_entier
                           ,TRANSLATION_D_ARRONDI_AU_PLUS_PROCHE_ENTIER
                            )
                 )
     );
                                        /* Le 20020315122536, cette constante a ete introduite de facon a introduire un 'ARRI(...)'  */
                                        /* lors de la conversion 'GENP(...)', mais de facon a assurer la compatibilite avec les      */
                                        /* generations anterieures (il suffit pour cela d'annuler ce parametre...).                  */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A R R O N D I S   D E   C O N V E R S I O N   P O U R   ' Ifloat_std(...) '  :                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* ATTENTION : cette definition ne peut etre dans 'v $xiii/conversion$FON 20020315122536'    */
                                        /* car, en effet, elle est referencee dans 'v $xig/fonct$vv$DEF 20020315122536' et donc      */
                                        /* dans toutes les commandes '$K'...                                                         */

DEFV(Common,DEFV(Float,ZINT(Ifloat_std_____translation_d_arrondi_au_plus_proche_entier
                           ,TRANSLATION_D_ARRONDI_AU_PLUS_PROCHE_ENTIER
                            )
                 )
     );
                                        /* Le 20020315122536, cette constante a ete introduite de facon a introduire un 'ARRI(...)'  */
                                        /* lors de la conversion 'GENP(...)', mais de facon a assurer la compatibilite avec les      */
                                        /* generations anterieures (il suffit pour cela d'annuler ce parametre...).                  */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        R E E C H A N T I L L O N N A G E   D ' U N E   I M A G E  :                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* ATTENTION : cette definition ne peut etre dans 'v $xiii/di_image$FON' car, en effet,      */
                                        /* elle est referencee dans 'v $xiii/di_image$DEF gINITIALISATION_DES_INTERPOLATIONS...'     */
                                        /* qui est lui-meme reference dans differents '$FON' (en particulier 'v $xiii/di_image$FON'  */
                                        /* et 'v $xiipf/fonction.2$FON VOISINAGE_POINT_').                                           */

DEFV(Common,DEFV(Logical,ZINT(gINITIALISATION_DES_INTERPOLATIONS_BILINEAIRE_ET_BICUBIQUE_____compatibilite_20090225,FAUX)));
                                        /* Le 20090225133105, cet indicateur a ete introduit...                                      */

DEFV(Common,DEFV(Int,ZINT(VOISINAGE_POINT_BILINEAIRE_____pasX,PasX)));
DEFV(Common,DEFV(Int,ZINT(VOISINAGE_POINT_BILINEAIRE_____pasY,PasY)));
                                        /* Pas d'echantillonnage de 'VOISINAGE_POINT_BILINEAIRE(...)' (introduit le 20160329120812). */
DEFV(Common,DEFV(Int,ZINT(VOISINAGE_POINT_BICUBIQUE_____pasX,PasX)));
DEFV(Common,DEFV(Int,ZINT(VOISINAGE_POINT_BICUBIQUE_____pasY,PasY)));
                                        /* Pas d'echantillonnage de 'VOISINAGE_POINT_BICUBIQUE(...)' (introduit le 20160329120812).  */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        N O T I O N   D ' A S S O C I A T I O N   D ' I M A G E S  :                                                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    On se donne ici la possibilite                                                                                 */
/*                  d'associer deux images point a                                                                                   */
/*                  point a l'aide de deux matrices                                                                                  */
/*                  qui donnent respectivement pour                                                                                  */
/*                  chaque point {X,Y}, les coordonnees                                                                              */
/*                  X' et Y' du point qui lui est                                                                                    */
/*                  associe.                                                                                                         */
/*                                                                                                                                   */
/*                    Deux images de type 'I' sont ainsi                                                                             */
/*                  definies :                                                                                                       */
/*                                                                                                                                   */
/*                  Iassociation_de_voisinage_____X :       elle donne pour chaque point                                             */
/*                                                          {X,Y} l'abscisse 'X' du point                                            */
/*                                                          associe,                                                                 */
/*                  Iassociation_de_voisinage_____Y :       elle donne pour chaque point                                             */
/*                                                          {X,Y} l'ordonnee 'Y' du point                                            */
/*                                                          associe.                                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Deplace depuis 'v $xiii/tri_image$FON' le 20101011185144 car c'est en effet plus          */
                                        /* logique que cela soit ici et ce en particulier depuis l'introduction de la fonction       */
                                        /* 'v $xiii/pent_image$FON IFinterpolation_locale_de_voisinage'...                           */

DEFV(Common,DEFV(Statique,DEFV(imageI,Iassociation_de_voisinage_____X)));
                                        /* Definition de la partie 'X' des associations,                                             */
DEFV(Common,DEFV(Statique,DEFV(imageI,Iassociation_de_voisinage_____Y)));
                                        /* Definition de la partie 'Y' des associations.                                             */

DEFV(Common,DEFV(Logical,INIT(Iassociation_de_voisinage_____X_association__et__Y_association__sont_initialisees,FAUX)));
                                        /* Afin de savoir si {Iassociation_de_voisinage_____X,Iassociation_de_voisinage_____Y}       */
                                        /* sont initialisees, par exemple, en etant passe au moins une fois dans                     */
                                        /* 'Iassociation_de_voisinage(...)'.                                                         */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O N V E R S I O N S   " RVB "  <-->   " HLS "  :                                                                         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,ZINT(PASSAGE_RVB_HLS_____compatibilite_20120911,FAUX)));
                                        /* Introduit le 20120911133745 pour garantir la compatibilite anterieure apres la correction */
                                        /* d'une anomalie dans 'PASSAGE_RVB_HLS(...)'.                                               */
DEFV(Common,DEFV(Logical,ZINT(PASSAGE_HLS_RVB_____compatibilite_20240327,FAUX)));
                                        /* Introduit le 20240327181436 pour garantir la compatibilite anterieure...                  */

_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O N T R O L E   D E   C E R T A I N S   M E S S A G E S   D ' E R R E U R  :                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Logical,ZINT(PASSAGE_HLS_RVB_____editer_les_messages_d_erreur,VRAI)));
                                        /* Le 20111206112139, cet indicateur a ete introduit. On notera qu'il figure ici car, en     */
                                        /* effet, il ne peut etre dans 'v $xiii/conversion$FON PASSAGE_HLS_RVB', puisque cette       */
                                        /* procedure est aussi referencee dans 'v $xrv/HLS_RVB.01$K PASSAGE_HLS_RVB'...              */

_______________________________________________________________________________________________________________________________________



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.