/*************************************************************************************************************************************/
/* */
/* G E N E R A T I O N D ' U N E T R A M E D ' E N T R E L A C A G E : */
/* */
/* */
/* Author of '$xci/entrelace$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 : */
/* */
/*************************************************************************************************************************************/
#define GENERER_UNE_TRAME_HORIZONTALE \
VRAI \
/* Indique si la trame doit etre horizontale ('VRAI') ou verticale ('FAUX'). */
#define GENERER_LES_ELEMENTS_IMPAIRS \
VRAI \
/* Indique si l'on doit generer les lignes ou les colonnes de numero impair ('VRAI') ou */ \
/* celles de numero pair ('FAUX'), sachant que la numerotation commence a 1... */
#define HAUT_GAUCHE \
vecteurs_____Gcon_00 \
/* Definition du coin en haut a gauche, */
#define HAUT_DROITE \
vecteurs_____Gcon_01 \
/* Definition du coin en haut a droite. */
#define GAUCHE_HAUT \
vecteurs_____Gcon_02 \
/* Definition du coin a gauche en haut, */
#define GAUCHE_BAS \
vecteurs_____Gcon_03 \
/* Definition du coin a gauche en bas. */
#define NIVEAU_DES_LIGNES \
BLANC
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 T R A M E D ' E N T R E L A C 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(generer_une_trame_horizontale,GENERER_UNE_TRAME_HORIZONTALE));
/* Indique si la trame doit etre horizontale ('VRAI') ou verticale ('FAUX'). */
DEFV(Logical,INIT(generer_les_elements_impairs,GENERER_LES_ELEMENTS_IMPAIRS));
/* Indique si l'on doit generer les lignes ou les colonnes de numero impair ('VRAI') ou */
/* celles de numero pair ('FAUX'), sachant que la numerotation commence a 1... */
DEFV(genere_p,INIT(niveau_des_lignes,NIVEAU_DES_LIGNES));
/* Niveau par defaut des lignes. */
/*..............................................................................................................................*/
GET_ARGUMENTSg(nombre_d_arguments
,BLOC(GET_ARGUMENT_L("SX_SY_SZ_____compatibilite_20070416=""compatibilite_20070416="
,SX_SY_SZ_____compatibilite_20070416
);
/* Parametre introduit le 20070416160448... */
GET_ARGUMENT_C("imageA=""A=",nom_imageA);
GET_ARGUMENT_C("imageR=""R=",nom_imageR);
GET_ARGUMENT_L("horizontale=""horizontal=""h=",generer_une_trame_horizontale);
GET_ARGUMENT_L("impairs=""impair=",generer_les_elements_impairs);
GET_ARGUMENT_P("niveau=""n=",niveau_des_lignes);
)
);
Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageG,nom_imageA))))
Bblock
SK(INTER_POINT);
Test(IL_FAUT(generer_une_trame_horizontale))
Bblock
SX(NEUT(INTER_POINT));
SY(DOUB(INTER_POINT));
Eblock
ATes
Bblock
SX(DOUB(INTER_POINT));
SY(NEUT(INTER_POINT));
Eblock
ETes
SET_COULEURS(NOIR,niveau_des_lignes);
SET_CURSOR(_____cNORMALISE_OX(Xmin),_____cNORMALISE_OY(Ymax),_____cNORMALISE_OZ(Zmin));
WCG(HAUT_GAUCHE);
/* Definition du coin en haut a gauche de la ligne initiale... */
WCG(GAUCHE_HAUT);
/* Definition du coin a gauche en haut de la ligne initiale... */
Test(IL_FAUT(generer_une_trame_horizontale))
Bblock
SET_CURSOR(_____cNORMALISE_OX(Xmax),_____cNORMALISE_OY(Ymax),_____cNORMALISE_OZ(Zmin));
WCG(HAUT_DROITE);
/* Definition du coin en haut a droite de la ligne initiale... */
Test(IL_FAUT(generer_les_elements_impairs))
Bblock
/* Dans le cas ou il faut generer les elements de rang impair (1,3,5,...) le curseur est */
/* deja bien positionne ; il convient de ne pas oublier que dans ce contexte la ligne qui */
/* a l'ordonnee 'Ymax' porte le numero 1, c'est-a-dire qu'elle est impaire... */
Eblock
ATes
Bblock
/* Dans le cas ou il faut generer les elements de rang pair (2,4,6...), il faut descendre */
/* le curseur d'un demi-cran... */
RCG(HAUT_GAUCHE);
CALS(FgMIY());
SY(NEUT(INTER_POINT));
g4;
CALS(FgMOY());
WCG(HAUT_GAUCHE);
RCG(HAUT_DROITE);
CALS(FgMIY());
SY(NEUT(INTER_POINT));
g4;
CALS(FgMOY());
WCG(HAUT_DROITE);
Eblock
ETes
Repe(MOIT(dimY))
Bblock
RCG(HAUT_GAUCHE);gA;
RCG(HAUT_DROITE);gB;
/* Trace de la ligne courante. */
RCG(HAUT_GAUCHE);
g4;
WCG(HAUT_GAUCHE);
/* Modification du coin en haut a gauche de la ligne courante. */
RCG(HAUT_DROITE);
g4;
WCG(HAUT_DROITE);
/* Modification du coin en haut a droite de la ligne courante. */
Eblock
ERep
Eblock
ATes
Bblock
SET_CURSOR(_____cNORMALISE_OX(Xmin),_____cNORMALISE_OY(Ymin),_____cNORMALISE_OZ(Zmin));
WCG(GAUCHE_BAS);
/* Definition du coin a gauche en bas de la ligne initiale... */
Test(IL_FAUT(generer_les_elements_impairs))
Bblock
/* Dans le cas ou il faut generer les elements de rang impair (1,3,5,...) le curseur est */
/* deja bien positionne ; il convient de ne pas oublier que dans ce contexte la colonne qui */
/* a l'abscisse 'Xmax' porte le numero 1, c'est-a-dire qu'elle est impaire... */
Eblock
ATes
Bblock
/* Dans le cas ou il faut generer les elements de rang pair (2,4,6...), il faut deplacer */
/* le curseur d'un demi-cran... */
RCG(GAUCHE_HAUT);
CALS(FgMIX());
SX(NEUT(INTER_POINT));
g1;
CALS(FgMOX());
WCG(GAUCHE_HAUT);
RCG(GAUCHE_BAS);
CALS(FgMIX());
SX(NEUT(INTER_POINT));
g1;
CALS(FgMOX());
WCG(GAUCHE_BAS);
Eblock
ETes
Repe(MOIT(dimX))
Bblock
RCG(GAUCHE_HAUT);gA;
RCG(GAUCHE_BAS);gB;
/* Trace de la ligne courante. */
RCG(GAUCHE_HAUT);
g1;
WCG(GAUCHE_HAUT);
/* Modification du coin en haut a gauche de la ligne courante. */
RCG(GAUCHE_BAS);
g1;
WCG(GAUCHE_BAS);
/* Modification du coin en bas a droite de la ligne courante. */
Eblock
ERep
Eblock
ETes
CALi(Iupdate_image(nom_imageR,ImageG));
Eblock
ATes
Bblock
Test__CODE_ERREUR__ERREUR07;
Eblock
ETes
RETU_Commande;
Eblock
ECommande