/*************************************************************************************************************************************/
/* */
/* I N I T I A L I S A T I O N D ' U N E I M A G E P A R U N C H A M P " C H A P E A U M E X I C A I N " : */
/* */
/* */
/* Author of '$xci/chapeau_mexi$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 1993??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 : */
/* */
/*************************************************************************************************************************************/
#define GENERER_LES_GET_ARGUMENTS_DE_CONTROLE_DE_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_FLOTTANTS
/* Introduit le 20071224112817... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S : */
/* */
/*************************************************************************************************************************************/
#include xci/genere_ch.01.I"
#redefine X_ECHELLE \
FDEUX \
/* Echelle horizontale du champ. */
#redefine Y_ECHELLE \
FDEUX \
/* Echelle verticale du champ. */
/* ATTENTION : le 20110915135627 je note que les deux redefinitions precedentes : */
/* */
/* #redefine X_ECHELLE \ */
/* FDEUX */
/* #redefine Y_ECHELLE \ */
/* FDEUX */
/* */
/* posent probleme a cause de 'v $xci/genere_ch.01$I O._FENETRE_DE_RENORMALISATION' qui */
/* utilise 'X_ECHELLE' et 'Y_ECHELLE' et non pas la structure 'echelle' telle qu'elle */
/* est definie dans 'v $xci/genere_ch.03$I echelle.X_ECHELLE.Y_ECHELLE'. Il est alors */
/* difficile de centrer le champ, meme avec : */
/* */
/* Ex=1 Ey=1 */
/* */
/* car, en effet, il faudrait aussi specifier la fenetre de renormalisation par : */
/* */
/* xbg=... xhd=... ybg=... yhd=... */
/* */
/* ('v $xiii/mono_image$DEF ACCES_A_LA_COORDONNEE_._D_UN_CHAMP_3D'). Il est donc suggere */
/* d'utiliser plutot : */
/* */
/* carre_X_CHAMP_3D_____compatibilite_20100210=VRAI */
/* carre_Y_CHAMP_3D_____compatibilite_20100210=VRAI */
/* */
/* qui supprime le besoin de cette fenetre de renormalisation, d'ou le forcage des ces */
/* deux arguments ci-apres... */
#define CHAPEAU_MEXICAIN \
FU \
/* Coefficient d'"importance" global... */
#ifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_01
# define CHAPEAU_MEXICAIN_R4 \
NEUT(FRA4(FU)) \
/* Coefficient d'"importance" du carre du carre du rayon 'R'. */
# define CHAPEAU_MEXICAIN_R2 \
NEGA(FRA2(FU)) \
/* Coefficient d'"importance" du carre du rayon 'R'. */
# define CHAPEAU_MEXICAIN_TRANSLATION \
NEUT(FU) \
/* Translation. */
#Aifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_01
#Eifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_01
#ifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_02
#Aifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_02
#Eifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_02
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* I N I T I A L I S A T I O N D ' U N E I M A G E P A R U N C H A M P " C H A P E A U M E X I C A I N " : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
#include xci/genere_ch.02.I"
/*..............................................................................................................................*/
EGAL(ACCES_A_LA_COORDONNEE_X_D_UN_CHAMP_3D_____compatibilite_20100210,VRAI);
EGAL(ACCES_A_LA_COORDONNEE_Y_D_UN_CHAMP_3D_____compatibilite_20100210,VRAI);
/* Introduit le 20110915135627 (voir 'v $xci/chapeau_mexi$K 20110915135627' ci-dessus). */
EGAL(Fchapeau_mexicain_____coefficient_global,CHAPEAU_MEXICAIN);
#ifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_01
EGAL(Fchapeau_mexicain_____coefficient_R4,CHAPEAU_MEXICAIN_R4);
EGAL(Fchapeau_mexicain_____coefficient_R2,CHAPEAU_MEXICAIN_R2);
EGAL(Fchapeau_mexicain_____translation,CHAPEAU_MEXICAIN_TRANSLATION);
/* Definition du champ "chapeau mexicain"... */
#Aifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_01
#Eifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_01
#ifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_02
#Aifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_02
#Eifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_02
#include xci/genere_ch.03.I"
#include xci/genere_ch.11.I"
#ifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_01
GET_ARGUMENTSi(nombre_d_arguments
,BLOC(GET_ARGUMENT_C("imageR=""R=",nom_imageR);
GET_ARGUMENT_L("standard=",les_images_sont_standards);
PROCESS_ARGUMENT_L("arithmetique_etendue_chapeau_mexicain=""ariecm=""ariec="
,Fchapeau_mexicain____`use_arithmetique_etendue_et_non_basique
,BLOC(VIDE;)
,BLOC(Bblock
EGAL(si_le_GooF_est_activable`use_arithmetique_etendue_et_non_basique
,Fchapeau_mexicain____`use_arithmetique_etendue_et_non_basique
);
Eblock
)
);
PROCESS_ARGUMENT_N("arithmetique_de_base_chapeau_mexicain=""aribcm=""aribc="
,Fchapeau_mexicain____`use_arithmetique_etendue_et_non_basique
,BLOC(VIDE;)
,BLOC(Bblock
EGAL(si_le_GooF_est_activable`use_arithmetique_etendue_et_non_basique
,NOTL(Fchapeau_mexicain____`use_arithmetique_etendue_et_non_basique)
);
/* Le 20071226162815 fut introduit le 'NOTL(...)' a cause de 'PROCESS_ARGUMENT_N(...)' car, */
/* en effet, lorsque le 'EGAL(...)' est execute, le parametre logique en cours de traitement */
/* est alors inverse ('v $xig/fonct$vv$DEF NOTL.valeur_L_par_defaut'). */
Eblock
)
);
/* Parametres d'arithmetique etendue introduits le 20071224112817... */
GET_ARGUMENT_F("c=",Fchapeau_mexicain_____coefficient_global);
GET_ARGUMENT_F("cR4=",Fchapeau_mexicain_____coefficient_R4);
GET_ARGUMENT_F("cR2=",Fchapeau_mexicain_____coefficient_R2);
GET_ARGUMENT_F("tr=",Fchapeau_mexicain_____translation);
PROCESS_ARGUMENTS_DE_PARAMETRAGE_2D_DE_____ACCES_A_UN_CHAMP_3D;
/* Introduit le 20060516111032... */
)
);
#Aifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_01
#Eifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_01
#ifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_02
GET_ARGUMENTSi(nombre_d_arguments
,BLOC(GET_ARGUMENT_C("imageR=""R=",nom_imageR);
GET_ARGUMENT_L("standard=",les_images_sont_standards);
PROCESS_ARGUMENT_L("arithmetique_etendue_chapeau_mexicain=""ariecm=""ariec="
,Fchapeau_mexicain____`use_arithmetique_etendue_et_non_basique
,BLOC(VIDE;)
,BLOC(Bblock
EGAL(si_le_GooF_est_activable`use_arithmetique_etendue_et_non_basique
,Fchapeau_mexicain____`use_arithmetique_etendue_et_non_basique
);
Eblock
)
);
PROCESS_ARGUMENT_N("arithmetique_de_base_chapeau_mexicain=""aribcm=""aribc="
,Fchapeau_mexicain____`use_arithmetique_etendue_et_non_basique
,BLOC(VIDE;)
,BLOC(Bblock
EGAL(si_le_GooF_est_activable`use_arithmetique_etendue_et_non_basique
,Fchapeau_mexicain____`use_arithmetique_etendue_et_non_basique
);
Eblock
)
);
/* Parametres d'arithmetique etendue introduits le 20071224112817... */
GET_ARGUMENT_F("c=",Fchapeau_mexicain_____coefficient_global);
GET_ARGUMENT_F("d=",Fchapeau_mexicain_____exposant_du_rayon);
GET_ARGUMENT_F("f=""b=",Fchapeau_mexicain_____facteur_du_rayon_dans_l_exponentielle);
GET_ARGUMENT_F("k=",Fchapeau_mexicain_____facteur_du_carre_du_rayon_dans_l_exponentielle);
GET_ARGUMENT_F("m=",Fchapeau_mexicain_____coefficient_m_du_trinome);
GET_ARGUMENT_F("n=",Fchapeau_mexicain_____coefficient_n_du_trinome);
GET_ARGUMENT_F("p=",Fchapeau_mexicain_____coefficient_p_du_trinome);
GET_ARGUMENT_F("tr=",Fchapeau_mexicain_____translation);
PROCESS_ARGUMENTS_DE_PARAMETRAGE_2D_DE_____ACCES_A_UN_CHAMP_3D;
/* Introduit le 20060516111032... */
)
);
#Aifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_02
#Eifdef FACON_DE_CALCULER_LE_CHAMP_CHAPEAU_MEXICAIN_VERSION_02
#include xci/genere_ch.04.I"
GENERATION_DU_CHAMP_DEMANDE(Fchapeau_mexicain,nom_imageR,Zf_ARGUMENT_INUTILE,Tf_ARGUMENT_INUTILE,UPD_CHAMP_S);
/* On notera qu'avant le 20000211155427 les images "standard=VRAI" etaient generees via : */
/* */
/* CALS(IFgenere_champ(...)); */
/* CALS(Ifloat_std_avec_renormalisation(...)); */
/* */
/* Ce n'est donc plus le cas apres cette date ; dorenavant, la generation se fait via : */
/* */
/* CALS(Igenere_champ(...)); */
/* */
/* qui lui-meme fait un '__DENORMALISE_NIVEAU(...)' sans verifier au prealable que le */
/* niveau flottant ('v $xiii/mono_image$FON niveau_du_champ') "rempli" bien [0,1]. Or, */
/* pour le champ 'Fchapeau_mexicain(...)' ce n'est pas le cas (en format 'Pal', le niveau */
/* flottant est dans [0,1.946e-07]). L'image "standard=VRAI" ainsi generee est donc 'NOIR'. */
/* Pour obtenir le resultat attendu (qui est aussi le resultat que l'on obtenait avant le */
/* 20000211155427), le plus simple est alors de generer une image "standard=FAUX", puis de */
/* communiquer le resultat a '$xci/acces$X' avec les options : */
/* */
/* standard=FAUX zero=FAUX */
/* */
/* via le "pipe" par exemple... */
/* */
/* La nouvelle option "renormaliser=" introduite le 20050902113346 resoud ce probleme de */
/* facon plus simple et plus elegante... */
/* */
/* L'argument 'Tf_ARGUMENT_INUTILE' a ete introduit le 20100209110728. */
RETU_Commande;
Eblock
ECommande