/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   D E   V I S U A L I S A T I O N  :                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrs/volumes.14$I' :                                                                                            */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20040325104520).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.1D.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   D I F F E R E N T S   E S P A C E S   E T   D E   L ' E F F E T   D E   B R U M E  :         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.13.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A I D E   A U   C A D R A G E   D E S   I M A G E S  :                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.1C.I"

DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES
                                        /* Definition des extrema des coordonnees et des derivees. On notera bien l'absence de       */
                                        /* point-virgule apres 'DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES'.   */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D E S   I M A G E S  :                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrv/champs_5.14.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   R E L A T I V E S   A   L A   V I S U A L I S A T I O N  :                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.14.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        E C H A N T I L L O N N A G E   D U   V O L U M E  :                                                                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Un dispositif permet                                                                                           */
/*                  de visualiser le maillage suivant les                                                                            */
/*                  paralleles et les meridiens du volume.                                                                           */
/*                  Notons (suivant 'v $xrs/volumes.13$I PROCESS_ARGUMENTS_DE_DEFINITION_DES_COORDONNEES_CURVILIGNES') :             */
/*                                                                                                                                   */
/*                                      pu      = pas_de_u                                                                           */
/*                                      eu      = echantillonnage_de_u                                                               */
/*                                      dpu     = diviseur_du_pas_de_u                                                               */
/*                                                                                                                                   */
/*                                      pv      = pas_de_v                                                                           */
/*                                      ev      = echantillonnage_de_v                                                               */
/*                                      dpv     = diviseur_du_pas_de_v                                                               */
/*                                                                                                                                   */
/*                                      pw      = pas_de_w                                                                           */
/*                                      ew      = echantillonnage_de_w                                                               */
/*                                      dpw     = diviseur_du_pas_de_w                                                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                  Les pas effectifs en 'u', 'v' et 'w' sont donc :                                                                 */
/*                                                                                                                                   */
/*                                      pu/dpu                                                                                       */
/*                                      pv/dpv                                                                                       */
/*                                      pw/dpw                                                                                       */
/*                                                                                                                                   */
/*                  respectivement. Les meridiens seront espaces                                                                     */
/*                  de 'ev' points et les paralleles de 'eu' points.                                                                 */
/*                  Ainsi, par exemple si :                                                                                          */
/*                                                                                                                                   */
/*                                      eu == dpu                                                                                    */
/*                                      ev == dpv                                                                                    */
/*                                                                                                                                   */
/*                  les meridiens et les paralleles seront espaces                                                                   */
/*                  de 'pv' et 'pu' respectivement. Mais, en general,                                                                */
/*                  {eu,ev} et {dpu,dpv} ne seront pas "correles"...                                                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                    A 'w' constant, une surface {u,v} du                                                                           */
/*                  volume va alors etre visualisee de                                                                               */
/*                  la facon suivante :                                                                                              */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                                                                        'ev' points                                */
/*                                                                                   <------------------->                           */
/*                                                                                                                                   */
/*                                                                                        pv/dpv                                     */
/*                                                                                        <---->                                     */
/*                                                                                                                                   */
/*                                      .    .    .    .    *    .    .    .    .    *    .    .    .    .    *    .    .            */
/*                                                          |                        |                        |                      */
/*                                                          |      u =constante      |                        |                      */
/*                                      *----*----*----*----*----*----*----*----*----*----*----*----*----*----*----*----*            */
/*                         /|\       /|\                    |     ("paralleles")     |                      v | "                    */
/*                          | pu/dpu  |                     |                        |                      = | m                    */
/*                          |        \|/.    .    .    .    *    .    .    .    .    *    .    .    .    .  c * e  .    .            */
/*                    'eu'  |                               |                        |                      o | r                    */
/*                          |                               |                        |                      n | i                    */
/*                   points |           .    .    .    .    *    .    .    .    .    *    .    .    .    .  s * d  .    .            */
/*                          |                               |                        |                      t | i                    */
/*                          |                               |                        |                      a | e                    */
/*                         \|/          .    .    .    .    *    .    .    .    .    *    .    .    .    .  n * n  .    .            */
/*                                                          |                        |                      t | s                    */
/*                                                          |                        |                      e | "                    */
/*                                      *----*----*----*----*----*----*----*----*----*----*----*----*----*----*----*----*            */
/*                                                          |                        |                        |                      */
/*                                                          |                        |                        |                      */
/*                                      .    .    .    .    *    .    .    .    .    *    .    .    .    .    *    .    .            */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                  ou les caracteres "*" materialisent les                                                                          */
/*                  points reellement visualises du volume.                                                                          */
/*                  Les caracteres "-" et "|" ne sont la que pour                                                                    */
/*                  materialiser les paralleles et les meridiens                                                                     */
/*                  respectivement, alors que les caracteres "."                                                                     */
/*                  montrent l'echantillonnage effectif de la                                                                        */
/*                  surface.                                                                                                         */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   MAJORATION_DU_MAXIMUM_DES_COORDONNEES_u_v_w_____COMPATIBILITE_20160414                                                        \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(majoration_du_maximum_des_coordonnees_u_v_w_____compatibilite_20160414
                            ,MAJORATION_DU_MAXIMUM_DES_COORDONNEES_u_v_w_____COMPATIBILITE_20160414
                             )
                )
     );

#define   EPSILON_DE_MAJORATION_DU_MAXIMUM_DES_COORDONNEES_u_v_w                                                                        \
                    mgEPSILON
DEFV(Local,DEFV(Float,INIT(epsilon_de_majoration_du_maximum_des_coordonnees_u_v_w
                          ,EPSILON_DE_MAJORATION_DU_MAXIMUM_DES_COORDONNEES_u_v_w
                           )
                )
     );
                                        /* Afin d'assurer la compatibilite avec les resultats obtenus anterieurement a la date       */
                                        /* du 20160414133107...                                                                      */
                                        /*                                                                                           */
                                        /* Ceci a ete introduit a cette date apres avoir note que les 'v $xrs/volumes.12$I FDoIn'    */
                                        /* n'atteignent pas toujours le maximum. Ainsi, par exemple :                                */
                                        /*                                                                                           */
                                        /*                  FDoIn(uvw,-0.5,+0.5,0.050)    ==> 'uvw' atteint +0.5                     */
                                        /*                                                                                           */
                                        /* alors que :                                                                               */
                                        /*                                                                                           */
                                        /*                  FDoIn(uvw,-0.5,+0.5,0.025)    ==> 'uvw' n'atteint que +0.475000          */
                                        /*                                                                                           */
                                        /* (voir a ce propos 'v $xtc/test_for_flottant.01$c').                                       */
                                        /*                                                                                           */
                                        /* L'espilon parametrable a ete introduit le 20160414144922...                               */
                                        /*                                                                                           */
                                        /* Au passage, faire :                                                                       */
                                        /*                                                                                           */
                                        /*                  epsilon = 0                                                              */
                                        /*                                                                                           */
                                        /* est une autre facon d'assurer la "compatibilite_20160414"...                              */

                                        /* Le 20060818094337, par symetrie avec 'v $xrs/surfaces.14$I 20060818091921', les           */
                                        /* definitions des coordonnees {u,v,w} ont ete mises en commun alors qu'anterieurement       */
                                        /* elles etaient definies specifiquement pour chaque volume dans le fichier '$xrs/*.14$I'    */
                                        /* (par exemple 'v $xrs/$xrs/Mobius3D.14$I')...                                              */
DEFV(Local,DEFV(Float,INIT(minimum_de_u,MINIMUM_DE_U)));
DEFV(Local,DEFV(Float,INIT(maximum_de_u,MAXIMUM_DE_U)));
DEFV(Local,DEFV(Float,INIT(pas_de_u,PAS_DE_U)));
                                        /* Definition de la coordonnee parametrique 'u' du volume.                                   */
DEFV(Local,DEFV(Float,INIT(minimum_de_v,MINIMUM_DE_V)));
DEFV(Local,DEFV(Float,INIT(maximum_de_v,MAXIMUM_DE_V)));
DEFV(Local,DEFV(Float,INIT(pas_de_v,PAS_DE_V)));
                                        /* Definition de la coordonnee parametrique 'v' du volume.                                   */
DEFV(Local,DEFV(Float,INIT(minimum_de_w,MINIMUM_DE_W)));
DEFV(Local,DEFV(Float,INIT(maximum_de_w,MAXIMUM_DE_W)));
DEFV(Local,DEFV(Float,INIT(pas_de_w,PAS_DE_W)));
                                        /* Definition de la coordonnee parametrique 'w' du volume.                                   */

#define   LISTER_LES_COORDONNEES_u_v_w_DES_POINTS                                                                                       \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(lister_les_coordonnees_u_v_w_des_points,LISTER_LES_COORDONNEES_u_v_w_DES_POINTS)));
                                        /* Ceci fut introduit le 20101006103609.                                                     */

#define   ECHANTILLONNAGE_DE_u_DE_v_ET_DE_w                                                                                             \
                    UN
DEFV(Local,DEFV(Int,INIT(echantillonnage_de_u,ECHANTILLONNAGE_DE_u_DE_v_ET_DE_w)));
DEFV(Local,DEFV(Int,INIT(echantillonnage_de_v,ECHANTILLONNAGE_DE_u_DE_v_ET_DE_w)));
DEFV(Local,DEFV(Int,INIT(echantillonnage_de_w,ECHANTILLONNAGE_DE_u_DE_v_ET_DE_w)));
                                        /* Dispositif permettant d'echantillonner le volume  ce qui permet donc de mieux             */
                                        /* materialiser les lignes {u=constante}, {v=constante} et {w=constante}, ce que             */
                                        /* l'on peut appeler :                                                                       */
                                        /*                                                                                           */
                                        /*                  u=constante       : "paralleles",                                        */
                                        /*                  v=constante       : "meridiens".                                         */
                                        /*                  w=constante       : ?                                                    */
                                        /*                                                                                           */
                                        /* Pour cela, il suffit par exemple de prendre un pas pour 'u', 'v' et 'w' qui soit 'N'      */
                                        /* fois plus petit qu'habituellement, puis de prendre comme echantillonnage en 'u', 'v'      */
                                        /* et 'w' la valeur 'N'.                                                                     */

#define   TRANSLATION_DE_L_ECHANTILLONNAGE_DE_u_DE_v_ET_DE_w                                                                            \
                    ZERO
DEFV(Local,DEFV(Int,INIT(translation_de_l_echantillonnage_de_u,TRANSLATION_DE_L_ECHANTILLONNAGE_DE_u_DE_v_ET_DE_w)));
DEFV(Local,DEFV(Int,INIT(translation_de_l_echantillonnage_de_v,TRANSLATION_DE_L_ECHANTILLONNAGE_DE_u_DE_v_ET_DE_w)));
DEFV(Local,DEFV(Int,INIT(translation_de_l_echantillonnage_de_w,TRANSLATION_DE_L_ECHANTILLONNAGE_DE_u_DE_v_ET_DE_w)));
                                        /* Dispositif introduit le 20040330111827 qui permet, par sa variation (0, 1, 2,...) de      */
                                        /* faire "glisser" la grille d'echantillonnage dans le volume...                             */

#define   DIVISEUR_DU_PAS_DE_u_DE_v_ET_DE_w                                                                                             \
                    FU
DEFV(Local,DEFV(Float,INIT(diviseur_du_pas_de_u,DIVISEUR_DU_PAS_DE_u_DE_v_ET_DE_w)));
DEFV(Local,DEFV(Float,INIT(diviseur_du_pas_de_v,DIVISEUR_DU_PAS_DE_u_DE_v_ET_DE_w)));
DEFV(Local,DEFV(Float,INIT(diviseur_du_pas_de_w,DIVISEUR_DU_PAS_DE_u_DE_v_ET_DE_w)));
                                        /* Dispositif permettant d'utiliser le dispositif precedent d'echantillonnage precedent      */
                                        /* et ce sans avoir a toucher aux pas des coordonnees {u,v,w}. Il suffira, par exemple,      */
                                        /* d'utiliser des diviseurs egaux aux echantillonnages...                                    */

#define   LE_PAS_DE_u_DE_v_ET_DE_w_DE_DIFFERENTIATION_EST_HOMOTHETIQUE                                                                  \
                    VRAI
DEFV(Local,DEFV(Logical,INIT(le_pas_de_u_de_differentiation_est_homothetique
                            ,LE_PAS_DE_u_DE_v_ET_DE_w_DE_DIFFERENTIATION_EST_HOMOTHETIQUE
                             )
                )
     );
DEFV(Local,DEFV(Logical,INIT(le_pas_de_v_de_differentiation_est_homothetique
                            ,LE_PAS_DE_u_DE_v_ET_DE_w_DE_DIFFERENTIATION_EST_HOMOTHETIQUE
                             )
                )
     );
DEFV(Local,DEFV(Logical,INIT(le_pas_de_w_de_differentiation_est_homothetique
                            ,LE_PAS_DE_u_DE_v_ET_DE_w_DE_DIFFERENTIATION_EST_HOMOTHETIQUE
                             )
                )
     );
                                        /* Ce dispositif introduit le 20060505161814 permet de faire que le pas de differentiation   */
                                        /* en {u,v,w} est homothetique ('VRAI'), c'est-a-dire qu'il est alors calcule a partir de    */
                                        /* {pas_de_u_effectif,pas_de_v_effectif,pas_de_w_effectif} ou bien ('FAUX') a partir         */
                                        /* de {pas_de_u,pas_de_v,pas_de_w}.                                                          */

#define   DIVISEUR_DE_DIFFERENTIATION_DE_u_DE_v_ET_DE_w                                                                                 \
                    FU
DEFV(Local,DEFV(Float,INIT(diviseur_de_differentiation_de_u,DIVISEUR_DE_DIFFERENTIATION_DE_u_DE_v_ET_DE_w)));
DEFV(Local,DEFV(Float,INIT(diviseur_de_differentiation_de_v,DIVISEUR_DE_DIFFERENTIATION_DE_u_DE_v_ET_DE_w)));
DEFV(Local,DEFV(Float,INIT(diviseur_de_differentiation_de_w,DIVISEUR_DE_DIFFERENTIATION_DE_u_DE_v_ET_DE_w)));
                                        /* Ce dispositif fut introduit le 20060505161814...                                          */

#define   FACILITER_LE_PARAMETRAGE_DE_u_v_w                                                                                             \
                    FAUX

#define   NOMBRE_D_INTERS_u                                                                                                             \
                    UN
#define   NOMBRE_D_INTERS_v                                                                                                             \
                    UN
#define   NOMBRE_D_INTERS_w                                                                                                             \
                    UN

#define   NOMBRE_DE_POINTS_DANS_UN_INTER_u                                                                                              \
                    UN
#define   NOMBRE_DE_POINTS_DANS_UN_INTER_v                                                                                              \
                    UN
#define   NOMBRE_DE_POINTS_DANS_UN_INTER_w                                                                                              \
                    UN

DEFV(Local,DEFV(Logical,INIT(faciliter_le_parametrage_de_u_v_w,FACILITER_LE_PARAMETRAGE_DE_u_v_w)));

DEFV(Local,DEFV(Int,INIT(nombre_d_inters_u,NOMBRE_D_INTERS_u)));
DEFV(Local,DEFV(Int,INIT(nombre_de_points_dans_un_inter_u,NOMBRE_DE_POINTS_DANS_UN_INTER_u)));
DEFV(Local,DEFV(Int,INIT(nombre_d_inters_v,NOMBRE_D_INTERS_v)));
DEFV(Local,DEFV(Int,INIT(nombre_de_points_dans_un_inter_v,NOMBRE_DE_POINTS_DANS_UN_INTER_v)));
DEFV(Local,DEFV(Int,INIT(nombre_d_inters_w,NOMBRE_D_INTERS_w)));
DEFV(Local,DEFV(Int,INIT(nombre_de_points_dans_un_inter_w,NOMBRE_DE_POINTS_DANS_UN_INTER_w)));
                                        /* Ceci a ete introduit le 20160414133107 afin de faciliter la definition du maillage        */
                                        /* en {u,v,w} des volumes.                                                                   */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P R O J E C T I O N   D U   V O L U M E  :                                                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   GENERER_LES_TROIS_PROJECTIONS_DU_VOLUME                                                                                       \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(generer_les_trois_projections_du_volume,GENERER_LES_TROIS_PROJECTIONS_DU_VOLUME)));
                                        /* Indique si l'on visualise le volume ('FAUX') ou bien si l'on genere ses projections       */
                                        /* ('VRAI'). Ceci a ete introduit le 20050628083902 afin d'etre compatible et utilisable     */
                                        /* par 'v $xrs/project3D.11$K P.R.O.J.E.C.T.O.R'.                                            */

#define   FAIRE_LES_INITIALISATIONS_SPECIFIQUES_DE_PROJECTION_DU_VOLUME                                                                 \
                    VRAI
DEFV(Local,DEFV(Logical,INIT(faire_les_initialisations_specifiques_de_projection_du_volume
                            ,FAIRE_LES_INITIALISATIONS_SPECIFIQUES_DE_PROJECTION_DU_VOLUME
                             )
                )
     );
                                        /* Indique s'il faut executer 'INITIALISATIONS_SPECIFIQUES_DE_PROJECTION_DU_VOLUME(...)'     */
                                        /* ('VRAI') ou pas ('FAUX') ? Ceci fut introduit le 20060502142117...                        */

#define   FORCER_LES_EXTREMA_DE_u_v_w_LORS_DE_LA_PROJECTION_DU_VOLUME                                                                   \
                    VRAI
DEFV(Local,DEFV(Logical,INIT(forcer_les_extrema_de_u_v_w_lors_de_la_projection_du_volume
                            ,FORCER_LES_EXTREMA_DE_u_v_w_LORS_DE_LA_PROJECTION_DU_VOLUME
                             )
                )
     );
                                        /* Indique si l'on force les extrema de {u,v,w} via une procedure 'v $xrs/volumes.12$I Pxyz' */
                                        /* ('VRAI') ou bien si l'on utilise ceux qui ont ete donnes en parametres ('FAUX'). Ceci fut */
                                        /* introduit le 20060307104259. La valeur par defaut garantit la compatibilite anterieure... */

DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_albumProjectionFx),NOM_PIPE_Local)));
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_postfixeProjectionFx),NOM_UNDEF_VIDE)));
DEFV(Local,DEFV(Int,INIT(premiere_imageProjectionFx,PREMIERE_IMAGE)));
DEFV(Local,DEFV(Int,INIT(pas_des_imagesProjectionFx,PAS_DES_IMAGES)));
DEFV(Local,DEFV(Int,INIT(nombre_de_chiffresProjectionFx,NOMBRE_DE_CHIFFRES)));
                                        /* Definition de l'album de la projection de 'Fx'...                                         */
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_albumProjectionFy),NOM_PIPE_Local)));
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_postfixeProjectionFy),NOM_UNDEF_VIDE)));
DEFV(Local,DEFV(Int,INIT(premiere_imageProjectionFy,PREMIERE_IMAGE)));
DEFV(Local,DEFV(Int,INIT(pas_des_imagesProjectionFy,PAS_DES_IMAGES)));
DEFV(Local,DEFV(Int,INIT(nombre_de_chiffresProjectionFy,NOMBRE_DE_CHIFFRES)));
                                        /* Definition de l'album de la projection de 'Fy'...                                         */
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_albumProjectionFz),NOM_PIPE_Local)));
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_postfixeProjectionFz),NOM_UNDEF_VIDE)));
DEFV(Local,DEFV(Int,INIT(premiere_imageProjectionFz,PREMIERE_IMAGE)));
DEFV(Local,DEFV(Int,INIT(pas_des_imagesProjectionFz,PAS_DES_IMAGES)));
DEFV(Local,DEFV(Int,INIT(nombre_de_chiffresProjectionFz,NOMBRE_DE_CHIFFRES)));
                                        /* Definition de l'album de la projection de 'Fz'...                                         */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T R A N S F O R M A T I O N   D E S   C O R D O N N E E S   ' u ' ,   ' v '   E T   ' w '  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TRANSFORMER_u_v_w                                                                                                             \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(transformer_u_v_w,TRANSFORMER_u_v_w)));
#define   TROUER_u_v_w                                                                                                                  \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(trouer_u_v_w,TROUER_u_v_w)));
                                        /* Afin de pouvoir transformer {u,v,w} de facon quelconque (introduit le 20060530110751,     */
                                        /* mais inutilise a cette date...). Le "trouage" a ete desolidarise des transformations      */
                                        /* le 20060530152435....                                                                     */

#define   GESTION_TORIQUE_DE_u_v_w                                                                                                      \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(gestion_torique_de_u,GESTION_TORIQUE_DE_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(gestion_torique_de_v,GESTION_TORIQUE_DE_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(gestion_torique_de_w,GESTION_TORIQUE_DE_u_v_w)));
                                        /* Afin de savoir s'il faut proceder a une gestion "torique" des coordonnees {u,v,w}         */
                                        /* effectives, c'est-a-dire apres la transformation eventuelle des coordonnees {u,v,w}.      */
                                        /* Ceci fut introduit le 20060601132202.                                                     */

#define   TRANSFORMER_u_v_w_PERIODISER                                                                                                  \
                    VRAI
#define   TRANSFORMER_u_v_w_SYMETRISER                                                                                                  \
                    FAUX
#define   TRANSFORMER_u_v_w_PROLONGER                                                                                                   \
                    FAUX
#define   TRANSFORMER_u_v_w_NIVEAU_HORS_ALBUM                                                                                           \
                    FZERO
DEFV(Local,DEFV(Logical,INIT(transformer_u_v_w_periodiser_u,TRANSFORMER_u_v_w_PERIODISER)));
DEFV(Local,DEFV(Logical,INIT(transformer_u_v_w_periodiser_v,TRANSFORMER_u_v_w_PERIODISER)));
DEFV(Local,DEFV(Logical,INIT(transformer_u_v_w_periodiser_w,TRANSFORMER_u_v_w_PERIODISER)));
DEFV(Local,DEFV(Logical,INIT(trouer_u_v_w_periodiser_u,TRANSFORMER_u_v_w_PERIODISER)));
DEFV(Local,DEFV(Logical,INIT(trouer_u_v_w_periodiser_v,TRANSFORMER_u_v_w_PERIODISER)));
DEFV(Local,DEFV(Logical,INIT(trouer_u_v_w_periodiser_w,TRANSFORMER_u_v_w_PERIODISER)));
DEFV(Local,DEFV(Logical,INIT(transformer_u_v_w_symetriser_u,TRANSFORMER_u_v_w_SYMETRISER)));
DEFV(Local,DEFV(Logical,INIT(transformer_u_v_w_symetriser_v,TRANSFORMER_u_v_w_SYMETRISER)));
DEFV(Local,DEFV(Logical,INIT(transformer_u_v_w_symetriser_w,TRANSFORMER_u_v_w_SYMETRISER)));
DEFV(Local,DEFV(Logical,INIT(trouer_u_v_w_symetriser_u,TRANSFORMER_u_v_w_SYMETRISER)));
DEFV(Local,DEFV(Logical,INIT(trouer_u_v_w_symetriser_v,TRANSFORMER_u_v_w_SYMETRISER)));
DEFV(Local,DEFV(Logical,INIT(trouer_u_v_w_symetriser_w,TRANSFORMER_u_v_w_SYMETRISER)));
DEFV(Local,DEFV(Logical,INIT(transformer_u_v_w_prolonger_u,TRANSFORMER_u_v_w_PROLONGER)));
DEFV(Local,DEFV(Logical,INIT(transformer_u_v_w_prolonger_v,TRANSFORMER_u_v_w_PROLONGER)));
DEFV(Local,DEFV(Logical,INIT(transformer_u_v_w_prolonger_w,TRANSFORMER_u_v_w_PROLONGER)));
DEFV(Local,DEFV(Logical,INIT(trouer_u_v_w_prolonger_u,TRANSFORMER_u_v_w_PROLONGER)));
DEFV(Local,DEFV(Logical,INIT(trouer_u_v_w_prolonger_v,TRANSFORMER_u_v_w_PROLONGER)));
DEFV(Local,DEFV(Logical,INIT(trouer_u_v_w_prolonger_w,TRANSFORMER_u_v_w_PROLONGER)));
DEFV(Local,DEFV(genere_Float,INIT(transformer_u_v_w_niveau_hors_album,TRANSFORMER_u_v_w_NIVEAU_HORS_ALBUM)));
                                        /* Afin de parametrer l'acces aux transformations de {u,v,w}...                              */

DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_albumTransformation_u),NOM_PIPE_Local)));
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_postfixeTransformation_u),NOM_UNDEF_VIDE)));
DEFV(Local,DEFV(Int,INIT(premiere_imageTransformation_u,PREMIERE_IMAGE)));
DEFV(Local,DEFV(Int,INIT(pas_des_imagesTransformation_u,PAS_DES_IMAGES)));
DEFV(Local,DEFV(Int,INIT(nombre_de_chiffresTransformation_u,NOMBRE_DE_CHIFFRES)));
                                        /* Definition de l'album de la transformation de la coordonnee 'u'...                        */
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_albumTransformation_v),NOM_PIPE_Local)));
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_postfixeTransformation_v),NOM_UNDEF_VIDE)));
DEFV(Local,DEFV(Int,INIT(premiere_imageTransformation_v,PREMIERE_IMAGE)));
DEFV(Local,DEFV(Int,INIT(pas_des_imagesTransformation_v,PAS_DES_IMAGES)));
DEFV(Local,DEFV(Int,INIT(nombre_de_chiffresTransformation_v,NOMBRE_DE_CHIFFRES)));
                                        /* Definition de l'album de la transformation de la coordonnee 'v'...                        */
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_albumTransformation_w),NOM_PIPE_Local)));
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_postfixeTransformation_w),NOM_UNDEF_VIDE)));
DEFV(Local,DEFV(Int,INIT(premiere_imageTransformation_w,PREMIERE_IMAGE)));
DEFV(Local,DEFV(Int,INIT(pas_des_imagesTransformation_w,PAS_DES_IMAGES)));
DEFV(Local,DEFV(Int,INIT(nombre_de_chiffresTransformation_w,NOMBRE_DE_CHIFFRES)));
                                        /* Definition de l'album de la transformation de la coordonnee 'w'...                        */

#define   LE_VOLUME_EST_INTEGRE                                                                                                         \
                    FLOT(VRAI)
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_albumTrouage_uvw),NOM_PIPE_Local)));
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_postfixeTrouage_uvw),NOM_UNDEF_VIDE)));
DEFV(Local,DEFV(Int,INIT(premiere_imageTrouage_uvw,PREMIERE_IMAGE)));
DEFV(Local,DEFV(Int,INIT(pas_des_imagesTrouage_uvw,PAS_DES_IMAGES)));
DEFV(Local,DEFV(Int,INIT(nombre_de_chiffresTrouage_uvw,NOMBRE_DE_CHIFFRES)));
                                        /* Definitions utiles a trouer de facon quelconque le volume (introduit le 20060530110751,   */
                                        /* mais inutilise a cette date...).                                                          */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T E X T U R A G E   D U   V O L U M E  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   AXES_COORDONNEES_FERMES_OUVERTS__TEXTURAGE_VOLUMES_____COMPATIBILITE_20130220                                                 \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(AXES_COORDONNEES_FERMES_OUVERTS__texturage_volumes_____compatibilite_20130220
                            ,AXES_COORDONNEES_FERMES_OUVERTS__TEXTURAGE_VOLUMES_____COMPATIBILITE_20130220
                             )
                )
     );
                                        /* Afin d'assurer la compatibilite avec les resultats obtenus anterieurement a la date       */
                                        /* du 20130220134811...                                                                      */

#define   ACCES_AUX_ALBUMS(album,nom_d_album,postfixe,Premiere,Pas,NChiffres)                                                           \
                    Bblock                                                                                                              \
                    CALi(gdAload_album(album                                                                                            \
                                      ,nom_d_album                                                                                      \
                                      ,postfixe                                                                                         \
                                      ,Premiere                                                                                         \
                                      ,Pas                                                                                              \
                                      ,NChiffres                                                                                        \
                                      ,NOM_PIPE_Local                                                                                   \
                                      ,FAUX                                                                                             \
                                      ,UNDEF                                                                                            \
                                      ,BLANC                                                                                            \
                                      ,FAUX                                                                                             \
                                       )                                                                                                \
                         );                                                                                                             \
                    Eblock                                                                                                              \
                                        /* Acces a un album "standard" lorsque cela est necessaire et sinon, mise a 'BLANC'...       */ \
                                        /*                                                                                           */ \
                                        /* L'argument 'Inv' ('FAUX') a ete introduit le 20091125134949...                            */

#define   PERIODISER_u_v_w_TEXTURE_ET_RAYON                                                                                             \
                    VRAI
#define   SYMETRISER_u_v_w_TEXTURE_ET_RAYON                                                                                             \
                    FAUX
#define   PROLONGER_u_v_w_TEXTURE_ET_RAYON                                                                                              \
                    FAUX
#define   NIVEAU_HORS_PROJECTION_TEXTURE_ET_RAYON                                                                                       \
                    FZERO

DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_texture_ROUGE),NOM_PIPE_Local)));
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_postfixe_ROUGE),NOM_UNDEF_VIDE)));
DEFV(Local,DEFV(Int,INIT(premiere_image_ROUGE,PREMIERE_IMAGE)));
DEFV(Local,DEFV(Int,INIT(pas_des_images_ROUGE,PAS_DES_IMAGES)));
DEFV(Local,DEFV(Int,INIT(nombre_de_chiffres_ROUGE,NOMBRE_DE_CHIFFRES)));
DEFV(Local,DEFV(Logical,INIT(Album_ROUGE_periodiser_u,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_ROUGE_periodiser_v,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_ROUGE_periodiser_w,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_ROUGE_symetriser_u,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_ROUGE_symetriser_v,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_ROUGE_symetriser_w,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_ROUGE_prolonger_u,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_ROUGE_prolonger_v,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_ROUGE_prolonger_w,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(genere_Float,INIT(Album_ROUGE_niveau_hors_album,NIVEAU_HORS_PROJECTION_TEXTURE_ET_RAYON)));
                                        /* Definition de la texture 'ROUGE'...                                                       */
                                        /*                                                                                           */
                                        /* La possibilite de symetriser a ete introduite le 20050721101343...                        */
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_texture_VERTE),NOM_PIPE_Local)));
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_postfixe_VERTE),NOM_UNDEF_VIDE)));
DEFV(Local,DEFV(Int,INIT(premiere_image_VERTE,PREMIERE_IMAGE)));
DEFV(Local,DEFV(Int,INIT(pas_des_images_VERTE,PAS_DES_IMAGES)));
DEFV(Local,DEFV(Int,INIT(nombre_de_chiffres_VERTE,NOMBRE_DE_CHIFFRES)));
DEFV(Local,DEFV(Logical,INIT(Album_VERTE_periodiser_u,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_VERTE_periodiser_v,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_VERTE_periodiser_w,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_VERTE_symetriser_u,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_VERTE_symetriser_v,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_VERTE_symetriser_w,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_VERTE_prolonger_u,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_VERTE_prolonger_v,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_VERTE_prolonger_w,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(genere_Float,INIT(Album_VERTE_niveau_hors_album,NIVEAU_HORS_PROJECTION_TEXTURE_ET_RAYON)));
                                        /* Definition de la texture 'VERTE'...                                                       */
                                        /*                                                                                           */
                                        /* La possibilite de symetriser a ete introduite le 20050721101343...                        */
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_texture_BLEUE),NOM_PIPE_Local)));
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_postfixe_BLEUE),NOM_UNDEF_VIDE)));
DEFV(Local,DEFV(Int,INIT(premiere_image_BLEUE,PREMIERE_IMAGE)));
DEFV(Local,DEFV(Int,INIT(pas_des_images_BLEUE,PAS_DES_IMAGES)));
DEFV(Local,DEFV(Int,INIT(nombre_de_chiffres_BLEUE,NOMBRE_DE_CHIFFRES)));
DEFV(Local,DEFV(Logical,INIT(Album_BLEUE_periodiser_u,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_BLEUE_periodiser_v,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_BLEUE_periodiser_w,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_BLEUE_symetriser_u,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_BLEUE_symetriser_v,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_BLEUE_symetriser_w,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_BLEUE_prolonger_u,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_BLEUE_prolonger_v,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_BLEUE_prolonger_w,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(genere_Float,INIT(Album_BLEUE_niveau_hors_album,NIVEAU_HORS_PROJECTION_TEXTURE_ET_RAYON)));
                                        /* Definition de la texture 'BLEUE'...                                                       */
                                        /*                                                                                           */
                                        /* La possibilite de symetriser a ete introduite le 20050721101343...                        */

#define   PONDERATION_ROUGE_VERTE_BLEUE_POUR_dcx_dcy_dcz                                                                                \
                    FZERO
DEFV(Local,DEFV(Float,INIT(ponderation_ROUGE_pour_dcx,PONDERATION_ROUGE_VERTE_BLEUE_POUR_dcx_dcy_dcz)));
DEFV(Local,DEFV(Float,INIT(ponderation_VERTE_pour_dcy,PONDERATION_ROUGE_VERTE_BLEUE_POUR_dcx_dcy_dcz)));
DEFV(Local,DEFV(Float,INIT(ponderation_BLEUE_pour_dcz,PONDERATION_ROUGE_VERTE_BLEUE_POUR_dcx_dcy_dcz)));
                                        /* Facteurs permettant de definir la facon de colorier les spheres :                         */
                                        /*                                                                                           */
                                        /*                  0 : avec {dcx,dcy,dcz},                                                  */
                                        /*                  1 : avec {Image_ROUGE,Image_VERTE,Image_BLEUE}.                          */
                                        /*                                                                                           */
                                        /* sachant que l'on peut utiliser aussi toutes valeurs intermediaires...                     */

#define   ACCES_AUX_ALBUMS_FLOTTANTS(album,nom_d_album,postfixe,Premiere,Pas,NChiffres,VDefaut)                                         \
                    Bblock                                                                                                              \
                    CALi(gdAloadF_album(album                                                                                           \
                                       ,nom_d_album                                                                                     \
                                       ,postfixe                                                                                        \
                                       ,Premiere                                                                                        \
                                       ,Pas                                                                                             \
                                       ,NChiffres                                                                                       \
                                       ,NOM_PIPE_Local                                                                                  \
                                       ,FAUX                                                                                            \
                                       ,UNDEF                                                                                           \
                                       ,VDefaut                                                                                         \
                                       ,FAUX                                                                                            \
                                        )                                                                                               \
                         );                                                                                                             \
                    Eblock                                                                                                              \
                                        /* Acces a un album flottant lorsque cela est necessaire et sinon, initialisation...         */ \
                                        /*                                                                                           */ \
                                        /* L'argument 'Inv' ('FAUX') a ete introduit le 20091125134949...                            */

DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_RAYON),NOM_PIPE_Local)));
DEFV(Local,DEFV(CHAR,INIT(POINTERc(nom_postfixe_RAYON),NOM_UNDEF_VIDE)));
DEFV(Local,DEFV(Int,INIT(premiere_image_RAYON,PREMIERE_IMAGE)));
DEFV(Local,DEFV(Int,INIT(pas_des_images_RAYON,PAS_DES_IMAGES)));
DEFV(Local,DEFV(Int,INIT(nombre_de_chiffres_RAYON,NOMBRE_DE_CHIFFRES)));
DEFV(Local,DEFV(Logical,INIT(Album_RAYON_periodiser_u,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_RAYON_periodiser_v,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_RAYON_periodiser_w,PERIODISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_RAYON_symetriser_u,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_RAYON_symetriser_v,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_RAYON_symetriser_w,SYMETRISER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_RAYON_prolonger_u,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_RAYON_prolonger_v,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(Logical,INIT(Album_RAYON_prolonger_w,PROLONGER_u_v_w_TEXTURE_ET_RAYON)));
DEFV(Local,DEFV(genere_Float,INIT(Album_RAYON_niveau_hors_album,NIVEAU_HORS_PROJECTION_TEXTURE_ET_RAYON)));
                                        /* Nom du champ de RAYON...                                                                  */
                                        /*                                                                                           */
                                        /* La possibilite de symetriser a ete introduite le 20050721101343...                        */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P E R M U T A T I O N   E V E N T U E L L E   D E S   C O O R D O N N E E S                                                */
/*        E T   D E S   D I F F E R E N T I E L L E S  :                                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   PERMUTER_LES_COORDONNEES_ET_LES_DIFFERENTIELLES                                                                               \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(permuter_les_coordonnees_et_les_differentielles,PERMUTER_LES_COORDONNEES_ET_LES_DIFFERENTIELLES)));
                                        /* Permuter ('VRAI') ou pas les coordonnees et les differentielles ('FAUX').                 */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N   D E   M E M O R I S A T I O N   D U   P O I N T   C O U R A N T  :                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.16.I"

#TestADef RAYON_DE_VISUALISATION                                                                                                        \
                    FRA2(FRA10(FU))
DEFV(Local,DEFV(Float,INIT(rayon_de_visualisation,RAYON_DE_VISUALISATION)));
                                        /* Rayon du disque materialisant une iteration.                                              */

#define   GROSSISSEMENT_DU_RAYON_DE_VISUALISATION_AUX_INTERSECTIONS_DES_LIGNES_DE_COORDONNEES                                           \
                    FU
DEFV(Local,DEFV(Float,INIT(grossissement_du_rayon_de_visualisation_aux_intersections_des_lignes_de_coordonnees
                          ,GROSSISSEMENT_DU_RAYON_DE_VISUALISATION_AUX_INTERSECTIONS_DES_LIGNES_DE_COORDONNEES
                           )
                )
     );
                                        /* Facteur de grossissement du rayon de visualisation aux intersections des lignes de        */
                                        /* coordonnees (introduit le 20050622085736)...                                              */

#define   IGNORER_LES_POINTS_TROP_LOINTAINS                                                                                             \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(ignorer_les_points_trop_lointains,IGNORER_LES_POINTS_TROP_LOINTAINS)));
#define   DISTANCE_DES_POINTS_TROP_LOINTAINS                                                                                            \
                    F_INFINI
DEFV(Local,DEFV(Float,INIT(distance_des_points_trop_lointains,DISTANCE_DES_POINTS_TROP_LOINTAINS)));
                                        /* Introduit le 20120606143939 par symetrie avec 'v $xrs/surfaces.14$I 20120606143945'...    */

BFonctionI

DEFV(Local,DEFV(FonctionI,memorisation_1_point_06(AXf,AYf,AZf,AdXf,AdYf,AdZf)))
DEFV(Argument,DEFV(Float,AXf));
DEFV(Argument,DEFV(Float,AYf));
DEFV(Argument,DEFV(Float,AZf));
                                        /* Definition de la position {x,y,z} de l'iteration courante.                                */
DEFV(Argument,DEFV(Float,AdXf));
DEFV(Argument,DEFV(Float,AdYf));
DEFV(Argument,DEFV(Float,AdZf));
                                        /* Definition des differentielles {dx,dy,dz} de la position de l'iteration courante.         */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     INIT_ERROR;
     /*..............................................................................................................................*/
     Test(IFOU(IL_NE_FAUT_PAS(ignorer_les_points_trop_lointains)
              ,IFET(IL_FAUT(ignorer_les_points_trop_lointains)
                   ,IFLT(RdisF3D(AXf,AYf,AZf,FXorigine,FYorigine,FZorigine),distance_des_points_trop_lointains)
                    )
               )
          )
                                        /* Test introduit le 20120606143939...                                                       */
                                        /*                                                                                           */
                                        /* On notera que l'on utilise {FXorigine,FYorigine,FZorigine} et non pas, comme              */
                                        /* anterieurement au 20120607085130 {Xcentre_ESPACE,Ycentre_ESPACE,Zcentre_ESPACE} a         */
                                        /* cause de 'v $xrs/volumes.12$I CALS.memorisation_1_point_06.SOUS.cx.Xcentre_ESPACE.'.      */
          Bblock
          DEFV(Int,INIT(numero_de_l_iteration_courante,UNDEF));
                                        /* Pour des raisons de compatibilite avec 'ATTENUATION(...)'.                                */
#include  xrk/attractor.15.I"

          EGAL(nombre_d_iterations_visualisees,NOMBRE_D_ITERATIONS_VISUALISEES);
          EGAL(attenuation_de_la_premiere_iteration,ATTENUATION_DE_LA_PREMIERE_ITERATION);
          EGAL(attenuation_de_la_derniere_iteration,ATTENUATION_DE_LA_DERNIERE_ITERATION);
                                        /* Pour des raisons de compatibilite avec 'ATTENUATION(...)'.                                */

          MEMORISATION_DU_POINT_COURANT(X_DERIVEE_DANS_01(AdXf)
                                       ,Y_DERIVEE_DANS_01(AdYf)
                                       ,Z_DERIVEE_DANS_01(AdZf)
                                        );
                                        /* Memorisation du point courant en Noir et Blanc ou en Couleurs, mais uniquement s'il est   */
                                        /* visible en fonction des conditions de visualisation...                                    */
          Eblock
     ATes
          Bblock
          Eblock
     ETes

     RETU_ERROR;
     Eblock

#undef    DISTANCE_DES_POINTS_TROP_LOINTAINS
#undef    IGNORER_LES_POINTS_TROP_LOINTAINS

EFonctionI

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D O N N E E S   D E   D E R I V A T I O N   P A R T I E L L E   N U M E R I Q U E  :                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   FACTEUR_x_DE_PAS_DE_u                                                                                                         \
                    FU
#define   FACTEUR_x_DE_PAS_DE_v                                                                                                         \
                    FZERO
#define   FACTEUR_x_DE_PAS_DE_w                                                                                                         \
                    FZERO
DEFV(Local,DEFV(Float,INIT(facteur_x_de_pas_de_u,FACTEUR_x_DE_PAS_DE_u)));
DEFV(Local,DEFV(Float,INIT(facteur_x_de_pas_de_v,FACTEUR_x_DE_PAS_DE_v)));
DEFV(Local,DEFV(Float,INIT(facteur_x_de_pas_de_w,FACTEUR_x_DE_PAS_DE_w)));
                                        /* Donnees de derivation partielle numerique de 'Fx(u,v,w)' (introduit le 20040327183723).   */
#define   FACTEUR_y_DE_PAS_DE_u                                                                                                         \
                    FZERO
#define   FACTEUR_y_DE_PAS_DE_v                                                                                                         \
                    FU
#define   FACTEUR_y_DE_PAS_DE_w                                                                                                         \
                    FZERO
DEFV(Local,DEFV(Float,INIT(facteur_y_de_pas_de_u,FACTEUR_y_DE_PAS_DE_u)));
DEFV(Local,DEFV(Float,INIT(facteur_y_de_pas_de_v,FACTEUR_y_DE_PAS_DE_v)));
DEFV(Local,DEFV(Float,INIT(facteur_y_de_pas_de_w,FACTEUR_y_DE_PAS_DE_w)));
                                        /* Donnees de derivation partielle numerique de 'Fy(u,v,w)' (introduit le 20040327183723).   */
#define   FACTEUR_z_DE_PAS_DE_u                                                                                                         \
                    FZERO
#define   FACTEUR_z_DE_PAS_DE_v                                                                                                         \
                    FZERO
#define   FACTEUR_z_DE_PAS_DE_w                                                                                                         \
                    FU
DEFV(Local,DEFV(Float,INIT(facteur_z_de_pas_de_u,FACTEUR_z_DE_PAS_DE_u)));
DEFV(Local,DEFV(Float,INIT(facteur_z_de_pas_de_v,FACTEUR_z_DE_PAS_DE_v)));
DEFV(Local,DEFV(Float,INIT(facteur_z_de_pas_de_w,FACTEUR_z_DE_PAS_DE_w)));
                                        /* Donnees de derivation partielle numerique de 'Fz(u,v,w)' (introduit le 20040327183723).   */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D O N N E E S   D E   C O L O R I A G E  :                                                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   PONDERATION__x_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION__y_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION__z_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION__u_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION__v_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION__w_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION_dx_____DANS_dx                                                                                                    \
                    FU
#define   PONDERATION_dy_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION_dz_____DANS_dx                                                                                                    \
                    FZERO
DEFV(Local,DEFV(Float,INIT(ponderation_de__x_____dans_dx,PONDERATION__x_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__y_____dans_dx,PONDERATION__y_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__z_____dans_dx,PONDERATION__z_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__u_____dans_dx,PONDERATION__u_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__v_____dans_dx,PONDERATION__v_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__w_____dans_dx,PONDERATION__w_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dx_____dans_dx,PONDERATION_dx_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dy_____dans_dx,PONDERATION_dy_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dz_____dans_dx,PONDERATION_dz_____DANS_dx)));
                                        /* Donnees de coloriage 'dcx' (introduit le 20040328174406).                                 */
                                        /*                                                                                           */
                                        /* La prise en compte eventuelle des coordonnees {cx,cy,cz} a ete introduite le              */
                                        /* 20090723120025 pour 'v $xiirs/PROJ.m1.2D'...                                              */
#define   PONDERATION__x_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION__y_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION__z_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION__u_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION__v_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION__w_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION_dx_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION_dy_____DANS_dy                                                                                                    \
                    FU
#define   PONDERATION_dz_____DANS_dy                                                                                                    \
                    FZERO
DEFV(Local,DEFV(Float,INIT(ponderation_de__x_____dans_dy,PONDERATION__x_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__y_____dans_dy,PONDERATION__y_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__z_____dans_dy,PONDERATION__z_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__u_____dans_dy,PONDERATION__u_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__v_____dans_dy,PONDERATION__v_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__w_____dans_dy,PONDERATION__w_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dx_____dans_dy,PONDERATION_dx_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dy_____dans_dy,PONDERATION_dy_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dz_____dans_dy,PONDERATION_dz_____DANS_dy)));
                                        /* Donnees de coloriage 'dcy' (introduit le 20040328174406).                                 */
                                        /*                                                                                           */
                                        /* La prise en compte eventuelle des coordonnees {cx,cy,cz} a ete introduite le              */
                                        /* 20090723120025 pour 'v $xiirs/PROJ.m1.2D'...                                              */
#define   PONDERATION__x_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION__y_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION__z_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION__u_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION__v_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION__w_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION_dx_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION_dy_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION_dz_____DANS_dz                                                                                                    \
                    FU
DEFV(Local,DEFV(Float,INIT(ponderation_de__x_____dans_dz,PONDERATION__x_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__y_____dans_dz,PONDERATION__y_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__z_____dans_dz,PONDERATION__z_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__u_____dans_dz,PONDERATION__u_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__v_____dans_dz,PONDERATION__v_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__w_____dans_dz,PONDERATION__w_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dx_____dans_dz,PONDERATION_dx_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dy_____dans_dz,PONDERATION_dy_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dz_____dans_dz,PONDERATION_dz_____DANS_dz)));
                                        /* Donnees de coloriage 'dcz' (introduit le 20040328174406).                                 */
                                        /*                                                                                           */
                                        /* La prise en compte eventuelle des coordonnees {cx,cy,cz} a ete introduite le              */
                                        /* 20090723120025 pour 'v $xiirs/PROJ.m1.2D'...                                              */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N S   D E   V I S U A L I S A T I O N   E T   D ' I N T E R P O L A T I O N  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.17.I"



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.