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