/*************************************************************************************************************************************/ /* */ /* G E N E R A T I O N D ' U N C A D R E A U T O U R D ' U N E I M A G E : */ /* */ /* */ /* Author of '$xci/cadre$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 1988??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 BAS_GAUCHE \ vecteurs_____Gcon_00 \ /* Definition du coin en bas a gauche du cadre, */ #define BAS_DROITE \ vecteurs_____Gcon_01 \ /* Definition du coin en bas a droite du cadre, */ #define HAUT_DROITE \ vecteurs_____Gcon_02 \ /* Definition du coin en haut a droite du cadre, */ #define HAUT_GAUCHE \ vecteurs_____Gcon_03 \ /* Definition du coin en haut a gauche du cadre. */ #define EPAISSEUR_DU_CADRE \ HUIT #define NIVEAU_DU_CADRE \ NOIR /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 C A D R E A U T O U R D ' U N E I M 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(Positive,INIT(epaisseur_du_cadre,EPAISSEUR_DU_CADRE)); /* Epaisseur par defaut du cadre. */ DEFV(genere_p,INIT(niveau_du_cadre,NIVEAU_DU_CADRE)); /* Niveau par defaut du cadre. */ DEFV(Int,INIT(MinimumX,UNDEF)); DEFV(Int,INIT(MaximumX,UNDEF)); DEFV(Int,INIT(MinimumY,UNDEF)); DEFV(Int,INIT(MaximumY,UNDEF)); DEFV(Int,INIT(MinimumZ,UNDEF)); DEFV(Int,INIT(MaximumZ,UNDEF)); /* Introduits le 20240426175709 pour 'v message.01$vv$Z cadre.X'. On notera que 'MaximumZ' */ /* est inutile mais defini malgre tout, par "symetrie"... */ /*..............................................................................................................................*/ EGAL(MinimumX,Xmin); EGAL(MaximumX,Xmax); EGAL(MinimumY,Ymin); EGAL(MaximumY,Ymax); EGAL(MinimumZ,Zmin); EGAL(MaximumZ,Zmax); GET_ARGUMENTSg(nombre_d_arguments ,BLOC(GET_ARGUMENT_L("SX_SY_SZ_____compatibilite_20070416=""compatibilite_20070416=" ,SX_SY_SZ_____compatibilite_20070416 ); /* Parametre introduit le 20070416155635... */ GET_ARGUMENT_C("imageA=""A=",nom_imageA); GET_ARGUMENT_C("imageR=""R=",nom_imageR); GET_ARGUMENT_I("epaisseur=""e=",epaisseur_du_cadre); GET_ARGUMENT_P("niveau=""n=",niveau_du_cadre); GET_ARGUMENT_I("MinimumX=""mX=",MinimumX); GET_ARGUMENT_I("MaximumX=""MX=",MaximumX); GET_ARGUMENT_I("MinimumY=""mY=",MinimumY); GET_ARGUMENT_I("MaximumY=""MY=",MaximumY); GET_ARGUMENT_I("MinimumZ=""mZ=",MinimumZ); GET_ARGUMENT_I("MaximumZ=""MZ=",MaximumZ); ) ); Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageG,nom_imageA)))) Bblock SET_COULEURS(NOIR,niveau_du_cadre); SET_CURSOR(_____cNORMALISE_OX(MinimumX),_____cNORMALISE_OY(MinimumY),_____cNORMALISE_OZ(MinimumZ)); WCG(BAS_GAUCHE); /* Definition du coin en bas a gauche du cadre initial, */ SET_CURSOR(_____cNORMALISE_OX(MaximumX),_____cNORMALISE_OY(MinimumY),_____cNORMALISE_OZ(MinimumZ)); WCG(BAS_DROITE); /* Definition du coin en bas a droite du cadre initial, */ SET_CURSOR(_____cNORMALISE_OX(MaximumX),_____cNORMALISE_OY(MaximumY),_____cNORMALISE_OZ(MinimumZ)); WCG(HAUT_DROITE); /* Definition du coin en haut a droite du cadre initial, */ SET_CURSOR(_____cNORMALISE_OX(MinimumX),_____cNORMALISE_OY(MaximumY),_____cNORMALISE_OZ(MinimumZ)); WCG(HAUT_GAUCHE); /* Definition du coin en haut a gauche du cadre initial. */ Repe(epaisseur_du_cadre) Bblock RCG(BAS_GAUCHE);gA; RCG(BAS_DROITE);gB; RCG(HAUT_DROITE);gB; RCG(HAUT_GAUCHE);gB; RCG(BAS_GAUCHE);gB; /* Trace du cadre courant d'epaisseur unite. */ RCG(BAS_GAUCHE); g1;g2; WCG(BAS_GAUCHE); /* Modification du coin en bas a gauche du cadre courant, */ RCG(BAS_DROITE); g3;g2; WCG(BAS_DROITE); /* Modification du coin en bas a droite du cadre courant, */ RCG(HAUT_DROITE); g3;g4; WCG(HAUT_DROITE); /* Modification du coin en haut a droite du cadre courant, */ RCG(HAUT_GAUCHE); g1;g4; WCG(HAUT_GAUCHE); /* Modification du coin en haut a gauche du cadre courant. */ Eblock ERep CALi(Iupdate_image(nom_imageR,ImageG)); Eblock ATes Bblock Test__CODE_ERREUR__ERREUR07; Eblock ETes RETU_Commande; Eblock ECommande