/*************************************************************************************************************************************/
/* */
/* N O R M A L I S A T I O N / D E N O R M A L I S A T I O N D E C O O R D O N N E E S : */
/* */
/* */
/* Author of '$xci/coordonnees$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 : */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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/coordonne.01.I"
#define DENORMALISER \
FAUX \
/* Faut-il denormaliser ('VRAI') ou normaliser ('FAUX') ? */
#define ABSCISSE \
VRAI \
/* Doit-on traiter une abscisse ('VRAI') ou pas ('FAUX') ? */
#define ABSCISSE_DENORMALISEE \
ADD2(Xmin,PasX)
#define ABSCISSE_NORMALISEE \
_____cNORMALISE_OX(I_cHOMOTHETIE_Std_OX(ABSCISSE_DENORMALISEE))
/* Abscisse implicite... */
/* */
/* Le 20120210183420, le 'I_cHOMOTHETIE_Std_OX(...)' fut introduit... */
#define ORDONNEE \
FAUX \
/* Doit-on traiter une ordonnee ('VRAI') ou pas ('FAUX') ? */
#define ORDONNEE_DENORMALISEE \
ADD2(Ymin,PasY)
#define ORDONNEE_NORMALISEE \
_____cNORMALISE_OY(I_cHOMOTHETIE_Std_OY(ORDONNEE_DENORMALISEE))
/* Ordonnee implicite... */
/* */
/* Le 20120210183420, le 'I_cHOMOTHETIE_Std_OY(...)' fut introduit... */
#define PROFONDEUR \
FAUX \
/* Doit-on traiter une profondeur ('VRAI') ou pas ('FAUX') ? */
#define PROFONDEUR_DENORMALISEE \
ADD2(Zmin,PasZ)
#define PROFONDEUR_NORMALISEE \
_____cNORMALISE_OZ(PROFONDEUR_DENORMALISEE)
/* Profondeur implicite... */
#define NIVEAU \
FAUX \
/* Doit-on traiter un niveau ('VRAI') ou pas ('FAUX') ? Ceci a ete introduit le */ \
/* 20070818184439... */
#define NIVEAU_DENORMALISE \
BLANC
#define NIVEAU_NORMALISE \
______NORMALISE_NIVEAU(NIVEAU_DENORMALISE)
/* Niveau implicite... */
#define NOMBRE_DE_DECIMALES \
SUCC(SUCC(SEIZE)) \
/* Definition du nombre de chiffres a editer (nom compris le point decimal...). ATTENTION, */ \
/* ce n'est pas le nombre de decimales, mais le nombre total de chiffres, y compris donc la */ \
/* partie entiere lors de l'utilisation du format "%g". Ceci fut introduit le 20070317115342 */ \
/* afin d'assurer la compatibilite anterieure... */
#nodefine AJOUTER_UN_K_LF_EN_FIN_DE_FORMAT_D_EDITION \
VRAI \
/* Cet indicateur indique si un 'K_LF' doit etre insere a la fin de 'format_d_edition' */ \
/* ("VRAI") ou pas ("FAUX") et a ete introduit le 20070317115342. Le 20141202163629, a */ \
/* cause de 'v $xci/valeurs.01$I AJOUTER_UN_K_LF_EN_FIN_DE_FORMAT_D_EDITION', 'define' */ \
/* devenu inutile a ete remplace par 'nodefine'. */
#include xcg/ARIT.01.I"
#include xci/valeurs.01.I"
/* Introduits le 20070317114431... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#include xci/valeurs.02.I"
/* Introduit le 20070317114431... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* N O R M A L I S A T I O N / D E N O R M A L I S A T I O N D E C O O R D O N N E E S : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
#include xci/coordonne.02.I"
DEFV(Logical,INIT(denormaliser,DENORMALISER));
/* Faut-il denormaliser ('VRAI') ou normaliser ('FAUX') ? */
DEFV(Logical,INIT(abscisse,ABSCISSE));
/* Doit-on traiter une abscisse ('VRAI') ou pas ('FAUX') ? */
DEFV(Int,INIT(abscisse_denormalisee,UNDEF));
DEFV(Float,INIT(abscisse_normalisee,FLOT__UNDEF));
/* Abscisse implicite... */
DEFV(Logical,INIT(ordonnee,ORDONNEE));
/* Doit-on traiter une ordonnee ('VRAI') ou pas ('FAUX') ? */
DEFV(Int,INIT(ordonnee_denormalisee,UNDEF));
DEFV(Float,INIT(ordonnee_normalisee,FLOT__UNDEF));
/* Ordonnee implicite... */
DEFV(Logical,INIT(profondeur,PROFONDEUR));
/* Doit-on traiter une profondeur ('VRAI') ou pas ('FAUX') ? */
DEFV(Int,INIT(profondeur_denormalisee,UNDEF));
DEFV(Float,INIT(profondeur_normalisee,FLOT__UNDEF));
/* Profondeur implicite... */
DEFV(Logical,INIT(niveau,NIVEAU));
/* Doit-on traiter un niveau ('VRAI') ou pas ('FAUX') ? Ceci a ete introduit le */
/* 20070818184439... */
DEFV(genere_p,INIT(niveau_denormalise,NIVEAU_DENORMALISE));
DEFV(Float,INIT(niveau_normalise,NIVEAU_NORMALISE));
/* Niveau implicite... */
#include xci/valeurs.03.I"
/* Introduit le 20070317114431... */
/*..............................................................................................................................*/
#include xci/coordonne.04.I"
/* Ceci a ete introduit le 20051218181932, ainsi que les 'PROCESS_ARGUMENT_?(...)' qui */
/* suivent... */
GET_ARGUMENTSi(nombre_d_arguments
,BLOC(GET_ARGUMENT_L("centrer=",centrer_les_coordonnees_normalisees);
GET_ARGUMENT_L("denormaliser=""denormalisees=""denorm=",denormaliser);
GET_ARGUMENT_N("normaliser=""normalisees=""norm=",denormaliser);
GET_ARGUMENT_L("ex=""eX=""abscisse=",abscisse);
/* Les parametres "ex=" et "eX=" ont ete introduits le 20070819134356... */
GIT_ARGUMENT_I("x=""X=",abscisse_denormalisee,ABSCISSE_DENORMALISEE);
GIT_ARGUMENT_F("xf=""Xf=",abscisse_normalisee,ABSCISSE_NORMALISEE);
GET_ARGUMENT_L("ordonnee=""ey=""eY=",ordonnee);
/* Les parametres "ey=" et "eY=" ont ete introduits le 20070819134356... */
GIT_ARGUMENT_I("y=""Y=",ordonnee_denormalisee,ORDONNEE_DENORMALISEE);
GIT_ARGUMENT_F("yf=""Yf=",ordonnee_normalisee,ORDONNEE_NORMALISEE);
GET_ARGUMENT_L("profondeur=""ez=""eZ=",profondeur);
/* Les parametres "ez=" et "eZ=" ont ete introduits le 20070819134356... */
GIT_ARGUMENT_I("z=""Z=",profondeur_denormalisee,PROFONDEUR_DENORMALISEE);
GIT_ARGUMENT_F("zf=""Zf=",profondeur_normalisee,PROFONDEUR_NORMALISEE);
GET_ARGUMENT_L("niveau=""en=""eN=",niveau);
GET_ARGUMENT_P("n=""N=",niveau_denormalise);
GET_ARGUMENT_F("nf=""Nf=",niveau_normalise);
/* Introduits le 20070818184439... */
/* */
/* ATTENTION : le 20070819113631 je note qu'il faut utiliser ici 'GET_ARGUMENT_P(...)' et */
/* non pas 'GIT_ARGUMENT_P(...)' ('v $xig/fonct$vv$DEF 20070819113024'). Par "symetrie", */
/* il en est fait de meme avec 'GET_ARGUMENT_F(...)'. On notera au passage que cela n'a en */
/* fait aucune importance (contrairement a {abscisse,ordonnee,profondeur} puisqu'en effet */
/* dans ces trois cas la normalisation/denormalisation depend de '$formatI', alors que pour */
/* {niveau} la normalisation/denormalisation est immuable...). */
/* */
/* Les parametres "en=" et "eN=" ont ete introduits le 20070819134356... */
PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_1;
PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_2;
/* Ces deux procedures furent introduites le 20070317115342... */
)
);
#include xci/coordonne.03.I"
Test(IL_FAUT(denormaliser))
Bblock
Test(IL_FAUT(abscisse))
Bblock
CAL2(Prin1("%d\n"
,TRANS_SUPER_cDENORMALISE_OX(abscisse_normalisee,translation_des_X_normalisees)
)
);
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(ordonnee))
Bblock
CAL2(Prin1("%d\n"
,TRANS_SUPER_cDENORMALISE_OY(ordonnee_normalisee,translation_des_Y_normalisees)
)
);
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(profondeur))
Bblock
CAL2(Prin1("%d\n",_cDENORMALISE_OZ(profondeur_normalisee)));
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(niveau))
Bblock
CAL2(Prin1("%d\n",__DENORMALISE_NIVEAU(niveau_normalise)));
/* Introduit le 20070818184439... */
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ATes
Bblock
Test(IL_FAUT(abscisse))
Bblock
EDITION_DE_LA_VALEUR_DE_L_OPERATEUR(TRANS_SUPER_cNORMALISE_OX(abscisse_denormalisee,translation_des_X_normalisees));
/* Le 20060105154711, le format "16g" est passe a "^^g" pour plus de souplesse... */
/* */
/* Le 20070317114431, fut introduit beaucoup plus de souplesse quant au format d'edition... */
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(ordonnee))
Bblock
EDITION_DE_LA_VALEUR_DE_L_OPERATEUR(TRANS_SUPER_cNORMALISE_OY(ordonnee_denormalisee,translation_des_Y_normalisees));
/* Le 20060105154711, le format "16g" est passe a "^^g" pour plus de souplesse... */
/* */
/* Le 20070317114431, fut introduit beaucoup plus de souplesse quant au format d'edition... */
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(profondeur))
Bblock
EDITION_DE_LA_VALEUR_DE_L_OPERATEUR(_____cNORMALISE_OZ(profondeur_denormalisee));
/* Le 20060105154711, le format "16g" est passe a "^^g" pour plus de souplesse... */
/* */
/* Le 20070317114431, fut introduit beaucoup plus de souplesse quant au format d'edition... */
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(niveau))
Bblock
EDITION_DE_LA_VALEUR_DE_L_OPERATEUR(______NORMALISE_NIVEAU(niveau_denormalise));
/* Introduit le 20070818184439... */
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ETes
RETU_Commande;
Eblock
ECommande