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