/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O U P E S   H O R I Z O N T A L E   E T   V E R T I C A L E   D A N S   U N E   I M A G E  :                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xci/coupe$K' :                                                                                                 */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 1989??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xci/coupe.01.I"

#define   POSITION_COUPE_HORIZONTALE                                                                                                    \
                    Ycentre                                                                                                             \
                                        /* Ordonnee de la coupe horizontale dans l'image.                                            */
#define   POSITION_COUPE_VERTICALE                                                                                                      \
                    Xcentre                                                                                                             \
                                        /* Abscisse de la coupe verticale dans l'image.                                              */

#define   EDITER_LES_INTEGRALES                                                                                                         \
                    FAUX                                                                                                                \
                                        /* Faut-il editer la valeur des integrales evaluees par la methode des trapezes ?            */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xci/coupe.02.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O U P E S   H O R I Z O N T A L E   E T   V E R T I C A L E   D A N S   U N E   I M A G E  :                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
     DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE));
     DEFV(Logical,INIT(coupe_horizontale,COUPE_HORIZONTALE));
     DEFV(Logical,INIT(coupe_verticale,COUPE_VERTICALE));
                                        /* Nature des coupes a realiser.                                                             */
     DEFV(Float,INIT(position_coupe_horizontale,FLOT__UNDEF));
     DEFV(Float,INIT(position_coupe_verticale,FLOT__UNDEF));
                                        /* Coordonnees des coupes a realiser.                                                        */
     DEFV(Logical,INIT(marquer_l_emplacement_des_coupes,MARQUER_L_EMPLACEMENT_DES_COUPES));
                                        /* Faut-il marquer l'emplacement de la coupe effectuee dans l'image ?                        */
     DEFV(Logical,INIT(marquer_l_emplacement_des_coupes_avant_les_coupes,MARQUER_L_EMPLACEMENT_DES_COUPES_AVANT_LES_COUPES));
                                        /* Faut-il marquer l'emplacement de la coupe effectuee dans l'image avant la coupe elle-meme */
                                        /* ('VRAI') ou apres ('FAUX') ?                                                              */
     DEFV(Logical,INIT(marquer_les_coupes_par_un_segment,MARQUER_LES_COUPES_PAR_UN_SEGMENT));
                                        /* Faut-il marquer les coupes par un segment ('VRAI') ou par un point isole ('FAUX') ?       */
     DEFV(genere_p,INIT(niveau_de_la_coupe_horizontale,NIVEAU_DE_LA_COUPE_HORIZONTALE));
     DEFV(genere_p,INIT(niveau_de_la_coupe_verticale,NIVEAU_DE_LA_COUPE_VERTICALE));
                                        /* Niveau de marquage des coupes a realiser.                                                 */
     DEFV(genere_p,INIT(niveau_du_profil_horizontal,NIVEAU_DU_PROFIL_HORIZONTAL));
     DEFV(genere_p,INIT(niveau_du_profil_vertical,NIVEAU_DU_PROFIL_VERTICAL));
                                        /* Niveau de marquage des profils a realiser.                                                */
     DEFV(Logical,INIT(editer_les_integrales,EDITER_LES_INTEGRALES));
                                        /* Faut-il editer la valeur des integrales evaluees par la methode des trapezes ?            */
     DEFV(Float,INIT(integrale_horizontale,FLOT__UNDEF));
     DEFV(Float,INIT(integrale_verticale,FLOT__UNDEF));
                                        /* Valeur des integrales horizontales et verticales au cas ou il faudrait les editer...      */
     /*..............................................................................................................................*/
     GET_ARGUMENTSg(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_L("SX_SY_SZ_____compatibilite_20070416=""compatibilite_20070416="
                                       ,SX_SY_SZ_____compatibilite_20070416
                                        );
                                        /* Parametre introduit le 20070416155727...                                                  */

                         GET_ARGUMENT_C("imageA=""A=",nom_imageA);
                         GET_ARGUMENT_C("imageR=""R=",nom_imageR);

                         GET_ARGUMENT_L("horizontale=""horizontal=""h=",coupe_horizontale);
                         GET_ARGUMENT_L("verticale=""vertical=""v=",coupe_verticale);
                         GIT_ARGUMENT_F("y=""ph=""Y=",position_coupe_horizontale,_____cNORMALISE_OY(POSITION_COUPE_HORIZONTALE));
                         GIT_ARGUMENT_F("x=""pv=""X=",position_coupe_verticale,_____cNORMALISE_OX(POSITION_COUPE_VERTICALE));
                         GET_ARGUMENT_L("marquage=",marquer_l_emplacement_des_coupes);
                         GET_ARGUMENT_L("avant=",marquer_l_emplacement_des_coupes_avant_les_coupes);
                         GET_ARGUMENT_L("segments=""segment=",marquer_les_coupes_par_un_segment);
                         GET_ARGUMENT_P("nch=",niveau_de_la_coupe_horizontale);
                         GET_ARGUMENT_P("ncv=",niveau_de_la_coupe_verticale);
                         GET_ARGUMENT_P("nph=",niveau_du_profil_horizontal);
                         GET_ARGUMENT_P("npv=",niveau_du_profil_vertical);
                         GET_ARGUMENT_L("integrales=""integrale=",editer_les_integrales);
                         GET_ARGUMENT_F("echelle_horizontale=""ey=",Iprofil_horizontal_____echelle_des_segments);
                         GET_ARGUMENT_F("echelle_verticale=""ex=",Iprofil_vertical_____echelle_des_segments);
                                        /* Le 20200506113112, les arguments "ex=" et "ey=" ont ete introduits en notant le petit     */
                                        /* paradoxe :                                                                                */
                                        /*                                                                                           */
                                        /*                  y   -->   horizontal                                                     */
                                        /*                  x   -->   vertical                                                       */
                                        /*                                                                                           */
                                        /* "horizontal" et "vertical" venant en fait du nom des deux fonctions utilisees...          */
                         GET_ARGUMENT_L("marquer_NOIR_horizontal=""NOIRh=",Iprofil_horizontal_____marquer_le_NOIR);
                         GET_ARGUMENT_L("marquer_NOIR_vertical=""NOIRv=",Iprofil_vertical_____marquer_le_NOIR);
                                        /* Introduit le 20200506125540 pour 'v $Fdivers GProfilP'...                                 */
                         )
                    );

     CALi(Inoir(ImageG));
                                        /* Initialisation de l'image Resultat.                                                       */

     Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageA,nom_imageA))))
          Bblock
          Test(IL_FAUT(marquer_l_emplacement_des_coupes_avant_les_coupes))
               Bblock
               MARQUAGE_DE_L_EMPLACEMENT_DES_COUPES;
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          Test(IL_FAUT(coupe_horizontale))
               Bblock
               EGAL(integrale_horizontale
                   ,Iprofil_horizontal(ImageG
                                      ,ImageA
                                      ,position_coupe_horizontale
                                      ,niveau_du_profil_horizontal
                                      ,marquer_les_coupes_par_un_segment
                                       )
                    );
                                        /* Calcul du profil horizontal.                                                              */

               Test(IL_FAUT(editer_les_integrales))
                    Bblock
                    CAL3(Prme1("integrale horizontale = %g\n",integrale_horizontale));
                    Eblock
               ATes
                    Bblock
                    Eblock
               ETes
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          Test(IL_FAUT(coupe_verticale))
               Bblock
               EGAL(integrale_verticale
                   ,Iprofil_vertical(ImageG
                                    ,ImageA
                                    ,position_coupe_verticale
                                    ,niveau_du_profil_vertical
                                    ,marquer_les_coupes_par_un_segment
                                     )
                    );
                                        /* Calcul du profil vertical.                                                                */

               Test(IL_FAUT(editer_les_integrales))
                    Bblock
                    CAL3(Prme1("integrale verticale = %g\n",integrale_verticale));
                    Eblock
               ATes
                    Bblock
                    Eblock
               ETes
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          Test(IL_NE_FAUT_PAS(marquer_l_emplacement_des_coupes_avant_les_coupes))
               Bblock
               MARQUAGE_DE_L_EMPLACEMENT_DES_COUPES;
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          Test(IL_FAUT(editer_les_integrales))
               Bblock
               CALS(Fsauts_de_lignes(UN));
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          CALi(Iupdate_image(nom_imageR,ImageG));
          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.