/*************************************************************************************************************************************/
/* */
/* G E N E R A T I O N D ' U N E S P I R A L E C A R R E E : */
/* */
/* */
/* Definition : */
/* */
/* Cette commande genere une image */
/* dont le nom est l'argument d'appel, */
/* et qui contient une spirale carree */
/* de centre (X_CENTRE,Y_CENTRE). */
/* */
/* */
/* Author of '$xci/spirale.21$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20150331110245). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 : */
/* */
/*************************************************************************************************************************************/
#define X_CENTRE \
Xcentre
#define Y_CENTRE \
Ycentre
#define Z_CENTRE \
Zorigine
/* Definition du centre... */
#define SCALE_OX \
FU
#define SCALE_OY \
FU
#define SCALE_OZ \
FU
#define SCALE_GLOBALE \
FU
/* Definition des echelles. */
/* */
/* Le 20220628095416, passage de 'UN' a 'FU'... */
#define NIVEAU_DE_LA_SPIRALE \
BLANC \
/* Niveau de trace de la spirale... */
#define NOMBRE_DE_TOURS \
CENT \
/* Nombre de tours de la spirale... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* G E N E R A T I O N D ' U N E S P I R A L E C A R R E E : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
DEFV(Int,INIT(X_centre,X_CENTRE));
DEFV(Int,INIT(Y_centre,Y_CENTRE));
DEFV(Int,INIT(Z_centre,Z_CENTRE));
/* Definition du centre... */
DEFV(Float,INIT(scale_OX,SCALE_OX));
DEFV(Float,INIT(scale_OY,SCALE_OY));
DEFV(Float,INIT(scale_OZ,SCALE_OZ));
DEFV(Float,INIT(scale_globale,SCALE_GLOBALE));
/* Definition des echelles. */
/* */
/* Le 20220628095416 je note quelque chose d'etrange. En effet, les quatre definitions */
/* precedentes sont de type 'Int', alors qu'elles servent a definir des elements qui sont */
/* eux de type 'Float' ('v $xiii/vecteurs$FON DEFV.Float.ZINT.vecteurs_____scale_'). Je */
/* corrige donc cela a cette date... */
DEFV(genere_p,INIT(niveau_de_la_spirale,NIVEAU_DE_LA_SPIRALE));
/* Niveau de trace de la spirale... */
DEFV(Int,INIT(nombre_de_tours,NOMBRE_DE_TOURS));
/* Nombre de tours de la spirale... */
/*..............................................................................................................................*/
GET_ARGUMENTSg(nombre_d_arguments
,BLOC(GET_ARGUMENT_L("SX_SY_SZ_____compatibilite_20070416=""compatibilite_20070416="
,SX_SY_SZ_____compatibilite_20070416
);
GET_ARGUMENT_C("imageA=""A=",nom_imageA);
GET_ARGUMENT_C("imageR=""R=",nom_imageR);
GET_ARGUMENT_I("X_centre=""Xc=""xc",X_centre);
GET_ARGUMENT_I("Y_centre=""Yc=""yc",Y_centre);
/* On notera qu'evidemment 'Z_centre' n'a pas a etre un argument... */
GET_ARGUMENT_F("K=""k=",scale_globale);
GET_ARGUMENT_F("KX=""kx=",scale_OX);
GET_ARGUMENT_F("KY=""ky=",scale_OY);
GET_ARGUMENT_F("KZ=""kz=",scale_OZ);
/* Le 20220628095416, passage de 'GET_ARGUMENT_I(...)' a 'GET_ARGUMENT_F(...)'... */
GET_ARGUMENT_P("niveau_spirale=""n=",niveau_de_la_spirale);
GET_ARGUMENT_I("nombre_tours=""tours=""t=",nombre_de_tours);
)
);
SET_CURSOR(_____cNORMALISE_OX(X_centre),_____cNORMALISE_OY(Y_centre),_____cNORMALISE_OZ(Z_centre));
EGAL(vecteurs_____scale_globale,NEUT(scale_globale));
EGAL(vecteurs_____scale_OX,_____lNORMALISE_OX(scale_OX));
EGAL(vecteurs_____scale_OY,_____lNORMALISE_OY(scale_OY));
EGAL(vecteurs_____scale_OZ,_____lNORMALISE_OZ(scale_OZ));
/* Pour les valeurs a donner a {K,KX,KY}, voir 'v $xiirv/.PRIM.H1.1.$U 20150401155810'... */
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageG,nom_imageA))))
Bblock
/* Chargement de l'image Argument. */
SET_COULEURS(niveau_de_la_spirale,niveau_de_la_spirale);
gA;
Repe(nombre_de_tours)
Bblock
g1;gB;
g2;gB;
/* On trace deux cotes orthogonaux et egaux de la spirale... */
CALS(FgXADDI());
CALS(FgYADDI());
/* Et on change d'echelle... */
g3;gB;
g4;gB;
/* On trace deux cotes orthogonaux et egaux de la spirale... */
CALS(FgXADDI());
CALS(FgYADDI());
/* Et on change d'echelle... */
Eblock
ERep
CALi(Iupdate_image(nom_imageR,ImageG));
Eblock
ATes
Bblock
Test__CODE_ERREUR__ERREUR07;
Eblock
ETes
RETU_Commande;
Eblock
ECommande