/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T R A N S F O R M A T I O N   D ' U N E   I M A G E   P A R   L ' A T T R A C T E U R   D E   L O R E N Z  :               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrk/lorenz.21$K' :                                                                                             */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 1996??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R F A C E   ' listG '  :                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        :Debut_listG:                                                                                                              */
/*        :Fin_listG:                                                                                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D I R E C T I V E S   S P E C I F I Q U E S   D E   C O M P I L A T I O N  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_BASE
#include  image_image_IMAGESF_EXT

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

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*                                                                                    3                                              */
/*        D E F I N I T I O N   D E   L ' E S P A C E   P H Y S I Q U E   D A N S   R     ( D E B U T )  :                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Nota :                                                                                                                     */
/*                                                                                                                                   */
/*                    Les extrema des coordonnees {x,y,z}                                                                            */
/*                  ainsi que ceux de leurs differentielles                                                                          */
/*                  {dx,dy,dz} sont fixees un peu arbitrairement                                                                     */
/*                  et sans etre parametrees. Elles ont ete                                                                          */
/*                  obtenues a l'aide du programme 'v $xtc/lorenz.01$c'.                                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   hXmin_ESPACE                                                                                                                  \
                    PARE(-30.0)
#define   hYmin_ESPACE                                                                                                                  \
                    PARE(-30.0)
#define   hZmin_ESPACE                                                                                                                  \
                    PARE(0.0)
                                        /* Definition du "coin" inferieur-gauche-arriere de l'espace physique.                       */

#define   hXmax_ESPACE                                                                                                                  \
                    PARE(30.0)
#define   hYmax_ESPACE                                                                                                                  \
                    PARE(30.0)
#define   hZmax_ESPACE                                                                                                                  \
                    PARE(60.0)
                                        /* Definition du "coin" superieur-droite-avant de l'espace physique.                         */
                                        /*                                                                                           */
                                        /* ATTENTION, il y a eu pendant longtemps :                                                  */
                                        /*                                                                                           */
                                        /*                  #define   hZmax_ESPACE                                                \  */
                                        /*                                      55.0                                                 */
                                        /*                                                                                           */
                                        /* mais etant donne qu'il est plus intelligent de travailler avec un espace cubique (a cause */
                                        /* des rotations tridimensionnelles en particulier), j'ai remplace (le 1993061400) '55' par  */
                                        /* '60' qui correspond a '30-(-30)' (voir 'X' et 'Y').                                       */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*                                                                                    3                                              */
/*        D E F I N I T I O N   D E   L ' E S P A C E   P H Y S I Q U E   D A N S   R     ( D E B U T )  :                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.12.I"

#define   dXmin_ESPACE                                                                                                                  \
                    PARE(-2.4)
#define   dYmin_ESPACE                                                                                                                  \
                    PARE(-5.5)
#define   dZmin_ESPACE                                                                                                                  \
                    PARE(-2.8)
                                        /* Definition des minima des differentielles {dx,dy,dz}.                                     */
#define   dXmax_ESPACE                                                                                                                  \
                    PARE(1.8)
#define   dYmax_ESPACE                                                                                                                  \
                    PARE(3.8)
#define   dZmax_ESPACE                                                                                                                  \
                    PARE(4.8)
                                        /* Definition des maxima des differentielles {dx,dy,dz}.                                     */

#include  xrk/attractor.1D.I"
                                        /* Formules de renormalisation des differentielles dans [0,1] ; elles sont utilisees lorsque */
                                        /* la production d'images en couleurs est demandee (voir 'visualiser_en_RVB').               */

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

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

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

#include  xrk/attractor.14.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E   L ' A T T R A C T E U R   D E   L O R E N Z  :                                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Il est classiquement defini par                                                                                */
/*                  le systeme d'equations differentielles :                                                                         */
/*                                                                                                                                   */
/*                                       dx                                                                                          */
/*                                      ---- = -10.x + 10.y                                                                          */
/*                                       dt                                                                                          */
/*                                                                                                                                   */
/*                                       dy                                                                                          */
/*                                      ---- = 28.x - y - x.z                                                                        */
/*                                       dt                                                                                          */
/*                                                                                                                                   */
/*                                       dz       8                                                                                  */
/*                                      ---- = - ---.z + x.y                                                                         */
/*                                       dt       3                                                                                  */
/*                                                                                                                                   */
/*                  ce que l'on peut generaliser en :                                                                                */
/*                                                                                                                                   */
/*                                       dx                                                                                          */
/*                                      ---- = (X .x + X .y + X .z) + (X  .x.y + X  .y.z + X  .z.x) + (X   .x.y.z) = F (x,y,z)       */
/*                                       dt      x      y      z        xy        yz        zx          xyz           x              */
/*                                                                                                                                   */
/*                                       dy                                                                                          */
/*                                      ---- = (Y .x + Y .y + Y .z) + (Y  .x.y + Y  .y.z + Y  .z.x) + (Y   .x.y.z) = F (x,y,z)       */
/*                                       dt      x      y      z        xy        yz        zx          xyz           y              */
/*                                                                                                                                   */
/*                                       dz                                                                                          */
/*                                      ---- = (Z .x + Z .y + Z .z) + (Z  .x.y + Z  .y.z + Z  .z.x) + (Z   .x.y.z) = F (x,y,z)       */
/*                                       dt      x      y      z        xy        yz        zx          xyz           z              */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D U   P A S S A G E   D E   L ' I M A G E   A   L ' E S P A C E   D E S   P H A S E S  :             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   COEFFICIENT_Xi_Xl                                                                                                             \
                    FU
#define   COEFFICIENT_Yi_Xl                                                                                                             \
                    FZERO
#define   COEFFICIENT_Ni_Xl                                                                                                             \
                    FZERO
#define   TRANSLATION_i_Xl                                                                                                              \
                    FZERO
DEFV(Local,DEFV(Float,INIT(coefficient_Xi_Xl,COEFFICIENT_Xi_Xl)));
DEFV(Local,DEFV(Float,INIT(coefficient_Yi_Xl,COEFFICIENT_Yi_Xl)));
DEFV(Local,DEFV(Float,INIT(coefficient_Ni_Xl,COEFFICIENT_Ni_Xl)));
DEFV(Local,DEFV(Float,INIT(translation_i_Xl,TRANSLATION_i_Xl)));
                                        /* Passage de l'image a la coordonnee 'X' de l'espace des phases.                            */

#define   COEFFICIENT_Xi_Yl                                                                                                             \
                    FZERO
#define   COEFFICIENT_Yi_Yl                                                                                                             \
                    FU
#define   COEFFICIENT_Ni_Yl                                                                                                             \
                    FZERO
#define   TRANSLATION_i_Yl                                                                                                              \
                    FZERO
DEFV(Local,DEFV(Float,INIT(coefficient_Xi_Yl,COEFFICIENT_Xi_Yl)));
DEFV(Local,DEFV(Float,INIT(coefficient_Yi_Yl,COEFFICIENT_Yi_Yl)));
DEFV(Local,DEFV(Float,INIT(coefficient_Ni_Yl,COEFFICIENT_Ni_Yl)));
DEFV(Local,DEFV(Float,INIT(translation_i_Yl,TRANSLATION_i_Yl)));
                                        /* Passage de l'image a la coordonnee 'Y' de l'espace des phases.                            */

#define   COEFFICIENT_Xi_Zl                                                                                                             \
                    FZERO
#define   COEFFICIENT_Yi_Zl                                                                                                             \
                    FZERO
#define   COEFFICIENT_Ni_Zl                                                                                                             \
                    FU
#define   TRANSLATION_i_Zl                                                                                                              \
                    FZERO
DEFV(Local,DEFV(Float,INIT(coefficient_Xi_Zl,COEFFICIENT_Xi_Zl)));
DEFV(Local,DEFV(Float,INIT(coefficient_Yi_Zl,COEFFICIENT_Yi_Zl)));
DEFV(Local,DEFV(Float,INIT(coefficient_Ni_Zl,COEFFICIENT_Ni_Zl)));
DEFV(Local,DEFV(Float,INIT(translation_i_Zl,TRANSLATION_i_Zl)));
                                        /* Passage de l'image a la coordonnee 'Z' de l'espace des phases.                            */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D U   P A S S A G E   D E   L ' E S P A C E   D E S   P H A S E S   A   L ' I M A G E  :             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   COEFFICIENT_Xl_Xi                                                                                                             \
                    FU
#define   COEFFICIENT_Yl_Xi                                                                                                             \
                    FZERO
#define   COEFFICIENT_Zl_Xi                                                                                                             \
                    FZERO
#define   TRANSLATION_l_Xi                                                                                                              \
                    FZERO
DEFV(Local,DEFV(Float,INIT(coefficient_Xl_Xi,COEFFICIENT_Xl_Xi)));
DEFV(Local,DEFV(Float,INIT(coefficient_Yl_Xi,COEFFICIENT_Yl_Xi)));
DEFV(Local,DEFV(Float,INIT(coefficient_Zl_Xi,COEFFICIENT_Zl_Xi)));
DEFV(Local,DEFV(Float,INIT(translation_l_Xi,TRANSLATION_l_Xi)));
                                        /* Passage de l'espace des phases a la coordonnee 'X' de l'image.                            */

#define   COEFFICIENT_Xl_Yi                                                                                                             \
                    FZERO
#define   COEFFICIENT_Yl_Yi                                                                                                             \
                    FU
#define   COEFFICIENT_Zl_Yi                                                                                                             \
                    FZERO
#define   TRANSLATION_l_Yi                                                                                                              \
                    FZERO
DEFV(Local,DEFV(Float,INIT(coefficient_Xl_Yi,COEFFICIENT_Xl_Yi)));
DEFV(Local,DEFV(Float,INIT(coefficient_Yl_Yi,COEFFICIENT_Yl_Yi)));
DEFV(Local,DEFV(Float,INIT(coefficient_Zl_Yi,COEFFICIENT_Zl_Yi)));
DEFV(Local,DEFV(Float,INIT(translation_l_Yi,TRANSLATION_l_Yi)));
                                        /* Passage de l'espace des phases a la coordonnee 'Y' de l'image.                            */

#define   COEFFICIENT_Xl_Ni                                                                                                             \
                    FZERO
#define   COEFFICIENT_Yl_Ni                                                                                                             \
                    FZERO
#define   COEFFICIENT_Zl_Ni                                                                                                             \
                    FU
#define   TRANSLATION_l_Ni                                                                                                              \
                    FZERO
DEFV(Local,DEFV(Float,INIT(coefficient_Xl_Ni,COEFFICIENT_Xl_Ni)));
DEFV(Local,DEFV(Float,INIT(coefficient_Yl_Ni,COEFFICIENT_Yl_Ni)));
DEFV(Local,DEFV(Float,INIT(coefficient_Zl_Ni,COEFFICIENT_Zl_Ni)));
DEFV(Local,DEFV(Float,INIT(translation_l_Ni,TRANSLATION_l_Ni)));
                                        /* Passage de l'espace des phases au niveau de l'image.                                      */

#define   DEPLACER_LE_POINT                                                                                                             \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(deplacer_le_point,DEPLACER_LE_POINT)));
                                        /* Indique si l'on utilise {cx,cy} ('VRAI') ou {X,Y} ('FAUX') en tant que coordonnees de     */
                                        /* marquage dans 'ImageR'.                                                                   */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E   L ' I N T E G R A T I O N   D U   S Y S T E M E                                                */
/*        D ' E Q U A T I O N S   D I F F E R E N T I E L L E S  :                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/integr.1B.vv.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   I N I T I A L I S A T I O N S  :                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T R A N S F O R M A T I O N   D ' U N E   I M A G E   P A R   L ' A T T R A C T E U R   D E   L O R E N Z  :               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE));
     /*..............................................................................................................................*/
     GET_ARGUMENTSv(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA);
                         GET_ARGUMENT_C("imageR=""R=",nom_imageR);

                         GET_ARGUMENT_L("standard=",les_images_sont_standards);

                         GET_ARGUMENT_F("COEFFICIENT_Xx=",Xx);
                         GET_ARGUMENT_F("COEFFICIENT_Xy=",Xy);
                         GET_ARGUMENT_F("COEFFICIENT_Xz=",Xz);
                         GET_ARGUMENT_F("COEFFICIENT_Xxy=",Xxy);
                         GET_ARGUMENT_F("COEFFICIENT_Xyz=",Xyz);
                         GET_ARGUMENT_F("COEFFICIENT_Xzx=",Xzx);
                         GET_ARGUMENT_F("COEFFICIENT_Xxyz=",Xxyz);

                         GET_ARGUMENT_F("COEFFICIENT_Yx=",Yx);
                         GET_ARGUMENT_F("COEFFICIENT_Yy=",Yy);
                         GET_ARGUMENT_F("COEFFICIENT_Yz=",Yz);
                         GET_ARGUMENT_F("COEFFICIENT_Yxy=",Yxy);
                         GET_ARGUMENT_F("COEFFICIENT_Yyz=",Yyz);
                         GET_ARGUMENT_F("COEFFICIENT_Yzx=",Yzx);
                         GET_ARGUMENT_F("COEFFICIENT_Yxyz=",Yxyz);

                         GET_ARGUMENT_F("COEFFICIENT_Zx=",Zx);
                         GET_ARGUMENT_F("COEFFICIENT_Zy=",Zy);
                         GET_ARGUMENT_F("COEFFICIENT_Zz=",Zz);
                         GET_ARGUMENT_F("COEFFICIENT_Zxy=",Zxy);
                         GET_ARGUMENT_F("COEFFICIENT_Zyz=",Zyz);
                         GET_ARGUMENT_F("COEFFICIENT_Zzx=",Zzx);
                         GET_ARGUMENT_F("COEFFICIENT_Zxyz=",Zxyz);

                         GET_ARGUMENT_F("Xi_Xl=",coefficient_Xi_Xl);
                         GET_ARGUMENT_F("Yi_Xl=",coefficient_Yi_Xl);
                         GET_ARGUMENT_F("Ni_Xl=",coefficient_Ni_Xl);
                         GET_ARGUMENT_F("i_Xl=""Ti_Xl=",translation_i_Xl);

                         GET_ARGUMENT_F("Xi_Yl=",coefficient_Xi_Yl);
                         GET_ARGUMENT_F("Yi_Yl=",coefficient_Yi_Yl);
                         GET_ARGUMENT_F("Ni_Yl=",coefficient_Ni_Yl);
                         GET_ARGUMENT_F("i_Yl=""Ti_Yl=",translation_i_Yl);

                         GET_ARGUMENT_F("Xi_Zl=",coefficient_Xi_Zl);
                         GET_ARGUMENT_F("Yi_Zl=",coefficient_Yi_Zl);
                         GET_ARGUMENT_F("Ni_Zl=",coefficient_Ni_Zl);
                         GET_ARGUMENT_F("i_Zl=""Ti_Zl=",translation_i_Zl);

                         GET_ARGUMENT_F("Xl_Xi=",coefficient_Xl_Xi);
                         GET_ARGUMENT_F("Yl_Xi=",coefficient_Yl_Xi);
                         GET_ARGUMENT_F("Zl_Xi=",coefficient_Zl_Xi);
                         GET_ARGUMENT_F("l_Xi=""Tl_Xi=",translation_l_Xi);

                         GET_ARGUMENT_F("Xl_Yi=",coefficient_Xl_Yi);
                         GET_ARGUMENT_F("Yl_Yi=",coefficient_Yl_Yi);
                         GET_ARGUMENT_F("Zl_Yi=",coefficient_Zl_Yi);
                         GET_ARGUMENT_F("l_Yi=""Tl_Yi=",translation_l_Yi);

                         GET_ARGUMENT_F("Xl_Ni=",coefficient_Xl_Ni);
                         GET_ARGUMENT_F("Yl_Ni=",coefficient_Yl_Ni);
                         GET_ARGUMENT_F("Zl_Ni=",coefficient_Zl_Ni);
                         GET_ARGUMENT_F("l_Ni=""Tl_Ni=",translation_l_Ni);

                         GET_ARGUMENT_L("deplacer=",deplacer_le_point);

                         GET_ARGUMENT_I("n=""iterations=",nombre_d_iterations);

                         GET_ARGUMENT_F("dt=""dct=",dct);

                         GET_ARGUMENT_I("ordre=""methode=""integration=",ordre_de_la_methode_d_integration);
                                        /* Les synonymes de "ordre=", ont ete introduits le 20060608151515...                        */
                         )
                    );

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

     Test(PAS_D_ERREUR(CODE_ERROR(gIload_image(les_images_sont_standards,ImageA,IFmageA,nom_imageA))))
          Bblock
          CALi(gInettoyage(les_images_sont_standards,ImageR,IFmageR));
                                        /* Nettoyage de l'image Resultat.                                                            */

          begin_image
               Bblock
               DEFV(Float,INIT(X_courant_de_ImageA,_____cNORMALISE_OX(X)));
               DEFV(Float,INIT(Y_courant_de_ImageA,_____cNORMALISE_OY(Y)));
               DEFV(genere_Float,INIT(niveau_courant_de_ImageA,FLOT__NIVEAU_UNDEF));
                                        /* Point courant de l'image Argument.                                                        */
               DEFV(Int,INIT(X_courant_de_ImageR,UNDEF));
               DEFV(Int,INIT(Y_courant_de_ImageR,UNDEF));
               DEFV(genere_Float,INIT(niveau_courant_de_ImageR,FLOT__NIVEAU_UNDEF));
                                        /* Point courant de l'image Resultat.                                                        */

                                        /* Pour chaque point {X,Y} de l'image Argument, on reinitialise l'integration :              */

               RE_INITIALISATION_DE_L_HORLOGE;
                                        /* Initialisation du temps.                                                                  */

               EGAL(niveau_courant_de_ImageA
                   ,COND(EST_VRAI(les_images_sont_standards)
                        ,______NORMALISE_NIVEAU(load_point(ImageA,X,Y))
                        ,loadF_point(IFmageA,X,Y)
                         )
                    );

               EGAL(cx
                   ,X_01_DANS_PHYSIQUE(LIN3(coefficient_Xi_Xl,X_courant_de_ImageA
                                           ,coefficient_Yi_Xl,Y_courant_de_ImageA
                                           ,coefficient_Ni_Xl,niveau_courant_de_ImageA
                                           ,translation_i_Xl
                                            )
                                       )
                    );
               EGAL(cy
                   ,Y_01_DANS_PHYSIQUE(LIN3(coefficient_Xi_Yl,X_courant_de_ImageA
                                           ,coefficient_Yi_Yl,Y_courant_de_ImageA
                                           ,coefficient_Ni_Yl,niveau_courant_de_ImageA
                                           ,translation_i_Yl
                                            )
                                       )
                    );
               EGAL(cz
                   ,Z_01_DANS_PHYSIQUE(LIN3(coefficient_Xi_Zl,X_courant_de_ImageA
                                           ,coefficient_Yi_Zl,Y_courant_de_ImageA
                                           ,coefficient_Ni_Zl,niveau_courant_de_ImageA
                                           ,translation_i_Zl
                                            )
                                       )
                    );
                                        /* Initialisation des conditions initiales a partir de l'image.                              */

               EGAL(dcx,FZERO);
               EGAL(dcy,FZERO);
               EGAL(dcz,FZERO);
                                        /* Initialisation des differentielles a priori. On notera que 'FZERO' est la valeur la       */
                                        /* plus "logique"...                                                                         */

               Komp(numero_de_l_iteration_courante,nombre_d_iterations)
                    Bblock
                    INTEGRATION_D_UN_SYSTEME_D_EQUATIONS_DIFFERENTIELLES_O1(temps_courant,dct);
                                        /* Integration du systeme d'equations differentielles suivant la methode choisie...          */

                    INCREMENTATION_DE_L_HORLOGE(dct);
                                        /* Simulation du temps de la simulation...                                                   */
                    Eblock
               EKom

               EGAL(X_courant_de_ImageR
                   ,COND(IL_FAUT(deplacer_le_point)
                        ,_cDENORMALISE_OX(LIN3(coefficient_Xl_Xi,X_PHYSIQUE_DANS_01(cx)
                                              ,coefficient_Yl_Xi,Y_PHYSIQUE_DANS_01(cy)
                                              ,coefficient_Zl_Xi,Z_PHYSIQUE_DANS_01(cz)
                                              ,translation_l_Xi
                                               )
                                          )
                        ,X
                         )
                    );
               EGAL(Y_courant_de_ImageR
                   ,COND(IL_FAUT(deplacer_le_point)
                        ,_cDENORMALISE_OY(LIN3(coefficient_Xl_Yi,X_PHYSIQUE_DANS_01(cx)
                                              ,coefficient_Yl_Yi,Y_PHYSIQUE_DANS_01(cy)
                                              ,coefficient_Zl_Yi,Z_PHYSIQUE_DANS_01(cz)
                                              ,translation_l_Yi
                                               )
                                          )
                        ,Y
                         )
                    );
               EGAL(niveau_courant_de_ImageR
                   ,LIN3(coefficient_Xl_Ni,X_PHYSIQUE_DANS_01(cx)
                        ,coefficient_Yl_Ni,Y_PHYSIQUE_DANS_01(cy)
                        ,coefficient_Zl_Ni,Z_PHYSIQUE_DANS_01(cz)
                        ,translation_l_Ni
                         )
                    );
                                        /* Definition du point courant de l'image Resultat.                                          */

               Test(EST_VRAI(les_images_sont_standards))
                    Bblock
                                        /* Cas d'une image 'image' :                                                                 */
                    store_point_valide(__DENORMALISE_NIVEAU(niveau_courant_de_ImageR)
                                      ,ImageR
                                      ,X_courant_de_ImageR
                                      ,Y_courant_de_ImageR
                                      ,FVARIABLE
                                       );
                    Eblock
               ATes
                    Bblock
                                        /* Cas d'une image 'imageF' :                                                                */
                    storeF_point_valide(niveau_courant_de_ImageR
                                       ,IFmageR
                                       ,X_courant_de_ImageR
                                       ,Y_courant_de_ImageR
                                        );
                    Eblock
               ETes
               Eblock
          end_image

          CALi(gIupdate_image(les_images_sont_standards,nom_imageR,ImageR,IFmageR));
          Eblock
     ATes
          Bblock
          Test__CODE_ERREUR__ERREUR07;
          Eblock
     ETes

     RETU_Commande;
     Eblock
ECommande



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.