/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C A L C U L   D U   V O L U M E   P R O P R E M E N T   D I T  :                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrs/volumes.12$I' :                                                                                            */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20040325105905).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

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

#include  xrv/champs_5.19.I"
                                        /* Pour eviter le message :                                                                  */
                                        /*                                                                                           */
                                        /*                  Static function is not referenced.                                       */
                                        /*                                                                                           */

#include  xrk/attractor.19.I"
                                        /* Validations et definition de l'espace physique.                                           */

#define   u_NORMALISEE                                                                                                                  \
                    NORM(u,minimum_de_u,maximum_de_u)
#define   v_NORMALISEE                                                                                                                  \
                    NORM(v,minimum_de_v,maximum_de_v)
#define   w_NORMALISEE                                                                                                                  \
                    NORM(w,minimum_de_w,maximum_de_w)
                                        /* Coordonnees {u,v,w} dans [0,1]...                                                         */
                                        /*                                                                                           */
                                        /* On notera que l'on ne peut utiliser {u_effectif,v_effectif,w_effectif} evidemment...      */

#define   GENERATION_DU_TEXTURAGE_DU_VOLUME(texture_x,texture_y,texture_z)                                                              \
                    Bblock                                                                                                              \
                    DEFV(Float,INIT(grossissement_courant_du_rayon_de_visualisation                                                     \
                                   ,COND(I3ET(DIVISIBLE(echantillonnage_courant_de_u,echantillonnage_de_u)                              \
                                             ,DIVISIBLE(echantillonnage_courant_de_v,echantillonnage_de_v)                              \
                                             ,DIVISIBLE(echantillonnage_courant_de_w,echantillonnage_de_w)                              \
                                              )                                                                                         \
                                        ,grossissement_du_rayon_de_visualisation_aux_intersections_des_lignes_de_coordonnees            \
                                        ,FU                                                                                             \
                                         )                                                                                              \
                                    )                                                                                                   \
                         );                                                                                                             \
                                        /* Afin de pouvoir marquer l'intersection des lignes de coordonnees...                       */ \
                                                                                                                                        \
                    BSaveModifyVariable(Logical                                                                                         \
                                       ,AXES_COORDONNEES_FERMES_OUVERTS_____compatibilite_20090929                                      \
                                       ,COND(IL_FAUT(AXES_COORDONNEES_FERMES_OUVERTS__texturage_volumes_____compatibilite_20130220)     \
                                            ,AXES_COORDONNEES_FERMES_OUVERTS_____compatibilite_20090929                                 \
                                            ,VRAI                                                                                       \
                                             )                                                                                          \
                                        );                                                                                              \
                                        /* Introduit le 20130220133200R et mis avant 'rayon_de_visualisation' le 20160331100022      */ \
                                        /* (donc avec quelques annees de retard...).                                                 */ \
                                                                                                                                        \
                    EGAL(rayon_de_visualisation                                                                                         \
                        ,MUL2(grossissement_courant_du_rayon_de_visualisation                                                           \
                             ,sgFFAload_point_coordonnees_01(Album_RAYON                                                                \
                                                            ,u_NORMALISEE                                                               \
                                                            ,v_NORMALISEE                                                               \
                                                            ,w_NORMALISEE                                                               \
                                                            ,Album_RAYON_periodiser_u                                                   \
                                                            ,Album_RAYON_periodiser_v                                                   \
                                                            ,Album_RAYON_periodiser_w                                                   \
                                                            ,Album_RAYON_symetriser_u                                                   \
                                                            ,Album_RAYON_symetriser_v                                                   \
                                                            ,Album_RAYON_symetriser_w                                                   \
                                                            ,Album_RAYON_prolonger_u                                                    \
                                                            ,Album_RAYON_prolonger_v                                                    \
                                                            ,Album_RAYON_prolonger_w                                                    \
                                                            ,Album_RAYON_niveau_hors_album                                              \
                                                            ,Album_RAYON__interpoler_bilineairement_ou_bicubiquement                    \
                                                            ,Album_RAYON__utiliser_l_interpolation_bilineaire                           \
                                                            ,Album_RAYON__eviter_les_fortes_discontinuites                              \
                                                            ,Album_RAYON__epsilon_detection_des_fortes_discontinuites                   \
                                                             )                                                                          \
                              )                                                                                                         \
                         );                                                                                                             \
                                        /* Acces au champ RAYON...                                                                   */ \
                                                                                                                                        \
                    EGAL(texture_x                                                                                                      \
                        ,sgFFAload_point_coordonnees_01(Album_ROUGE                                                                     \
                                                       ,u_NORMALISEE                                                                    \
                                                       ,v_NORMALISEE                                                                    \
                                                       ,w_NORMALISEE                                                                    \
                                                       ,Album_ROUGE_periodiser_u                                                        \
                                                       ,Album_ROUGE_periodiser_v                                                        \
                                                       ,Album_ROUGE_periodiser_w                                                        \
                                                       ,Album_ROUGE_symetriser_u                                                        \
                                                       ,Album_ROUGE_symetriser_v                                                        \
                                                       ,Album_ROUGE_symetriser_w                                                        \
                                                       ,Album_ROUGE_prolonger_u                                                         \
                                                       ,Album_ROUGE_prolonger_v                                                         \
                                                       ,Album_ROUGE_prolonger_w                                                         \
                                                       ,Album_ROUGE_niveau_hors_album                                                   \
                                                       ,Album_ROUGE__interpoler_bilineairement_ou_bicubiquement                         \
                                                       ,Album_ROUGE__utiliser_l_interpolation_bilineaire                                \
                                                       ,Album_ROUGE__eviter_les_fortes_discontinuites                                   \
                                                       ,Album_ROUGE__epsilon_detection_des_fortes_discontinuites                        \
                                                        )                                                                               \
                         );                                                                                                             \
                    EGAL(texture_y                                                                                                      \
                        ,sgFFAload_point_coordonnees_01(Album_VERTE                                                                     \
                                                       ,u_NORMALISEE                                                                    \
                                                       ,v_NORMALISEE                                                                    \
                                                       ,w_NORMALISEE                                                                    \
                                                       ,Album_VERTE_periodiser_u                                                        \
                                                       ,Album_VERTE_periodiser_v                                                        \
                                                       ,Album_VERTE_periodiser_w                                                        \
                                                       ,Album_VERTE_symetriser_u                                                        \
                                                       ,Album_VERTE_symetriser_v                                                        \
                                                       ,Album_VERTE_symetriser_w                                                        \
                                                       ,Album_VERTE_prolonger_u                                                         \
                                                       ,Album_VERTE_prolonger_v                                                         \
                                                       ,Album_VERTE_prolonger_w                                                         \
                                                       ,Album_VERTE_niveau_hors_album                                                   \
                                                       ,Album_VERTE__interpoler_bilineairement_ou_bicubiquement                         \
                                                       ,Album_VERTE__utiliser_l_interpolation_bilineaire                                \
                                                       ,Album_VERTE__eviter_les_fortes_discontinuites                                   \
                                                       ,Album_VERTE__epsilon_detection_des_fortes_discontinuites                        \
                                                        )                                                                               \
                         );                                                                                                             \
                    EGAL(texture_z                                                                                                      \
                        ,sgFFAload_point_coordonnees_01(Album_BLEUE                                                                     \
                                                       ,u_NORMALISEE                                                                    \
                                                       ,v_NORMALISEE                                                                    \
                                                       ,w_NORMALISEE                                                                    \
                                                       ,Album_BLEUE_periodiser_u                                                        \
                                                       ,Album_BLEUE_periodiser_v                                                        \
                                                       ,Album_BLEUE_periodiser_w                                                        \
                                                       ,Album_BLEUE_symetriser_u                                                        \
                                                       ,Album_BLEUE_symetriser_v                                                        \
                                                       ,Album_BLEUE_symetriser_w                                                        \
                                                       ,Album_BLEUE_prolonger_u                                                         \
                                                       ,Album_BLEUE_prolonger_v                                                         \
                                                       ,Album_BLEUE_prolonger_w                                                         \
                                                       ,Album_BLEUE_niveau_hors_album                                                   \
                                                       ,Album_BLEUE__interpoler_bilineairement_ou_bicubiquement                         \
                                                       ,Album_BLEUE__utiliser_l_interpolation_bilineaire                                \
                                                       ,Album_BLEUE__eviter_les_fortes_discontinuites                                   \
                                                       ,Album_BLEUE__epsilon_detection_des_fortes_discontinuites                        \
                                                        )                                                                               \
                         );                                                                                                             \
                                        /* Acces aux champs {ROUGE,VERTE,BLEUE}.                                                     */ \
                                                                                                                                        \
                    ESaveModifyVariable(Logical                                                                                         \
                                       ,AXES_COORDONNEES_FERMES_OUVERTS_____compatibilite_20090929                                      \
                                        );                                                                                              \
                                        /* Introduit le 20130220133200...                                                            */ \
                    Eblock                                                                                                              \
                                        /* Calcul du texturage du volume au point courant {u,v,w} associe au point {X,Y,Z}. Ceci     */ \
                                        /* fut introduit le 20050621174058 "a vide" et complete le 20050622093052...                 */
#define   GtV(texture_x,texture_y,texture_z)                                                                                            \
                    Bblock                                                                                                              \
                    GENERATION_DU_TEXTURAGE_DU_VOLUME(texture_x,texture_y,texture_z);                                                   \
                    Eblock                                                                                                              \
                                        /* Synonyme de 'GENERATION_DU_TEXTURAGE_DU_VOLUME(...)' destine a raccourcir la longueur     */ \
                                        /* de certaines lignes qui vont suivre...                                                    */

#define   PERMUTATION_EVENTUELLE_DES_COORDONNEES_ET_DES_DIFFERENTIELLES                                                                 \
                    Bblock                                                                                                              \
                    Test(IL_FAUT(permuter_les_coordonnees_et_les_differentielles))                                                      \
                         Bblock                                                                                                         \
                         fSWAP(cx,dcx);                                                                                                 \
                         fSWAP(cy,dcy);                                                                                                 \
                         fSWAP(cz,dcz);                                                                                                 \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Permutation eventuelle des coordonnees et des differentielles. Ce dispositif a ete        */ \
                                        /* introduit le 20050623085804 "pour voir ce que cela donne"...                              */

#define   MINIMUM_DE_u_LORS_D_UNE_PROJECTION                                                                                            \
                    COND(IL_FAUT(forcer_les_extrema_de_u_v_w_lors_de_la_projection_du_volume)                                           \
                        ,minimum_de_u                                                                                                   \
                        ,sauvegarde_de_minimum_de_u                                                                                     \
                         )
#define   MAXIMUM_DE_u_LORS_D_UNE_PROJECTION                                                                                            \
                    ADD2(COND(IL_FAUT(forcer_les_extrema_de_u_v_w_lors_de_la_projection_du_volume)                                      \
                             ,maximum_de_u                                                                                              \
                             ,sauvegarde_de_maximum_de_u                                                                                \
                              )                                                                                                         \
                        ,MOIT(pas_de_u)                                                                                                 \
                         )
#define   MINIMUM_DE_v_LORS_D_UNE_PROJECTION                                                                                            \
                    COND(IL_FAUT(forcer_les_extrema_de_u_v_w_lors_de_la_projection_du_volume)                                           \
                        ,minimum_de_v                                                                                                   \
                        ,sauvegarde_de_minimum_de_v                                                                                     \
                         )
#define   MAXIMUM_DE_v_LORS_D_UNE_PROJECTION                                                                                            \
                    ADD2(COND(IL_FAUT(forcer_les_extrema_de_u_v_w_lors_de_la_projection_du_volume)                                      \
                             ,maximum_de_v                                                                                              \
                             ,sauvegarde_de_maximum_de_v                                                                                \
                              )                                                                                                         \
                        ,MOIT(pas_de_v)                                                                                                 \
                         )
#define   MINIMUM_DE_w_LORS_D_UNE_PROJECTION                                                                                            \
                    COND(IL_FAUT(forcer_les_extrema_de_u_v_w_lors_de_la_projection_du_volume)                                           \
                        ,minimum_de_w                                                                                                   \
                        ,sauvegarde_de_minimum_de_w                                                                                     \
                         )
#define   MAXIMUM_DE_w_LORS_D_UNE_PROJECTION                                                                                            \
                    ADD2(COND(IL_FAUT(forcer_les_extrema_de_u_v_w_lors_de_la_projection_du_volume)                                      \
                             ,maximum_de_w                                                                                              \
                             ,sauvegarde_de_maximum_de_w                                                                                \
                              )                                                                                                         \
                        ,MOIT(pas_de_w)                                                                                                 \
                         )
                                        /* Introduit le 20050908134533...                                                            */

#define   GENERATION_DU_POINT_uvw_COURANT(Fx,Fy,Fz,calcul_eventuel_point_courant,sequence_de_generation,Fu,Fv,Fw,Tuvw)                  \
                                        /* Introduit le 20221221143907...                                                            */ \
                    Bblock                                                                                                              \
                    begin_nouveau_block                                                                                                 \
                         Bblock                                                                                                         \
                         begin_nouveau_block                                                                                            \
                              Bblock                                                                                                    \
                              begin_nouveau_block                                                                                       \
                                   Bblock                                                                                               \
                                        /* Je note le 20221222080857 que cette suite de 'Bblock's est destinee a ne pas changer      */ \
                                        /* la tabulation de ce qui suit...                                                           */ \
                                   DEFV(Float,INIT(u_effectif,Fu(u)));                                                                  \
                                   DEFV(Float,INIT(d_u_effectif,d_u));                                                                  \
                                        /* Je note le 20060531104200 (avec un peu de retard que les {u,v,w} effectifs ne peuvent     */ \
                                        /* etre evalues que lorsque les {u,v,w} "de base" sont connus, c'est-a-dire a l'interieur de */ \
                                        /* toutes les boucles 'DoIn(...)' imbriquees, d'ou de plus l'introduction des 'FDoIn(...)'   */ \
                                        /* le 20060602135618 par precaution...                                                       */ \
                                   DEFV(Float,INIT(v_effectif,Fv(v)));                                                                  \
                                   DEFV(Float,INIT(d_v_effectif,d_v));                                                                  \
                                        /* Je note le 20060531104200 (avec un peu de retard que les {u,v,w} effectifs ne peuvent     */ \
                                        /* etre evalues que lorsque les {u,v,w} "de base" sont connus, c'est-a-dire a l'interieur de */ \
                                        /* toutes les boucles 'DoIn(...)' imbriquees, d'ou de plus l'introduction des 'FDoIn(...)'   */ \
                                        /* le 20060602135618 par precaution...                                                       */ \
                                   DEFV(Float,INIT(w_effectif,Fw(w)));                                                                  \
                                   DEFV(Float,INIT(d_w_effectif,d_w));                                                                  \
                                                                                                                                        \
                                   EGAL(u_effectif                                                                                      \
                                       ,COND(IL_NE_FAUT_PAS(gestion_torique_de_u)                                                       \
                                            ,NEUT(u_effectif)                                                                           \
                                            ,MODF(u_effectif,minimum_de_u_effectif,maximum_de_u_effectif)                               \
                                             )                                                                                          \
                                        );                                                                                              \
                                   EGAL(v_effectif                                                                                      \
                                       ,COND(IL_NE_FAUT_PAS(gestion_torique_de_v)                                                       \
                                            ,NEUT(v_effectif)                                                                           \
                                            ,MODF(v_effectif,minimum_de_v_effectif,maximum_de_v_effectif)                               \
                                             )                                                                                          \
                                        );                                                                                              \
                                   EGAL(w_effectif                                                                                      \
                                       ,COND(IL_NE_FAUT_PAS(gestion_torique_de_w)                                                       \
                                            ,NEUT(w_effectif)                                                                           \
                                            ,MODF(w_effectif,minimum_de_w_effectif,maximum_de_w_effectif)                               \
                                             )                                                                                          \
                                        );                                                                                              \
                                        /* La gestion "torique" des coordonnees {u,v,w} a ete introduite le 20060601133046...        */ \
                                                                                                                                        \
                                   Test(IFET(I3ET(IFINff(u_effectif,minimum_de_u_effectif,maximum_de_u_effectif)                        \
                                                 ,IFINff(v_effectif,minimum_de_v_effectif,maximum_de_v_effectif)                        \
                                                 ,IFINff(w_effectif,minimum_de_w_effectif,maximum_de_w_effectif)                        \
                                                  )                                                                                     \
                                        /* Ce test d'inclusion a ete introduit le 20060530095647...                                  */ \
                                            ,Tuvw                                                                                       \
                                             )                                                                                          \
                                        /* Ce test de "trouage" a ete introduit le 20060530133706...                                 */ \
                                        )                                                                                               \
                                        Bblock                                                                                          \
                                        Test(I4OU(I3ET(DIVISIBLE(echantillonnage_courant_de_u,echantillonnage_de_u)                     \
                                                      ,DIVISIBLE(echantillonnage_courant_de_v,echantillonnage_de_v)                     \
                                                      ,DIVISIBLE(echantillonnage_courant_de_w,echantillonnage_de_w)                     \
                                                       )                                                                                \
                                                 ,I3ET(NON_DIVISIBLE(echantillonnage_courant_de_u,echantillonnage_de_u)                 \
                                                      ,DIVISIBLE(echantillonnage_courant_de_v,echantillonnage_de_v)                     \
                                                      ,DIVISIBLE(echantillonnage_courant_de_w,echantillonnage_de_w)                     \
                                                       )                                                                                \
                                                 ,I3ET(DIVISIBLE(echantillonnage_courant_de_u,echantillonnage_de_u)                     \
                                                      ,NON_DIVISIBLE(echantillonnage_courant_de_v,echantillonnage_de_v)                 \
                                                      ,DIVISIBLE(echantillonnage_courant_de_w,echantillonnage_de_w)                     \
                                                       )                                                                                \
                                                 ,I3ET(DIVISIBLE(echantillonnage_courant_de_u,echantillonnage_de_u)                     \
                                                      ,DIVISIBLE(echantillonnage_courant_de_v,echantillonnage_de_v)                     \
                                                      ,NON_DIVISIBLE(echantillonnage_courant_de_w,echantillonnage_de_w)                 \
                                                       )                                                                                \
                                                  )                                                                                     \
                                             )                                                                                          \
                                             Bblock                                                                                     \
                                             EGAL(cx,Fx(u_effectif,v_effectif,w_effectif));                                             \
                                             EGAL(cy,Fy(u_effectif,v_effectif,w_effectif));                                             \
                                             EGAL(cz,Fz(u_effectif,v_effectif,w_effectif));                                             \
                                        /* Generation du point courant du volume...                                                  */ \
                                        /*                                                                                           */ \
                                        /* ATTENTION : les trois fonctions 'F?(u,v,w)' sont en general des fonctions projetees par   */ \
                                        /* les operateurs 'PROJECTION_PARALLELE_01_?D_3D_?(...)' et sont donc tridimensionnelles     */ \
                                        /* ('v $xrs/Mobius3D.11$I DERIVATION_PARTIELLE' par exemple). Cela implique, par exemple,    */ \
                                        /* qu'une modification des parametres 'coefficient_de_projection_parallele_01_?D_3D_x?_?'    */ \
                                        /* modifie leur valeur et donc les valeurs des differentielles qui sont calculees ci-apres   */ \
                                        /* eventuellement pour le coloriage...                                                       */ \
                                        /*                                                                                           */ \
                                        /* On notera qu'avant le 20050628123846, le calcul de {cx,cy,cz} figurait explicitement a    */ \
                                        /* l'interieur des differentes 'sequence_de_generation'. Mais avec l'introduction de la      */ \
                                        /* generation eventuelle des trois "projections" d'une surface, il est plus astucieux et     */ \
                                        /* economique de faire cela avant l'appel de 'sequence_de_generation'...                     */ \
                                                                                                                                        \
                                             Test(IL_FAUT(generer_les_trois_projections_du_volume))                                     \
                                        /* Cas ou il faut generer les trois projections (introduit le 20050628092016) :              */ \
                                                  Bblock                                                                                \
                                                  AstoreF_point_valide(cx                                                               \
                                                                      ,Projection_de_Fx                                                 \
                                                                      ,X_de_projection                                                  \
                                                                      ,Y_de_projection                                                  \
                                                                      ,Z_de_projection                                                  \
                                                                       );                                                               \
                                                  AstoreF_point_valide(cy                                                               \
                                                                      ,Projection_de_Fy                                                 \
                                                                      ,X_de_projection                                                  \
                                                                      ,Y_de_projection                                                  \
                                                                      ,Z_de_projection                                                  \
                                                                       );                                                               \
                                                  AstoreF_point_valide(cz                                                               \
                                                                      ,Projection_de_Fz                                                 \
                                                                      ,X_de_projection                                                  \
                                                                      ,Y_de_projection                                                  \
                                                                      ,Z_de_projection                                                  \
                                                                       );                                                               \
                                        /* Generation des trois projections d'une surface tel que cela est defini et exploite        */ \
                                        /* dans 'v $xrs/project3D.11$K P.R.O.J.E.C.T.O.R'. Ceci a ete introduit le 20050628092016.   */ \
                                        /*                                                                                           */ \
                                        /* L'utilisation des coordonnees entieres {X_de_projection,Y_de_projection,Z_de_projection}  */ \
                                        /* a ete introduite le 20050908130630 pour eviter les "trous" dans les matrices de           */ \
                                        /* projection...                                                                             */ \
                                                                                                                                        \
                                                  AstoreI_point_valide(ADD2(AloadI_point(validation_de_la_projection                    \
                                                                                        ,X_de_projection                                \
                                                                                        ,Y_de_projection                                \
                                                                                        ,Z_de_projection                                \
                                                                                         )                                              \
                                                                           ,I                                                           \
                                                                            )                                                           \
                                                                      ,validation_de_la_projection                                      \
                                                                      ,X_de_projection                                                  \
                                                                      ,Y_de_projection                                                  \
                                                                      ,Z_de_projection                                                  \
                                                                       );                                                               \
                                        /* Marquage de tous les points {u,v} possibles...                                            */ \
                                                  Eblock                                                                                \
                                             ATes                                                                                       \
                                                  Bblock                                                                                \
                                        /* Cas ou il faut visualiser le volume :                                                     */ \
                                                  BLOC(sequence_de_generation);                                                         \
                                        /* Generation specifique de l'image du volume pour le point courant {u,v,w}.                 */ \
                                                  Eblock                                                                                \
                                             ETes                                                                                       \
                                             Eblock                                                                                     \
                                        ATes                                                                                            \
                                             Bblock                                                                                     \
                                             Eblock                                                                                     \
                                        ETes                                                                                            \
                                        Eblock                                                                                          \
                                   ATes                                                                                                 \
                                        Bblock                                                                                          \
                                        Eblock                                                                                          \
                                   ETes                                                                                                 \
                                   Eblock                                                                                               \
                              end_nouveau_block                                                                                         \
                              Eblock                                                                                                    \
                         end_nouveau_block                                                                                              \
                         Eblock                                                                                                         \
                    end_nouveau_block                                                                                                   \
                    Eblock

#define   index_definition_arbitraire                                                                                                   \
                    index_de_definition_arbitraire_des_coordonnees_u_v_w                                                                \
                                        /* Afin de raccourcir certaines des lignes qui suivent...                                    */

#define   gGENERATION_D_UNE_IMAGE_DU_VOLUME(Fx,Fy,Fz,calcul_eventuel_point_courant,sequence_de_generation,Fu,Fv,Fw,Tuvw)                \
                                        /* Les quatre fonctions {Fu,Fv,Fw,Tuvw} furent introduites le 20060530133706...              */ \
                    Bblock                                                                                                              \
                    BDEFV(albumI,validation_de_la_projection);                                                                          \
                                        /* Dispositif de validation de la projection introduit le 20050909142343...                  */ \
                    DEFV(Int,INIT(X_de_projection,Xmin));                                                                               \
                                        /* Pour indexer les trois matrices de projection...                                          */ \
                                                                                                                                        \
                    DEFV(Float,INIT(differentielle_ROUGE,FLOT__UNDEF));                                                                 \
                    DEFV(Float,INIT(differentielle_VERTE,FLOT__UNDEF));                                                                 \
                    DEFV(Float,INIT(differentielle_BLEUE,FLOT__UNDEF));                                                                 \
                    DEFV(Logical,INIT(utiliser_les_differentielles_ROUGE_VERTE_BLEUE,FAUX));                                            \
                                        /* Introduit le 20230124142028 car, en effet, les trois differentielles utiles               */ \
                                        /* {differentielle_x,differentielle_y,differentielle_z} n'existent pas ici, etant            */ \
                                        /* definies localement dans 'GENERATION_D_UNE_IMAGE_DU_VOLUME_AVEC_DIFFERENCES____(...)'     */ \
                                                                                                                                        \
                    DEFV(Float,INIT(minimum_de_u_effectif                                                                               \
                                   ,COND(IL_FAUT(generer_les_trois_projections_du_volume)                                               \
                                        ,MINIMUM_DE_u_LORS_D_UNE_PROJECTION                                                             \
                                        ,minimum_de_u                                                                                   \
                                         )                                                                                              \
                                    )                                                                                                   \
                         );                                                                                                             \
                    DEFV(Float,INIT(maximum_de_u_effectif                                                                               \
                                   ,ADD2(COND(IL_FAUT(generer_les_trois_projections_du_volume)                                          \
                                             ,MAXIMUM_DE_u_LORS_D_UNE_PROJECTION                                                        \
                                             ,maximum_de_u                                                                              \
                                              )                                                                                         \
                                        ,COND(IL_FAUT(majoration_du_maximum_des_coordonnees_u_v_w_____compatibilite_20160414)           \
                                             ,FZERO                                                                                     \
                                             ,epsilon_de_majoration_du_maximum_des_coordonnees_u_v_w                                    \
                                              )                                                                                         \
                                         )                                                                                              \
                                    )                                                                                                   \
                         );                                                                                                             \
                    DEFV(Float,INIT(minimum_de_v_effectif                                                                               \
                                   ,COND(IL_FAUT(generer_les_trois_projections_du_volume)                                               \
                                        ,MINIMUM_DE_v_LORS_D_UNE_PROJECTION                                                             \
                                        ,minimum_de_v                                                                                   \
                                         )                                                                                              \
                                    )                                                                                                   \
                         );                                                                                                             \
                    DEFV(Float,INIT(maximum_de_v_effectif                                                                               \
                                   ,ADD2(COND(IL_FAUT(generer_les_trois_projections_du_volume)                                          \
                                             ,MAXIMUM_DE_v_LORS_D_UNE_PROJECTION                                                        \
                                             ,maximum_de_v                                                                              \
                                              )                                                                                         \
                                        ,COND(IL_FAUT(majoration_du_maximum_des_coordonnees_u_v_w_____compatibilite_20160414)           \
                                             ,FZERO                                                                                     \
                                             ,epsilon_de_majoration_du_maximum_des_coordonnees_u_v_w                                    \
                                              )                                                                                         \
                                         )                                                                                              \
                                    )                                                                                                   \
                         );                                                                                                             \
                    DEFV(Float,INIT(minimum_de_w_effectif                                                                               \
                                   ,COND(IL_FAUT(generer_les_trois_projections_du_volume)                                               \
                                        ,MINIMUM_DE_w_LORS_D_UNE_PROJECTION                                                             \
                                        ,minimum_de_w                                                                                   \
                                         )                                                                                              \
                                    )                                                                                                   \
                         );                                                                                                             \
                    DEFV(Float,INIT(maximum_de_w_effectif                                                                               \
                                   ,ADD2(COND(IL_FAUT(generer_les_trois_projections_du_volume)                                          \
                                             ,MAXIMUM_DE_w_LORS_D_UNE_PROJECTION                                                        \
                                             ,maximum_de_w                                                                              \
                                              )                                                                                         \
                                        ,COND(IL_FAUT(majoration_du_maximum_des_coordonnees_u_v_w_____compatibilite_20160414)           \
                                             ,FZERO                                                                                     \
                                             ,epsilon_de_majoration_du_maximum_des_coordonnees_u_v_w                                    \
                                              )                                                                                         \
                                         )                                                                                              \
                                    )                                                                                                   \
                         );                                                                                                             \
                                        /* Ceci a ete introduit le 20050908132631 afin de prevenir le phenomene decrit dans          */ \
                                        /* 'v $xrs/surfaces.12$I 20050908130630'...                                                  */ \
                                        /*                                                                                           */ \
                                        /* Les 'minimum_de_?_effectif' ont ete introduits le 20060307102027 par symetrie avec        */ \
                                        /* 'v $xrs/surfaces.12$I minimum_de_._effectif'...                                           */ \
                                        /*                                                                                           */ \
                                        /* La modification du 20160414131603 vient de l'observation que les 'FDoIn(...)' concernant  */ \
                                        /* {u,v} qui vont suivre n'atteignent pas toujours le maximum. Ainsi, par exemple :          */ \
                                        /*                                                                                           */ \
                                        /*                  FDoIn(uv,-0.5,+0.5,0.050) ==> 'uv' atteint +0.5                          */ \
                                        /*                                                                                           */ \
                                        /* alors que :                                                                               */ \
                                        /*                                                                                           */ \
                                        /*                  FDoIn(uv,-0.5,+0.5,0.025) ==> 'uv' atteint +0.475000                     */ \
                                        /*                                                                                           */ \
                                        /* (voir a ce propos 'v $xtc/test_for_flottant.01$c').                                       */ \
                                        /* Le 20160414145625 fut introduit l'epsilon. On notera au passage qu'il est different de    */ \
                                        /* de celui de 'v $xrs/surfaces.14$I gEPSILON'...                                            */ \
                    DEFV(Float,INIT(pas_de_u_effectif,DIVI(pas_de_u,diviseur_du_pas_de_u)));                                            \
                    DEFV(Float,INIT(pas_de_v_effectif,DIVI(pas_de_v,diviseur_du_pas_de_v)));                                            \
                    DEFV(Float,INIT(pas_de_w_effectif,DIVI(pas_de_w,diviseur_du_pas_de_w)));                                            \
                                        /* Afin faciliter l'utilisation de l'echantillonnage, facilite introduite le 20021009100745. */ \
                                                                                                                                        \
                    DEFV(Int,INIT(echantillonnage_courant_de_u,translation_de_l_echantillonnage_de_u));                                 \
                                        /* Afin de gerer l'echantillonnage de 'u'.                                                   */ \
                                        /*                                                                                           */ \
                                        /* La translation a ete introduite le 20040330113801 afin de permettre, par sa variation     */ \
                                        /* (0, 1, 2,...), de faire glisser la grille d'echantillonnage dans le volume...             */ \
                                                                                                                                        \
                    DEFV(Float,INIT(pas_u_de_differentiation,FLOT__UNDEF));                                                             \
                    DEFV(Float,INIT(pas_v_de_differentiation,FLOT__UNDEF));                                                             \
                    DEFV(Float,INIT(pas_w_de_differentiation,FLOT__UNDEF));                                                             \
                    EGAL(pas_u_de_differentiation                                                                                       \
                        ,DIVI(COND(EST_VRAI(le_pas_de_u_de_differentiation_est_homothetique),pas_de_u_effectif,pas_de_u)                \
                             ,diviseur_de_differentiation_de_u                                                                          \
                              )                                                                                                         \
                         );                                                                                                             \
                    EGAL(pas_v_de_differentiation                                                                                       \
                        ,DIVI(COND(EST_VRAI(le_pas_de_v_de_differentiation_est_homothetique),pas_de_v_effectif,pas_de_v)                \
                             ,diviseur_de_differentiation_de_v                                                                          \
                              )                                                                                                         \
                         );                                                                                                             \
                    EGAL(pas_w_de_differentiation                                                                                       \
                        ,DIVI(COND(EST_VRAI(le_pas_de_w_de_differentiation_est_homothetique),pas_de_w_effectif,pas_de_w)                \
                             ,diviseur_de_differentiation_de_w                                                                          \
                              )                                                                                                         \
                         );                                                                                                             \
                                        /* Pour faire les differentiations (introduit le 20060505162530)...                          */ \
                                                                                                                                        \
                    Test(IL_FAUT(generer_les_trois_projections_du_volume))                                                              \
                                        /* Cas ou il faut generer les trois projections (introduit le 20050909142343) :              */ \
                         Bblock                                                                                                         \
                         begin_album                                                                                                    \
                              Bblock                                                                                                    \
                              AstoreI_point(ZERO,validation_de_la_projection,X,Y,Z);                                                    \
                                        /* A priori aucun point ne va etre atteint ci-apres...                                       */ \
                              Eblock                                                                                                    \
                         end_album                                                                                                      \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IL_FAUT(definir_arbitrairement_les_coordonnees_u_v_w))                                                         \
                                        /* Possibilite introduite le 20221221143907...                                               */ \
                         Bblock                                                                                                         \
                         DEFV(Int,INIT(X_de_projection,Xmin));                                                                          \
                         DEFV(Int,INIT(Y_de_projection,Ymin));                                                                          \
                         DEFV(Int,INIT(Z_de_projection,Zmin));                                                                          \
                                        /* Ne servent qu'a permettre 'GENERATION_DU_POINT_uvw_COURANT(...)' ci-apres...              */ \
                                                                                                                                        \
                         DEFV(Int,INIT(echantillonnage_courant_de_u,translation_de_l_echantillonnage_de_u));                            \
                         DEFV(Int,INIT(echantillonnage_courant_de_v,translation_de_l_echantillonnage_de_v));                            \
                         DEFV(Int,INIT(echantillonnage_courant_de_w,translation_de_l_echantillonnage_de_w));                            \
                                        /* Ne servent qu'a permettre 'GENERATION_DU_POINT_uvw_COURANT(...)' ci-apres...              */ \
                                                                                                                                        \
                         DEFV(Logical,INIT(recuperer_les_coordonnees_u_v_w,VRAI));                                                      \
                                                                                                                                        \
                         Test(IL_FAUT(generer_les_trois_projections_du_volume))                                                         \
                                        /* Test introduit le 20221222080857...                                                       */ \
                              Bblock                                                                                                    \
                              PRINT_ATTENTION("pas de projection du volume lorsque les coordonnees {u,v,w} sont arbitraires");          \
                              EGAL(generer_les_trois_projections_du_volume,FAUX);                                                       \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         Tant(IL_FAUT(recuperer_les_coordonnees_u_v_w))                                                                 \
                              Bblock                                                                                                    \
                              DEFV(Float,INIT(u,ELEMENT_DU_FICHIER_COORDONNEES_u(index_definition_arbitraire)));                        \
                              DEFV(Float,INIT(v,ELEMENT_DU_FICHIER_COORDONNEES_v(index_definition_arbitraire)));                        \
                              DEFV(Float,INIT(w,ELEMENT_DU_FICHIER_COORDONNEES_w(index_definition_arbitraire)));                        \
                                                                                                                                        \
                              Test(I3ET(IFNE(u,separateur_de_definition_arbitraire_des_coordonnees_u_v_w)                               \
                                       ,IFNE(v,separateur_de_definition_arbitraire_des_coordonnees_u_v_w)                               \
                                       ,IFNE(w,separateur_de_definition_arbitraire_des_coordonnees_u_v_w)                               \
                                        )                                                                                               \
                                   )                                                                                                    \
                                        /* Test introduit le 20230217102709...                                                       */ \
                                   Bblock                                                                                               \
                                   Test(I3ET(IFNE_chaine(fichier_des_coordonnees_ROUGE,NOM_PIPE_Local)                                  \
                                            ,IFNE_chaine(fichier_des_coordonnees_VERTE,NOM_PIPE_Local)                                  \
                                            ,IFNE_chaine(fichier_des_coordonnees_BLEUE,NOM_PIPE_Local)                                  \
                                             )                                                                                          \
                                        )                                                                                               \
                                        /* Possibilite introduite le 20230124133820...                                               */ \
                                        Bblock                                                                                          \
                                        EGAL(differentielle_ROUGE,ELEMENT_DU_FICHIER_COORDONNEES_ROUGE(index_definition_arbitraire));   \
                                        EGAL(differentielle_VERTE,ELEMENT_DU_FICHIER_COORDONNEES_VERTE(index_definition_arbitraire));   \
                                        EGAL(differentielle_BLEUE,ELEMENT_DU_FICHIER_COORDONNEES_BLEUE(index_definition_arbitraire));   \
                                        /* Les initialisations de 'GENERATION_D_UNE_IMAGE_DU_VOLUME_AVEC_DIFFERENCES____(...)'       */ \
                                        /* sont donc ici "oubliees"...                                                               */ \
                                                                                                                                        \
                                        EGAL(utiliser_les_differentielles_ROUGE_VERTE_BLEUE,VRAI);                                      \
                                        /* Afin de pouvoir definir {differentielle_x,differentielle_y,differentielle_z}              */ \
                                        /* dans 'GENERATION_D_UNE_IMAGE_DU_VOLUME_AVEC_DIFFERENCES____(...)'                         */ \
                                        Eblock                                                                                          \
                                   ATes                                                                                                 \
                                        Bblock                                                                                          \
                                        Eblock                                                                                          \
                                   ETes                                                                                                 \
                                                                                                                                        \
                                   Test(IFNE_chaine(fichier_des_coordonnees_RAYON,NOM_PIPE_Local))                                      \
                                        Bblock                                                                                          \
                                        EGAL(rayon_de_visualisation,ELEMENT_DU_FICHIER_COORDONNEES_RAYON(index_definition_arbitraire)); \
                                        /* Introduit le 20240517140744...                                                            */ \
                                        Eblock                                                                                          \
                                   ATes                                                                                                 \
                                        Bblock                                                                                          \
                                        Eblock                                                                                          \
                                   ETes                                                                                                 \
                                                                                                                                        \
                                   Test(IFNE_chaine(fichier_des_coordonnees_MASSE,NOM_PIPE_Local))                                      \
                                        Bblock                                                                                          \
                                        EGAL(masse_de_la_sphere_courante                                                                \
                                            ,ELEMENT_DU_FICHIER_COORDONNEES_MASSE(index_definition_arbitraire)                          \
                                             );                                                                                         \
                                        /* Introduit le 20240519090904...                                                            */ \
                                        Eblock                                                                                          \
                                   ATes                                                                                                 \
                                        Bblock                                                                                          \
                                        Eblock                                                                                          \
                                   ETes                                                                                                 \
                                                                                                                                        \
                                   GENERATION_DU_POINT_uvw_COURANT(Fx,Fy,Fz                                                             \
                                                                  ,calcul_eventuel_point_courant                                        \
                                                                  ,sequence_de_generation                                               \
                                                                  ,Fu,Fv,Fw                                                             \
                                                                  ,Tuvw                                                                 \
                                                                   );                                                                   \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   EGAL(recuperer_les_coordonnees_u_v_w,FAUX);                                                          \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                                                                                                                                        \
                              INCR(index_definition_arbitraire,pas_de_parcours_d_un_fichier);                                           \
                                                                                                                                        \
                              Test(IFGT(index_definition_arbitraire,DERNIER_ELEMENT_D_UN_FICHIER))                                      \
                                   Bblock                                                                                               \
                                   EGAL(index_definition_arbitraire,PREMIER_ELEMENT_D_UN_FICHIER);                                      \
                                   EGAL(recuperer_les_coordonnees_u_v_w,FAUX);                                                          \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                              Eblock                                                                                                    \
                         ETan                                                                                                           \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         FDoIn(u,minimum_de_u_effectif,maximum_de_u_effectif,pas_de_u_effectif)                                         \
                                        /* Passage de 'DoIn(...)' a 'FDoIn(...)' le 20060602135618...                                */ \
                              Bblock                                                                                                    \
                              DEFV(Int,INIT(Y_de_projection,Ymin));                                                                     \
                                        /* Pour indexer les trois matrices de projection...                                          */ \
                              DEFV(Int,INIT(echantillonnage_courant_de_v,translation_de_l_echantillonnage_de_v));                       \
                                        /* Afin de gerer l'echantillonnage de 'v'.                                                   */ \
                                        /*                                                                                           */ \
                                        /* La translation a ete introduite le 20040330113801 afin de permettre, par sa variation     */ \
                                        /* (0, 1, 2,...), de faire glisser la grille d'echantillonnage dans le volume...             */ \
                                                                                                                                        \
                              FDoIn(v,minimum_de_v_effectif,maximum_de_v_effectif,pas_de_v_effectif)                                    \
                                        /* Passage de 'DoIn(...)' a 'FDoIn(...)' le 20060602135618...                                */ \
                                   Bblock                                                                                               \
                                   DEFV(Int,INIT(Z_de_projection,Zmin));                                                                \
                                        /* Pour indexer les trois matrices de projection...                                          */ \
                                   DEFV(Int,INIT(echantillonnage_courant_de_w,translation_de_l_echantillonnage_de_w));                  \
                                        /* Afin de gerer l'echantillonnage de 'w'.                                                   */ \
                                        /*                                                                                           */ \
                                        /* La translation a ete introduite le 20040330113801 afin de permettre, par sa variation     */ \
                                        /* (0, 1, 2,...), de faire glisser la grille d'echantillonnage dans le volume...             */ \
                                                                                                                                        \
                                   FDoIn(w,minimum_de_w_effectif,maximum_de_w_effectif,pas_de_w_effectif)                               \
                                        /* Passage de 'DoIn(...)' a 'FDoIn(...)' le 20060602135618...                                */ \
                                        Bblock                                                                                          \
                                        GENERATION_DU_POINT_uvw_COURANT(Fx,Fy,Fz                                                        \
                                                                       ,calcul_eventuel_point_courant                                   \
                                                                       ,sequence_de_generation                                          \
                                                                       ,Fu,Fv,Fw                                                        \
                                                                       ,Tuvw                                                            \
                                                                        );                                                              \
                                                                                                                                        \
                                        INCR(echantillonnage_courant_de_w,I);                                                           \
                                        /* Gestion de l'echantillonnage de 'w'.                                                      */ \
                                        INCR(Z_de_projection,PasZ);                                                                     \
                                        /* Gestion de l'indexation des matrices de projection...                                     */ \
                                        Eblock                                                                                          \
                                   EFDoI                                                                                                \
                                                                                                                                        \
                                   INCR(echantillonnage_courant_de_v,I);                                                                \
                                        /* Gestion de l'echantillonnage de 'v'.                                                      */ \
                                   INCR(Y_de_projection,PasY);                                                                          \
                                        /* Gestion de l'indexation des matrices de projection...                                     */ \
                                   Eblock                                                                                               \
                              EFDoI                                                                                                     \
                                                                                                                                        \
                              INCR(echantillonnage_courant_de_u,I);                                                                     \
                                        /* Gestion de l'echantillonnage de 'u'.                                                      */ \
                              INCR(X_de_projection,PasX);                                                                               \
                                        /* Gestion de l'indexation des matrices de projection...                                     */ \
                              Eblock                                                                                                    \
                         EFDoI                                                                                                          \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IL_FAUT(generer_les_trois_projections_du_volume))                                                              \
                                        /* Cas ou il faut generer les trois projections (introduit le 20050909142343) :              */ \
                         Bblock                                                                                                         \
                         begin_album                                                                                                    \
                              Bblock                                                                                                    \
                              Test(IZEQ(AloadI_point(validation_de_la_projection,X,Y,Z)))                                               \
                                   Bblock                                                                                               \
                                   PRINT_ERREUR("un point de la projection n'est pas atteint");                                         \
                                   CAL1(Prer3("il s'agit du point de coordonnees {u,v,w}={%f,%f,%f}\n"                                  \
                                             ,_____cNORMALISE_OX(X)                                                                     \
                                             ,_____cNORMALISE_OY(Y)                                                                     \
                                             ,_____cNORMALISE_OZ(Z)                                                                     \
                                              )                                                                                         \
                                        );                                                                                              \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                              Eblock                                                                                                    \
                         end_album                                                                                                      \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    EDEFV(albumI,validation_de_la_projection);                                                                          \
                                        /* Dispositif de validation de la projection introduit le 20050909142343...                  */ \
                    Eblock                                                                                                              \
                                        /* Calcul et visualisation generale du volume pour un instant donne.                         */

#define   LISTER_EVENTUELLEMENT_LES_COORDONNEES_u_v_w_DES_POINTS                                                                        \
                    Bblock                                                                                                              \
                    Test(IFET(IL_FAUT(lister_la_liste_des_points)                                                                       \
                             ,IL_FAUT(lister_les_coordonnees_u_v_w_des_points)                                                          \
                              )                                                                                                         \
                         )                                                                                                              \
                         Bblock                                                                                                         \
                         Test(IFET(IZGT(rayon_de_visualisation)                                                                         \
                                  ,IFOU(EST_VRAI(les_trois_les_differentielles_peuvent_etre_nulles)                                     \
                                       ,IFET(EST_FAUX(les_trois_les_differentielles_peuvent_etre_nulles)                                \
                                            ,IFOU(IL_NE_FAUT_PAS(renormaliser_arbitrairement_derivees)                                  \
                                                 ,IFET(IL_FAUT(renormaliser_arbitrairement_derivees)                                    \
                                                      ,I3OU(IZNE(dcx)                                                                   \
                                                           ,IZNE(dcy)                                                                   \
                                                           ,IZNE(dcz)                                                                   \
                                                            )                                                                           \
                                                       )                                                                                \
                                                  )                                                                                     \
                                             )                                                                                          \
                                        )                                                                                               \
                                   )                                                                                                    \
                              )                                                                                                         \
                              Bblock                                                                                                    \
                              CAL2(Prin3(" U=%+.^^^ V=%+.^^^ W=%+.^^^   "                                                               \
                                        ,u_effectif                                                                                     \
                                        ,v_effectif                                                                                     \
                                        ,w_effectif                                                                                     \
                                         )                                                                                              \
                                   );                                                                                                   \
                                        /* Ceci fut introduit le 20101006103817 par symetrie avec                                    */ \
                                        /* 'v $xrs/surfaces.12$I LISTER_EVENTUELLEMENT_LES_COORDONNEES_u_v_DES_POINTS'.              */ \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Listage des coordonnees {u,v,w} des points introduits le 20101006103817...                */

#define   GENERATION_D_UNE_IMAGE_DU_VOLUME_SANS_DIFFERENTIATION(Fx,Fy,Fz,calcul_eventuel_point_courant,texturage,Fu,Fv,Fw,Tuvw)         \
                                        /* L'optionnalite du texturage via un 'BLOC(...)' a ete introduite le 20050622115433 afin    */ \
                                        /* de maintenir la compatibilite de programmes anterieurs ('v $xrs/Mobius3D.31$K' par        */ \
                                        /* exemple) et de ne pas avoir a modifier (en ajoutant des "Xmax=..." en particulier) des    */ \
                                        /* '$Z' les utilisant...                                                                     */ \
                    Bblock                                                                                                              \
                    DEFV(Float,INIT(d_u,FLOT__UNDEF));                                                                                  \
                    DEFV(Float,INIT(d_v,FLOT__UNDEF));                                                                                  \
                    DEFV(Float,INIT(d_w,FLOT__UNDEF));                                                                                  \
                                        /* Ces definitions n'ont comme seule utilite que d'eviter des problemes de compilation       */ \
                                        /* suite a la definition de {d_u_effectif,d_v_effectif,d_w_effectif} le 20060530095647       */ \
                                        /* dans la procedure 'gGENERATION_D_UNE_IMAGE_DU_VOLUME(...)'...                             */ \
                                                                                                                                        \
                    gGENERATION_D_UNE_IMAGE_DU_VOLUME                                                                                   \
                        (Fx,Fy,Fz                                                                                                       \
                        ,calcul_eventuel_point_courant                                                                                  \
                        ,BLOC(Bblock                                                                                                    \
                              BLOC(texturage);                                                                                          \
                                        /* Texturage eventuel du volume...                                                           */ \
                                                                                                                                        \
                              RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;                                                    \
                                        /* On notera que cette recherche n'est pas conditionnee par 'editer_les_extrema', car les    */ \
                                        /* extrema pourraient etre utilises pour la visualisation...                                 */ \
                                                                                                                                        \
                              BLOC(calcul_eventuel_point_courant);                                                                      \
                                        /* Calculs eventuels d'informations specifiques au point courant...                          */ \
                                                                                                                                        \
                              PERMUTATION_EVENTUELLE_DES_COORDONNEES_ET_DES_DIFFERENTIELLES;                                            \
                                        /* Permutation eventuelle de {cx,cy,cz} et de {dcx,dcy,dcz} (introduit le 20050623085804).   */ \
                                                                                                                                        \
                              LISTER_EVENTUELLEMENT_LES_COORDONNEES_u_v_w_DES_POINTS;                                                   \
                                        /* Introduit le 20101006103817...                                                            */ \
                                                                                                                                        \
                              CALS(memorisation_1_point_06(SOUS(cx,Xcentre_ESPACE)                                                      \
                                                          ,SOUS(cy,Ycentre_ESPACE)                                                      \
                                                          ,SOUS(cz,Zcentre_ESPACE)                                                      \
                                                          ,dcx                                                                          \
                                                          ,dcy                                                                          \
                                                          ,dcz                                                                          \
                                                           )                                                                            \
                                   );                                                                                                   \
                                        /* Memorisation du point courant.                                                            */ \
                                                                                                                                        \
                              Eblock                                                                                                    \
                              )                                                                                                         \
                        ,Fu,Fv,Fw,Tuvw                                                                                                  \
                         )                                                                                                              \
                    Eblock                                                                                                              \
                                        /* Calcul et visualisation du volume pour un instant donne sans differentiation.             */

#define   TEXTURE_PAR_DEFAUT                                                                                                            \
                    FU

#define   GENERATION_D_UNE_IMAGE_DU_VOLUME_AVEC_DIFFERENCES____(Fx,Fy,Fz,calcul_eventuel_point_courant,texturage,Fu,Fv,Fw,Tuvw)         \
                                        /* L'optionnalite du texturage via un 'BLOC(...)' a ete introduite le 20050622115433 afin    */ \
                                        /* de maintenir la compatibilite de programmes anterieurs ('v $xrs/Mobius3D.31$K' par        */ \
                                        /* exemple) et de ne pas avoir a modifier (en ajoutant des "Xmax=..." en particulier) des    */ \
                                        /* '$Z' les utilisant...                                                                     */ \
                    Bblock                                                                                                              \
                    DEFV(Float,INIT(d_u,FLOT__UNDEF));                                                                                  \
                    DEFV(Float,INIT(d_v,FLOT__UNDEF));                                                                                  \
                    DEFV(Float,INIT(d_w,FLOT__UNDEF));                                                                                  \
                                        /* Ces definitions n'ont comme seule utilite que d'eviter des problemes de compilation       */ \
                                        /* suite a la definition de {d_u_effectif,d_v_effectif,d_w_effectif} le 20060530095647       */ \
                                        /* dans la procedure 'gGENERATION_D_UNE_IMAGE_DU_VOLUME(...)'...                             */ \
                                                                                                                                        \
                    gGENERATION_D_UNE_IMAGE_DU_VOLUME                                                                                   \
                        (Fx,Fy,Fz                                                                                                       \
                        ,calcul_eventuel_point_courant                                                                                  \
                        ,BLOC(Bblock                                                                                                    \
                              DEFV(Float,INIT(differentielle_x,FLOT__UNDEF));                                                           \
                              DEFV(Float,INIT(differentielle_y,FLOT__UNDEF));                                                           \
                              DEFV(Float,INIT(differentielle_z,FLOT__UNDEF));                                                           \
                                        /* Definition des trois differentielles.                                                     */ \
                              DEFV(Float,INIT(texture_x,TEXTURE_PAR_DEFAUT));                                                           \
                              DEFV(Float,INIT(texture_y,TEXTURE_PAR_DEFAUT));                                                           \
                              DEFV(Float,INIT(texture_z,TEXTURE_PAR_DEFAUT));                                                           \
                                        /* Definition des trois textures.                                                            */ \
                                                                                                                                        \
                              Test(IL_FAUT(utiliser_les_differentielles_ROUGE_VERTE_BLEUE))                                             \
                                   Bblock                                                                                               \
                                   EGAL(differentielle_x,differentielle_ROUGE);                                                         \
                                   EGAL(differentielle_y,differentielle_VERTE);                                                         \
                                   EGAL(differentielle_z,differentielle_BLEUE);                                                         \
                                                                                                                                        \
                                   EGAL(utiliser_les_differentielles_ROUGE_VERTE_BLEUE,FAUX);                                           \
                                        /* Ne sert a rien, mais c'est plus sur...                                                    */ \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   EGAL(differentielle_x                                                                                \
                                       ,DERIVATION_PARTIELLE(Fx(SOUS(u_effectif,MUL2(facteur_x_de_pas_de_u,pas_u_de_differentiation))   \
                                                               ,SOUS(v_effectif,MUL2(facteur_x_de_pas_de_v,pas_v_de_differentiation))   \
                                                               ,SOUS(w_effectif,MUL2(facteur_x_de_pas_de_w,pas_w_de_differentiation))   \
                                                                )                                                                       \
                                                            ,Fx(ADD2(u_effectif,MUL2(facteur_x_de_pas_de_u,pas_u_de_differentiation))   \
                                                               ,ADD2(v_effectif,MUL2(facteur_x_de_pas_de_v,pas_v_de_differentiation))   \
                                                               ,ADD2(w_effectif,MUL2(facteur_x_de_pas_de_w,pas_w_de_differentiation))   \
                                                                )                                                                       \
                                                            ,DOUB(GpytF3D(MUL2(facteur_x_de_pas_de_u,pas_u_de_differentiation)          \
                                                                         ,MUL2(facteur_x_de_pas_de_v,pas_v_de_differentiation)          \
                                                                         ,MUL2(facteur_x_de_pas_de_w,pas_w_de_differentiation)          \
                                                                          )                                                             \
                                                                  )                                                                     \
                                                             )                                                                          \
                                        );                                                                                              \
                                   EGAL(differentielle_y                                                                                \
                                       ,DERIVATION_PARTIELLE(Fy(SOUS(u_effectif,MUL2(facteur_y_de_pas_de_u,pas_u_de_differentiation))   \
                                                               ,SOUS(v_effectif,MUL2(facteur_y_de_pas_de_v,pas_v_de_differentiation))   \
                                                               ,SOUS(w_effectif,MUL2(facteur_y_de_pas_de_w,pas_w_de_differentiation))   \
                                                                )                                                                       \
                                                            ,Fy(ADD2(u_effectif,MUL2(facteur_y_de_pas_de_u,pas_u_de_differentiation))   \
                                                               ,ADD2(v_effectif,MUL2(facteur_y_de_pas_de_v,pas_v_de_differentiation))   \
                                                               ,ADD2(w_effectif,MUL2(facteur_y_de_pas_de_w,pas_w_de_differentiation))   \
                                                                )                                                                       \
                                                            ,DOUB(GpytF3D(MUL2(facteur_y_de_pas_de_u,pas_u_de_differentiation)          \
                                                                         ,MUL2(facteur_y_de_pas_de_v,pas_v_de_differentiation)          \
                                                                         ,MUL2(facteur_y_de_pas_de_w,pas_w_de_differentiation)          \
                                                                          )                                                             \
                                                                  )                                                                     \
                                                             )                                                                          \
                                        );                                                                                              \
                                   EGAL(differentielle_z                                                                                \
                                       ,DERIVATION_PARTIELLE(Fz(SOUS(u_effectif,MUL2(facteur_z_de_pas_de_u,pas_u_de_differentiation))   \
                                                               ,SOUS(v_effectif,MUL2(facteur_z_de_pas_de_v,pas_v_de_differentiation))   \
                                                               ,SOUS(w_effectif,MUL2(facteur_z_de_pas_de_w,pas_w_de_differentiation))   \
                                                                )                                                                       \
                                                            ,Fz(ADD2(u_effectif,MUL2(facteur_z_de_pas_de_u,pas_u_de_differentiation))   \
                                                               ,ADD2(v_effectif,MUL2(facteur_z_de_pas_de_v,pas_v_de_differentiation))   \
                                                               ,ADD2(w_effectif,MUL2(facteur_z_de_pas_de_w,pas_w_de_differentiation))   \
                                                                )                                                                       \
                                                            ,DOUB(GpytF3D(MUL2(facteur_z_de_pas_de_u,pas_u_de_differentiation)          \
                                                                         ,MUL2(facteur_z_de_pas_de_v,pas_v_de_differentiation)          \
                                                                         ,MUL2(facteur_z_de_pas_de_w,pas_w_de_differentiation)          \
                                                                          )                                                             \
                                                                  )                                                                     \
                                                             )                                                                          \
                                        );                                                                                              \
                                        /* Calcul des differentielles. Le passage du calcul formel au calcul numerique a ete         */ \
                                        /* effectue pour 'v $xrs/Mobius3D.11$K VISUALISATION_DU_VOLUME_AVEC_DIFFERENCES____'         */ \
                                        /* le 20040327163945.                                                                        */ \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                                                                                                                                        \
                              BLOC(texturage);                                                                                          \
                                        /* Texturage eventuel du volume...                                                           */ \
                                                                                                                                        \
                              EGAL(dcx                                                                                                  \
                                  ,BARY(LIZ9(ponderation_de__x_____dans_dx,cx                                                           \
                                            ,ponderation_de__y_____dans_dx,cy                                                           \
                                            ,ponderation_de__z_____dans_dx,cz                                                           \
                                            ,ponderation_de__u_____dans_dx,u                                                            \
                                            ,ponderation_de__v_____dans_dx,v                                                            \
                                            ,ponderation_de__w_____dans_dx,w                                                            \
                                            ,ponderation_de_dx_____dans_dx,differentielle_x                                             \
                                            ,ponderation_de_dy_____dans_dx,differentielle_y                                             \
                                            ,ponderation_de_dz_____dans_dx,differentielle_z                                             \
                                             )                                                                                          \
                                       ,texture_x                                                                                       \
                                       ,ponderation_ROUGE_pour_dcx                                                                      \
                                        )                                                                                               \
                                   );                                                                                                   \
                              EGAL(dcy                                                                                                  \
                                  ,BARY(LIZ9(ponderation_de__x_____dans_dy,cx                                                           \
                                            ,ponderation_de__y_____dans_dy,cy                                                           \
                                            ,ponderation_de__z_____dans_dy,cz                                                           \
                                            ,ponderation_de__u_____dans_dy,u                                                            \
                                            ,ponderation_de__v_____dans_dy,v                                                            \
                                            ,ponderation_de__w_____dans_dy,w                                                            \
                                            ,ponderation_de_dx_____dans_dy,differentielle_x                                             \
                                            ,ponderation_de_dy_____dans_dy,differentielle_y                                             \
                                            ,ponderation_de_dz_____dans_dy,differentielle_z                                             \
                                             )                                                                                          \
                                       ,texture_y                                                                                       \
                                       ,ponderation_VERTE_pour_dcy                                                                      \
                                        )                                                                                               \
                                   );                                                                                                   \
                              EGAL(dcz                                                                                                  \
                                  ,BARY(LIZ9(ponderation_de__x_____dans_dz,cx                                                           \
                                            ,ponderation_de__y_____dans_dz,cy                                                           \
                                            ,ponderation_de__z_____dans_dz,cz                                                           \
                                            ,ponderation_de__u_____dans_dz,u                                                            \
                                            ,ponderation_de__v_____dans_dz,v                                                            \
                                            ,ponderation_de__w_____dans_dz,w                                                            \
                                            ,ponderation_de_dx_____dans_dz,differentielle_x                                             \
                                            ,ponderation_de_dy_____dans_dz,differentielle_y                                             \
                                            ,ponderation_de_dz_____dans_dz,differentielle_z                                             \
                                             )                                                                                          \
                                       ,texture_z                                                                                       \
                                       ,ponderation_BLEUE_pour_dcz                                                                      \
                                        )                                                                                               \
                                   );                                                                                                   \
                                        /* Calcul des couleurs utiles...                                                             */ \
                                        /*                                                                                           */ \
                                        /* La prise en compte eventuelle des coordonnees {cx,cy,cz} a ete introduite le              */ \
                                        /* 20090723121855 pour 'v $xiirs/PROJ.m1.2D'...                                              */ \
                                                                                                                                        \
                              RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;                                                    \
                                        /* On notera que cette recherche n'est pas conditionnee par 'editer_les_extrema', car les    */ \
                                        /* extrema pourraient etre utilises pour la visualisation...                                 */ \
                                                                                                                                        \
                              BLOC(calcul_eventuel_point_courant);                                                                      \
                                        /* Calculs eventuels d'informations specifiques au point courant...                          */ \
                                                                                                                                        \
                              PERMUTATION_EVENTUELLE_DES_COORDONNEES_ET_DES_DIFFERENTIELLES;                                            \
                                        /* Permutation eventuelle de {cx,cy,cz} et de {dcx,dcy,dcz} (introduit le 20050623085804).   */ \
                                                                                                                                        \
                              LISTER_EVENTUELLEMENT_LES_COORDONNEES_u_v_w_DES_POINTS;                                                   \
                                        /* Introduit le 20101006103817...                                                            */ \
                                                                                                                                        \
                              CALS(memorisation_1_point_06(SOUS(cx,Xcentre_ESPACE)                                                      \
                                                          ,SOUS(cy,Ycentre_ESPACE)                                                      \
                                                          ,SOUS(cz,Zcentre_ESPACE)                                                      \
                                                          ,dcx                                                                          \
                                                          ,dcy                                                                          \
                                                          ,dcz                                                                          \
                                                           )                                                                            \
                                   );                                                                                                   \
                                        /* Memorisation du point courant.                                                            */ \
                              Eblock                                                                                                    \
                              )                                                                                                         \
                        ,Fu,Fv,Fw,Tuvw                                                                                                  \
                         )                                                                                                              \
                    Eblock                                                                                                              \
                                        /* Calcul et visualisation du volume pour un instant donne avec differentiation numerique.   */ \
                                        /*                                                                                           */ \
                                        /* Le nom 'GENERATION_D_UNE_IMAGE_DU_VOLUME_AVEC_DIFFERENTIATION(...)' a ete change en       */ \
                                        /* GENERATION_D_UNE_IMAGE_DU_VOLUME_AVEC_DIFFERENCES____(...)' le 20041107152121 par         */ \
                                        /* symetrie avec ce qui a ete fait dans 'v $xrs/surfaces.12$I SURFACE_AVEC_DIFFERENCES____'. */

#define   INITIALISATIONS_COMMUNES_DE_PROJECTION_DU_VOLUME                                                                              \
                    Bblock                                                                                                              \
                    EGAL(nombre_de_periodes_de_la_simulation,UN);                                                                       \
                                        /* Un seul "tour" suffit...                                                                  */ \
                                                                                                                                        \
                    EGAL(diviseur_du_pas_de_u,FU);                                                                                      \
                    EGAL(diviseur_du_pas_de_v,FU);                                                                                      \
                    EGAL(diviseur_du_pas_de_w,FU);                                                                                      \
                                                                                                                                        \
                    Test(IL_FAUT(forcer_les_extrema_de_u_v_w_lors_de_la_projection_du_volume))                                          \
                                        /* Test introduit le 20060307102027...                                                       */ \
                         Bblock                                                                                                         \
                         EGAL(pas_de_u,DIVI(SOUS(maximum_de_u,minimum_de_u),FLOT(dimX)));                                               \
                         EGAL(pas_de_v,DIVI(SOUS(maximum_de_v,minimum_de_v),FLOT(dimY)));                                               \
                         EGAL(pas_de_w,DIVI(SOUS(maximum_de_w,minimum_de_w),FLOT(dimZ)));                                               \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         EGAL(pas_de_u,DIVI(SOUS(sauvegarde_de_maximum_de_u,minimum_de_u),FLOT(dimX)));                                 \
                         EGAL(pas_de_v,DIVI(SOUS(sauvegarde_de_maximum_de_v,minimum_de_v),FLOT(dimY)));                                 \
                         EGAL(pas_de_w,DIVI(SOUS(sauvegarde_de_maximum_de_w,minimum_de_w),FLOT(dimZ)));                                 \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    EGAL(echantillonnage_de_u,UN);                                                                                      \
                    EGAL(echantillonnage_de_v,UN);                                                                                      \
                    EGAL(echantillonnage_de_w,UN);                                                                                      \
                    EGAL(translation_de_l_echantillonnage_de_u,ZERO);                                                                   \
                    EGAL(translation_de_l_echantillonnage_de_v,ZERO);                                                                   \
                    EGAL(translation_de_l_echantillonnage_de_w,ZERO);                                                                   \
                                        /* Generation des trois projections d'une surface tel que cela est defini et exploite        */ \
                                        /* dans 'v $xrs/project2D.11$K P.R.O.J.E.C.T.O.R'. Ceci a ete introduit le 20041125111850.   */ \
                                        /*                                                                                           */ \
                                        /* On notera que pour que cela ait un interet, il faut que :                                 */ \
                                        /*                                                                                           */ \
                                        /*                  diviseur_du_pas_de_u = 1                                    (dpu=1)      */ \
                                        /*                  diviseur_du_pas_de_v = 1                                    (dpv=1)      */ \
                                        /*                  diviseur_du_pas_de_w = 1                                    (dpw=1)      */ \
                                        /*                                                                                           */ \
                                        /*                              maximum_de_u - minimum_de_u                                  */ \
                                        /*                  pas_de_u = -----------------------------                                 */ \
                                        /*                                         dimX                                              */ \
                                        /*                                                                                           */ \
                                        /*                              maximum_de_v - minimum_de_v                                  */ \
                                        /*                  pas_de_v = -----------------------------                                 */ \
                                        /*                                         dimY                                              */ \
                                        /*                                                                                           */ \
                                        /*                              maximum_de_w - minimum_de_w                                  */ \
                                        /*                  pas_de_w = -----------------------------                                 */ \
                                        /*                                         dimZ                                              */ \
                                        /*                                                                                           */ \
                                        /* afin de bien "remplir" les albums {Proj_Fx,Proj_Fy,Proj_Fz}.                              */ \
                                        /*                                                                                           */ \
                                        /* La reinitialisation de l'echantillonnage de la surface a ete introduit le 20050114214615  */ \
                                        /* car cela manquait effectivement...                                                        */ \
                    Eblock                                                                                                              \
                                        /* Initialisations communes a tous les volumes destinees a permettre la reinjection des      */ \
                                        /* trois pseudo-projections {Projection_de_Fx,Projection_de_Fy,Projection_de_Fz} dans        */ \
                                        /* 'v $xrs/project3D.11$K' (introduit sous forme de procedure le 20050628080236...).         */
#define   INITIALISATIONS_SPECIFIQUES_DE_PROJECTION_DU_VOLUME(initialisations)                                                          \
                    Bblock                                                                                                              \
                    Test(IL_FAUT(faire_les_initialisations_specifiques_de_projection_du_volume))                                        \
                                        /* Test introduit le 20060502142823 par symetrie avec 'v $xrs/surfaces.12$I 20060502142542'. */ \
                         Bblock                                                                                                         \
                         BLOC(initialisations;);                                                                                        \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Initialisations specifiques a ce volume destinees a permettre la reinjection des          */ \
                                        /* trois pseudo-projections {Projection_de_Fx,Projection_de_Fy,Projection_de_Fz} dans        */ \
                                        /* 'v $xrs/project3D.11$K' (introduit le 20050628080236)...                                  */

#define   DEBUT_DE_LA_DEFINITION_DE_PETITS_ALBUMS                                                                                       \
                                        /* ATTENTION : on notera l'absence de {Bblock,Eblock} afin de permettre au definitions de    */ \
                                        /* {Projection_de_Fx,Projection_de_Fy,Projection_de_Fz} qui sont faites a l'interieur du     */ \
                                        /* couple {DEBUT_DE_LA_DEFINITION_DE_PETITS_ALBUMS,FIN_DE_LA_DEFINITION_DE_PETITS_ALBUMS}    */ \
                                        /* de ne pas etre locales a l'interieur de cette "structure"...                              */ \
                    EGAL(sauvegarde_du_Zmax_reel,Zmax);                                                                                 \
                                                                                                                                        \
                    Test(IL_FAUT(generer_les_trois_projections_du_volume))                                                              \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         SET_DIMENSIONS_3D_SANS_VALIDATION(Xmin,Xmax,Ymin,Ymax,Zmin,Zmin);                                              \
                                        /* Ceci permet de generer des albums {Projection_de_Fx,Projection_de_Fy,Projection_de_Fz}    */ \
                                        /* ci-apres de tailles reduites puisqu'ils sont alors inutiles...                            */ \
                         Eblock                                                                                                         \
                    ETes
#define   FIN_DE_LA_DEFINITION_DE_PETITS_ALBUMS                                                                                         \
                    EGAL(Zmax,sauvegarde_du_Zmax_reel);                                                                                 \
                                        /* ATTENTION : on notera l'absence de {Bblock,Eblock} afin de permettre au definitions de    */ \
                                        /* {Projection_de_Fx,Projection_de_Fy,Projection_de_Fz} qui sont faites a l'interieur du     */ \
                                        /* couple {DEBUT_DE_LA_DEFINITION_DE_PETITS_ALBUMS,FIN_DE_LA_DEFINITION_DE_PETITS_ALBUMS}    */ \
                                        /* de ne pas etre locales a l'interieur de cette "structure"...                              */

#define   gVISUALISATION_GENERALE_TEXTURE_DU_VOLUME(calcul_des_parametres,calcul_du_volume,Fx,Fy,Fz,Pxyz,debut_texture,fin_texture)     \
                    Bblock                                                                                                              \
                    DEFV(Float,INIT(sauvegarde_de_minimum_de_u,minimum_de_u));                                                          \
                    DEFV(Float,INIT(sauvegarde_de_maximum_de_u,maximum_de_u));                                                          \
                    DEFV(Float,INIT(sauvegarde_de_minimum_de_v,minimum_de_v));                                                          \
                    DEFV(Float,INIT(sauvegarde_de_maximum_de_v,maximum_de_v));                                                          \
                    DEFV(Float,INIT(sauvegarde_de_minimum_de_w,minimum_de_w));                                                          \
                    DEFV(Float,INIT(sauvegarde_de_maximum_de_w,maximum_de_w));                                                          \
                                        /* Introduit le 20060307102027 par symetrie avec ''v $xrs/surfaces.12$I sauvegarde_de_m'.    */ \
                                                                                                                                        \
                    DEFV(Int,INIT(sauvegarde_du_Zmax_reel,Zmax));                                                                       \
                                        /* On ne peut malheureusement utiliser {PUSH_DIMENSIONS_3D,PULL_DIMENSIONS_3D} a cause       */ \
                                        /* du 'Bblock' et du 'Eblock' qui les encadrent, ce qui rendraient les definitions de        */ \
                                        /* {Projection_de_Fx,Projection_de_Fy,Projection_de_Fz} locales a l'interieur...             */ \
                                                                                                                                        \
                    DEBUT_DE_LA_DEFINITION_DE_PETITS_ALBUMS;                                                                            \
                                                                                                                                        \
                    BDEFV(albumF,Projection_de_Fx);                                                                                     \
                    BDEFV(albumF,Projection_de_Fy);                                                                                     \
                    BDEFV(albumF,Projection_de_Fz);                                                                                     \
                                        /* Definition des trois projections...                                                       */ \
                                                                                                                                        \
                    FIN_DE_LA_DEFINITION_DE_PETITS_ALBUMS;                                                                              \
                                                                                                                                        \
                    Test(IL_FAUT(generer_les_trois_projections_du_volume))                                                              \
                                        /* Cas ou il faut generer les trois projections (introduit le 20050628080236) :              */ \
                         Bblock                                                                                                         \
                                        /* ATTENTION ; jusqu'au 20050628155937, l'ordre des deux initialisations suivantes etaient   */ \
                                        /* etait l'inverse par erreur. 'INITIALISATIONS_SPECIFIQUES_DE_PROJECTION_DU_VOLUME'         */ \
                                        /* peut en effet modifier des parametres qui sont exploites (par exemple 'maximum_de_v')     */ \
                                        /* par 'INITIALISATIONS_COMMUNES_DE_PROJECTION_DU_VOLUME', d'ou l'ordre logique qui          */ \
                                        /* suit...                                                                                   */ \
                         INITIALISATIONS_SPECIFIQUES_DE_PROJECTION_DU_VOLUME(Pxyz);                                                     \
                         INITIALISATIONS_COMMUNES_DE_PROJECTION_DU_VOLUME;                                                              \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    BLOC(debut_texture);                                                                                                \
                                                                                                                                        \
                    RE_INITIALISATION_DE_L_HORLOGE;                                                                                     \
                                        /* Depuis que le 19990512152305 a ete mis en place un :                                      */ \
                                        /*                                                                                           */ \
                                        /*        INCREMENTATION_DE_L_HORLOGE(dct);                                                  */ \
                                        /*                                                                                           */ \
                                        /* apres chaque image, l'initialisation de l'horloge ne doit plus etre faite pour chaque     */ \
                                        /* image, mais une seul fois, au tout debut...                                               */ \
                                                                                                                                        \
                    Komp(numero_de_la_periode_courante_de_la_simulation,nombre_de_periodes_de_la_simulation)                            \
                         Bblock                                                                                                         \
                         INITIALISATIONS_RELATIVES_A_CHAQUE_NOUVELLE_IMAGE(numero_de_la_periode_courante);                              \
                                        /* Initialisations necessaires avant le calcul et la generation de chaque nouvelle image.    */ \
                                                                                                                                        \
                         BLOC(calcul_des_parametres);                                                                                   \
                                        /* Calcul des parametres evoluant au cours de la simulation...                               */ \
                                                                                                                                        \
                         BLOC(calcul_du_volume);                                                                                        \
                                        /* Calcul du volume proprement dit...                                                        */ \
                                                                                                                                        \
                         Test(IL_FAUT(generer_les_trois_projections_du_volume))                                                         \
                                        /* Test introduit le 20060307110319 car, tres mysterieusement, il manquait...                */ \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE(BLOC(VIDE;));                                             \
                                        /* Generation de l'image courante...                                                         */ \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         INCREMENTATION_DE_L_HORLOGE(dct);                                                                              \
                                        /* Simulation d'un temps arbitraire (introduit le 19990512094356).                           */ \
                         Eblock                                                                                                         \
                    EKom                                                                                                                \
                                                                                                                                        \
                    Test(IL_FAUT(generer_les_trois_projections_du_volume))                                                              \
                                        /* Cas ou il faut generer les trois projections :                                            */ \
                         Bblock                                                                                                         \
                         CALi(dAupdateF_album(nom_albumProjectionFx                                                                     \
                                             ,nom_postfixeProjectionFx                                                                  \
                                             ,premiere_imageProjectionFx                                                                \
                                             ,pas_des_imagesProjectionFx                                                                \
                                             ,Projection_de_Fx                                                                          \
                                             ,nombre_de_chiffresProjectionFx                                                            \
                                             ,FAUX                                                                                      \
                                              )                                                                                         \
                              );                                                                                                        \
                                        /* L'argument 'Inv' ('FAUX') a ete introduit le 20100624091846...                            */ \
                         CALi(dAupdateF_album(nom_albumProjectionFy                                                                     \
                                             ,nom_postfixeProjectionFy                                                                  \
                                             ,premiere_imageProjectionFy                                                                \
                                             ,pas_des_imagesProjectionFy                                                                \
                                             ,Projection_de_Fy                                                                          \
                                             ,nombre_de_chiffresProjectionFy                                                            \
                                             ,FAUX                                                                                      \
                                              )                                                                                         \
                              );                                                                                                        \
                                        /* L'argument 'Inv' ('FAUX') a ete introduit le 20100624091846...                            */ \
                         CALi(dAupdateF_album(nom_albumProjectionFz                                                                     \
                                             ,nom_postfixeProjectionFz                                                                  \
                                             ,premiere_imageProjectionFz                                                                \
                                             ,pas_des_imagesProjectionFz                                                                \
                                             ,Projection_de_Fz                                                                          \
                                             ,nombre_de_chiffresProjectionFz                                                            \
                                             ,FAUX                                                                                      \
                                              )                                                                                         \
                              );                                                                                                        \
                                        /* L'argument 'Inv' ('FAUX') a ete introduit le 20100624091846...                            */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         EDITION_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;                                                           \
                                        /* Edition facultative des extrema des coordonnees.                                          */ \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    BLOC(fin_texture);                                                                                                  \
                                                                                                                                        \
                    DEBUT_DE_LA_DEFINITION_DE_PETITS_ALBUMS;                                                                            \
                                                                                                                                        \
                    EDEFV(albumF,Projection_de_Fz);                                                                                     \
                    EDEFV(albumF,Projection_de_Fy);                                                                                     \
                    EDEFV(albumF,Projection_de_Fx);                                                                                     \
                                        /* Definition des trois projections...                                                       */ \
                                                                                                                                        \
                    FIN_DE_LA_DEFINITION_DE_PETITS_ALBUMS;                                                                              \
                    Eblock                                                                                                              \
                                        /* Calcul et visualisation du volume avec evolution temporelle...                            */
#define   VISUALISATION_GENERALE_DU_VOLUME(calcul_des_parametres,calcul_du_volume,Fx,Fy,Fz,Pxyz)                                        \
                    Bblock                                                                                                              \
                    gVISUALISATION_GENERALE_TEXTURE_DU_VOLUME(calcul_des_parametres                                                     \
                                                             ,calcul_du_volume                                                          \
                                                             ,Fx,Fy,Fz                                                                  \
                                                             ,Pxyz                                                                      \
                                                             ,BLOC(VIDE;)                                                               \
                                                             ,BLOC(VIDE;)                                                               \
                                                              );                                                                        \
                    Eblock                                                                                                              \
                                        /* Calcul et visualisation du volume avec evolution temporelle...                            */

#define   transformer_u_v_w_hors_album                                                                                                  \
                    transformer_u_v_w_niveau_hors_album
                                        /* Pour raccourcir quelques lignes a venir...                                                */

#define   PAS_DE_TRANSFO(uvw)                                                                                                           \
                    NEUT(uvw)
#define   TRANSFORMATION_uvw(album,uvw)                                                                                                 \
                    COND(IL_NE_FAUT_PAS(transformer_u_v_w)                                                                              \
                        ,uvw                                                                                                            \
                        ,sgFFAload_point_coordonnees_01(album                                                                           \
                                                       ,u_NORMALISEE                                                                    \
                                                       ,v_NORMALISEE                                                                    \
                                                       ,w_NORMALISEE                                                                    \
                                                       ,transformer_u_v_w_periodiser_u                                                  \
                                                       ,transformer_u_v_w_periodiser_v                                                  \
                                                       ,transformer_u_v_w_periodiser_w                                                  \
                                                       ,transformer_u_v_w_symetriser_u                                                  \
                                                       ,transformer_u_v_w_symetriser_v                                                  \
                                                       ,transformer_u_v_w_symetriser_w                                                  \
                                                       ,transformer_u_v_w_prolonger_u                                                   \
                                                       ,transformer_u_v_w_prolonger_v                                                   \
                                                       ,transformer_u_v_w_prolonger_w                                                   \
                                                       ,transformer_u_v_w_hors_album                                                    \
                                                       ,albumTransformation_uvw__interpoler_bilineairement_ou_bicubiquement             \
                                                       ,albumTransformation_uvw__utiliser_l_interpolation_bilineaire                    \
                                                       ,albumTransformation_uvw__eviter_les_fortes_discontinuites                       \
                                                       ,albumTransformation_uvw__epsilon_detection_des_fortes_discontinuites            \
                                                        )                                                                               \
                         )
#define   TRANSFORM_u(u)                                                                                                                \
                    TRANSFORMATION_uvw(albumTransformation_u,u)
#define   TRANSFORM_v(v)                                                                                                                \
                    TRANSFORMATION_uvw(albumTransformation_v,v)
#define   TRANSFORM_w(w)                                                                                                                \
                    TRANSFORMATION_uvw(albumTransformation_w,w)
                                        /* Introduit le 20060530133706...                                                            */
                                        /*                                                                                           */
                                        /* Le 20060601121716 je note qu'il faut etre tres prudent quant aux eventuelles              */
                                        /* discontinuites dans l'album ('v $xiipf/fonction.2$FON 20060601101800')...                 */

#define   PAS_DE_TROUAGE                                                                                                                \
                    TOUJOURS_VRAI
#define   TROUER_uvw                                                                                                                    \
                    IFOU(IL_NE_FAUT_PAS(trouer_u_v_w)                                                                                   \
                        ,IFET(IL_FAUT(trouer_u_v_w)                                                                                     \
                             ,EST_VRAI(fLOGI(sgFFAload_point_coordonnees_01                                                             \
                                                 (albumTrouage_uvw                                                                      \
                                                 ,u_NORMALISEE                                                                          \
                                                 ,v_NORMALISEE                                                                          \
                                                 ,w_NORMALISEE                                                                          \
                                                 ,trouer_u_v_w_periodiser_u                                                             \
                                                 ,trouer_u_v_w_periodiser_v                                                             \
                                                 ,trouer_u_v_w_periodiser_w                                                             \
                                                 ,trouer_u_v_w_symetriser_u                                                             \
                                                 ,trouer_u_v_w_symetriser_v                                                             \
                                                 ,trouer_u_v_w_symetriser_w                                                             \
                                                 ,trouer_u_v_w_prolonger_u                                                              \
                                                 ,trouer_u_v_w_prolonger_v                                                              \
                                                 ,trouer_u_v_w_prolonger_w                                                              \
                                                 ,LE_VOLUME_EST_INTEGRE                                                                 \
                                                 ,albumTrouage_uvw__interpoler_bilineairement_ou_bicubiquement                          \
                                                 ,albumTrouage_uvw__utiliser_l_interpolation_bilineaire                                 \
                                                 ,albumTrouage_uvw__eviter_les_fortes_discontinuites                                    \
                                                 ,albumTrouage_uvw__epsilon_detection_des_fortes_discontinuites                         \
                                                  )                                                                                     \
                                             )                                                                                          \
                                       )                                                                                                \
                              )                                                                                                         \
                         )
                                        /* Introduit le 20060530133706...                                                            */
                                        /*                                                                                           */
                                        /* Le 20060602091935 fut introduit le 'fLOGI(...)' pour eviter des trous parasites lies      */
                                        /* a des "rebonds" d'interpolation qui font que ce qui devrait valoir exactement 1 ('VRAI')  */
                                        /* peut valoir un tout petit peu moins, d'ou 0 ('FAUX') avec un 'LOGI(...)'...               */

#define   VISUALISATION_DU_VOLUME_SANS_DIFFERENTIATION(calcul_des_parametres,Fx,Fy,Fz,Pxyz,calcul_pc)                                   \
                                        /* Jusqu'au 20010525121332 'calcul_pc' s'appelait 'calcul_eventuel_point_courant' et son     */ \
                                        /* nom a ete reduit a cause de la longueur de la ligne qui le reference ci-apres...          */ \
                    Bblock                                                                                                              \
                    VISUALISATION_GENERALE_DU_VOLUME(BLOC(calcul_des_parametres)                                                        \
                                                    ,BLOC(Bblock                                                                        \
                                                          GENERATION_D_UNE_IMAGE_DU_VOLUME_SANS_DIFFERENTIATION(Fx,Fy,Fz                \
                                                                                                               ,BLOC(calcul_pc)         \
                                                                                                               ,BLOC(VIDE;)             \
                                                                                                               ,PAS_DE_TRANSFO          \
                                                                                                               ,PAS_DE_TRANSFO          \
                                                                                                               ,PAS_DE_TRANSFO          \
                                                                                                               ,PAS_DE_TROUAGE          \
                                                                                                                );                      \
                                                          Eblock                                                                        \
                                                          )                                                                             \
                                                    ,Fx,Fy,Fz                                                                           \
                                                    ,Pxyz                                                                               \
                                                     );                                                                                 \
                    Eblock                                                                                                              \
                                        /* Calcul sans differentiation et visualisation du volume avec evolution temporelle...       */
#define   VISUALISATION_DU_VOLUME_AVEC_DIFFERENCES____(calcul_des_parametres,Fx,Fy,Fz,Pxyz,calcul_pc)                                   \
                                        /* Jusqu'au 20010525121332 'calcul_pc' s'appelait 'calcul_eventuel_point_courant' et son     */ \
                                        /* nom a ete reduit a cause de la longueur de la ligne qui le reference ci-apres...          */ \
                    Bblock                                                                                                              \
                    VISUALISATION_GENERALE_DU_VOLUME(BLOC(calcul_des_parametres)                                                        \
                                                    ,BLOC(Bblock                                                                        \
                                                          GENERATION_D_UNE_IMAGE_DU_VOLUME_AVEC_DIFFERENCES____(Fx,Fy,Fz                \
                                                                                                               ,BLOC(calcul_pc)         \
                                                                                                               ,BLOC(VIDE;)             \
                                                                                                               ,PAS_DE_TRANSFO          \
                                                                                                               ,PAS_DE_TRANSFO          \
                                                                                                               ,PAS_DE_TRANSFO          \
                                                                                                               ,PAS_DE_TROUAGE          \
                                                                                                                );                      \
                                                          Eblock                                                                        \
                                                          )                                                                             \
                                                    ,Fx,Fy,Fz                                                                           \
                                                    ,Pxyz                                                                               \
                                                     );                                                                                 \
                    Eblock                                                                                                              \
                                        /* Calcul avec differentiation et visualisation du volume avec evolution temporelle...       */ \
                                        /*                                                                                           */ \
                                        /* Le nom 'VISUALISATION_DU_VOLUME_AVEC_DIFFERENTIATION(...)' a ete change en                */ \
                                        /* VISUALISATION_DU_VOLUME_AVEC_DIFFERENCES____(...)' le 20041107152121 par                  */ \
                                        /* symetrie avec ce qui a ete fait dans 'v $xrs/surfaces.12$I SURFACE_AVEC_DIFFERENCES____'. */

#define   VISUALISATION_GENERALE_TEXTURE_DU_VOLUME(calcul_des_parametres,calcul_du_volume,Fx,Fy,Fz,Pxyz)                                \
                    Bblock                                                                                                              \
                    gVISUALISATION_GENERALE_TEXTURE_DU_VOLUME(calcul_des_parametres                                                     \
                                                             ,calcul_du_volume                                                          \
                                                             ,Fx,Fy,Fz                                                                  \
                                                             ,Pxyz                                                                      \
                                                             ,BLOC(                                                                     \
                                                                   BDEFV(albumF,Album_ROUGE);                                           \
                                                                   BDEFV(albumF,Album_VERTE);                                           \
                                                                   BDEFV(albumF,Album_BLEUE);                                           \
                                                                   BDEFV(albumF,Album_RAYON);                                           \
                                        /* Definition des albums de texturage...                                                     */ \
                                                                                                                                        \
                                                                   ACCES_AUX_ALBUMS_FLOTTANTS(Album_ROUGE                               \
                                                                                             ,nom_texture_ROUGE                         \
                                                                                             ,nom_postfixe_ROUGE                        \
                                                                                             ,premiere_image_ROUGE                      \
                                                                                             ,pas_des_images_ROUGE                      \
                                                                                             ,nombre_de_chiffres_ROUGE                  \
                                                                                             ,TEXTURE_PAR_DEFAUT                        \
                                                                                              );                                        \
                                                                   ACCES_AUX_ALBUMS_FLOTTANTS(Album_VERTE                               \
                                                                                             ,nom_texture_VERTE                         \
                                                                                             ,nom_postfixe_VERTE                        \
                                                                                             ,premiere_image_VERTE                      \
                                                                                             ,pas_des_images_VERTE                      \
                                                                                             ,nombre_de_chiffres_VERTE                  \
                                                                                             ,TEXTURE_PAR_DEFAUT                        \
                                                                                              );                                        \
                                                                   ACCES_AUX_ALBUMS_FLOTTANTS(Album_BLEUE                               \
                                                                                             ,nom_texture_BLEUE                         \
                                                                                             ,nom_postfixe_BLEUE                        \
                                                                                             ,premiere_image_BLEUE                      \
                                                                                             ,pas_des_images_BLEUE                      \
                                                                                             ,nombre_de_chiffres_BLEUE                  \
                                                                                             ,TEXTURE_PAR_DEFAUT                        \
                                                                                              );                                        \
                                                                   ACCES_AUX_ALBUMS_FLOTTANTS(Album_RAYON                               \
                                                                                             ,nom_RAYON                                 \
                                                                                             ,nom_postfixe_RAYON                        \
                                                                                             ,premiere_image_RAYON                      \
                                                                                             ,pas_des_images_RAYON                      \
                                                                                             ,nombre_de_chiffres_RAYON                  \
                                                                                             ,rayon_de_visualisation                    \
                                                                                              );                                        \
                                                                   )                                                                    \
                                                             ,BLOC(                                                                     \
                                                                   EDEFV(albumF,Album_RAYON);                                           \
                                                                   EDEFV(albumF,Album_BLEUE);                                           \
                                                                   EDEFV(albumF,Album_VERTE);                                           \
                                                                   EDEFV(albumF,Album_ROUGE);                                           \
                                        /* Definition des albums de texturage...                                                     */ \
                                                                   )                                                                    \
                                                              );                                                                        \
                    Eblock                                                                                                              \
                                        /* Calcul et visualisation du volume avec evolution temporelle...                            */

#define   VISUALISATION_DU_VOLUME_SANS_DIFFERENTIATION_ET_AVEC_TEXTURAGE(calcul_des_parametres,Fx,Fy,Fz,Pxyz,calcul_pc)                 \
                                        /* Jusqu'au 20010525121332 'calcul_pc' s'appelait 'calcul_eventuel_point_courant' et son     */ \
                                        /* nom a ete reduit a cause de la longueur de la ligne qui le reference ci-apres...          */ \
                    Bblock                                                                                                              \
                    VISUALISATION_GENERALE_TEXTURE_DU_VOLUME(BLOC(calcul_des_parametres)                                                \
                                                            ,BLOC(Bblock                                                                \
                                                                  GENERATION_D_UNE_IMAGE_DU_VOLUME_SANS_DIFFERENTIATION(Fx,Fy,Fz        \
                                                                                                                       ,BLOC(calcul_pc) \
                                                                                                                       ,GtV(dcx         \
                                                                                                                           ,dcy         \
                                                                                                                           ,dcz         \
                                                                                                                            );          \
                                                                                                                       ,PAS_DE_TRANSFO  \
                                                                                                                       ,PAS_DE_TRANSFO  \
                                                                                                                       ,PAS_DE_TRANSFO  \
                                                                                                                       ,PAS_DE_TROUAGE  \
                                                                                                                        );              \
                                                                  Eblock                                                                \
                                                                  )                                                                     \
                                                            ,Fx,Fy,Fz                                                                   \
                                                            ,Pxyz                                                                       \
                                                             );                                                                         \
                    Eblock                                                                                                              \
                                        /* Calcul sans differentiation et visualisation du volume avec evolution temporelle...       */
#define   VISUALISATION_DU_VOLUME_AVEC_DIFFERENCES_ET_AVEC_TEXTURAGE____(calcul_des_parametres,Fx,Fy,Fz,Pxyz,calcul_pc)                 \
                                        /* Jusqu'au 20010525121332 'calcul_pc' s'appelait 'calcul_eventuel_point_courant' et son     */ \
                                        /* nom a ete reduit a cause de la longueur de la ligne qui le reference ci-apres...          */ \
                    Bblock                                                                                                              \
                    VISUALISATION_GENERALE_TEXTURE_DU_VOLUME(BLOC(calcul_des_parametres)                                                \
                                                            ,BLOC(Bblock                                                                \
                                                                  BDEFV(albumF,albumTransformation_u);                                  \
                                                                  BDEFV(albumF,albumTransformation_v);                                  \
                                                                  BDEFV(albumF,albumTransformation_w);                                  \
                                                                  BDEFV(albumF,albumTrouage_uvw);                                       \
                                        /* Definition des albums de transformation et de trouage des coordonnees {u,v,w}...          */ \
                                                                                                                                        \
                                                                  Test(IL_FAUT(transformer_u_v_w))                                      \
                                                                       Bblock                                                           \
                                                                       ACCES_AUX_ALBUMS_FLOTTANTS(albumTransformation_u                 \
                                                                                                 ,nom_albumTransformation_u             \
                                                                                                 ,nom_postfixeTransformation_u          \
                                                                                                 ,premiere_imageTransformation_u        \
                                                                                                 ,pas_des_imagesTransformation_u        \
                                                                                                 ,nombre_de_chiffresTransformation_u    \
                                                                                                 ,transformer_u_v_w_hors_album          \
                                                                                                  );                                    \
                                                                       ACCES_AUX_ALBUMS_FLOTTANTS(albumTransformation_v                 \
                                                                                                 ,nom_albumTransformation_v             \
                                                                                                 ,nom_postfixeTransformation_v          \
                                                                                                 ,premiere_imageTransformation_v        \
                                                                                                 ,pas_des_imagesTransformation_v        \
                                                                                                 ,nombre_de_chiffresTransformation_v    \
                                                                                                 ,transformer_u_v_w_hors_album          \
                                                                                                  );                                    \
                                                                       ACCES_AUX_ALBUMS_FLOTTANTS(albumTransformation_w                 \
                                                                                                 ,nom_albumTransformation_w             \
                                                                                                 ,nom_postfixeTransformation_w          \
                                                                                                 ,premiere_imageTransformation_w        \
                                                                                                 ,pas_des_imagesTransformation_w        \
                                                                                                 ,nombre_de_chiffresTransformation_w    \
                                                                                                 ,transformer_u_v_w_hors_album          \
                                                                                                  );                                    \
                                                                       Eblock                                                           \
                                                                  ATes                                                                  \
                                                                       Bblock                                                           \
                                                                       Eblock                                                           \
                                                                  ETes                                                                  \
                                                                                                                                        \
                                                                  Test(IL_FAUT(trouer_u_v_w))                                           \
                                                                       Bblock                                                           \
                                                                       ACCES_AUX_ALBUMS_FLOTTANTS(albumTrouage_uvw                      \
                                                                                                 ,nom_albumTrouage_uvw                  \
                                                                                                 ,nom_postfixeTrouage_uvw               \
                                                                                                 ,premiere_imageTrouage_uvw             \
                                                                                                 ,pas_des_imagesTrouage_uvw             \
                                                                                                 ,nombre_de_chiffresTrouage_uvw         \
                                                                                                 ,LE_VOLUME_EST_INTEGRE                 \
                                                                                                  );                                    \
                                                                       Eblock                                                           \
                                                                  ATes                                                                  \
                                                                       Bblock                                                           \
                                                                       Eblock                                                           \
                                                                  ETes                                                                  \
                                                                                                                                        \
                                                                  GENERATION_D_UNE_IMAGE_DU_VOLUME_AVEC_DIFFERENCES____(Fx,Fy,Fz        \
                                                                                                                       ,BLOC(calcul_pc) \
                                                                                                                       ,GtV(texture_x   \
                                                                                                                           ,texture_y   \
                                                                                                                           ,texture_z   \
                                                                                                                            );          \
                                                                                                                       ,TRANSFORM_u     \
                                                                                                                       ,TRANSFORM_v     \
                                                                                                                       ,TRANSFORM_w     \
                                                                                                                       ,TROUER_uvw      \
                                                                                                                        );              \
                                                                                                                                        \
                                                                   EDEFV(albumF,albumTrouage_uvw);                                      \
                                                                   EDEFV(albumF,albumTransformation_w);                                 \
                                                                   EDEFV(albumF,albumTransformation_v);                                 \
                                                                   EDEFV(albumF,albumTransformation_u);                                 \
                                        /* Definition des albums de transformation et de trouage des coordonnees {u,v,w}...          */ \
                                                                  Eblock                                                                \
                                                                  )                                                                     \
                                                            ,Fx,Fy,Fz                                                                   \
                                                            ,Pxyz                                                                       \
                                                             );                                                                         \
                    Eblock                                                                                                              \
                                        /* Calcul avec differentiation et visualisation du volume avec evolution temporelle...       */ \
                                        /*                                                                                           */ \
                                        /* Le nom 'VISUALISATION_DU_VOLUME_AVEC_DIFFERENTIATION(...)' a ete change en                */ \
                                        /* VISUALISATION_DU_VOLUME_AVEC_DIFFERENCES____(...)' le 20041107152121 par                  */ \
                                        /* symetrie avec ce qui a ete fait dans 'v $xrs/surfaces.12$I SURFACE_AVEC_DIFFERENCES____'. */



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.