/*************************************************************************************************************************************/
/* */
/* T R A C E D ' U N " X " ( S I G L E D E L ' E C O L E P O L Y T E C H N I Q U E ) : */
/* */
/* */
/* ................................................................ */
/* ................................................................ */
/* ................................................................ */
/* .........::-------------::.............:---------------:........ */
/* .........+*##ooooooooooooo+:.........:+ooooooooooooo*#*+:....... */
/* ..........:++-:..........:-++:......:++-...........:++-......... */
/* ............:+++:..........-+++-...-++-...........-++-.......... */
/* ..............:+++:..........:----++-:..........:-++:........... */
/* ................:+++-..........:+oo+:..........:++-:............ */
/* ..................:-+-:.......................-++:.............. */
/* ....................:+++-...................:+o+:............... */
/* ......................:-++:................:++-................. */
/* ........................-+++-.............-++-.................. */
/* ..........................:++-:...........:::................... */
/* ............................-+++-............................... */
/* ..............................:+++:............................. */
/* ................................-+++-........................... */
/* ....................:::...........:-++:......................... */
/* ...................-o+-.............-+++-....................... */
/* .................:-++:................:++-:..................... */
/* ................-+o-....................-+++:................... */
/* ...............-++:.......................:-+-:................. */
/* .............:+o+:..........:+oo+:..........-+++:............... */
/* ............:++-:..........:+++----:..........:+++:............. */
/* ...........-++-...........-++:...-+++-..........:+++:........... */
/* .........:-++:..........:-++:......:++-:..........:-++:......... */
/* ........:+*#*ooooooooooooo-:.........:+ooooooooooooo##*+........ */
/* .........:---------------:.............::-------------::........ */
/* ................................................................ */
/* ................................................................ */
/* ................................................................ */
/* ................................................................ */
/* */
/* */
/* Author of '$xrd/ixe.21$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
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#define ECHELLE \
UN \
/* Definition de l'echelle implicite. */
#define ROTATION \
NEGA(FU) \
/* Definition de la rotation autour de 'OX' implicite. */
#define TAUX_DE_DEPTH_CUEING \
DEPTH_CUEING_MOYEN \
/* Definition du taux de depth-cueing... */
#define UNITE_02 \
DEUX
#define UNITE_03 \
TROIS
#define UNITE_04 \
QUATRE
#define UNITE_06 \
SIX
#define UNITE_07 \
SEPT
#define UNITE_08 \
HUIT
#define UNITE_10 \
DIX
#define UNITE_12 \
DOUZE
/* Definition des unites fondamentales. */
#define G1(longueur) \
Bblock \
DO(longueur \
,BLOC(g1;) \
); \
Eblock
#define G2(longueur) \
Bblock \
DO(longueur \
,BLOC(g2;) \
); \
Eblock
#define G3(longueur) \
Bblock \
DO(longueur \
,BLOC(g3;) \
); \
Eblock
#define G4(longueur) \
Bblock \
DO(longueur \
,BLOC(g4;) \
); \
Eblock
#define GENERE_IXE \
Bblock \
DEFV(Float,INIT(Z_minimum,FLOT__UNDEF)); \
DEFV(Float,INIT(Z_maximum,FLOT__UNDEF)); \
/* Pour le "depth-cueing". */ \
SET_ANTI_ALIASING(VRAI); \
SET_COULEURS(NOIR,BLANC); \
\
CALS(FgMIT()); \
INITIALISATION_SYSTEMATIQUE_TRANSFORMATION; \
/* Reinitialisation provisoire des transformations... */ \
\
SKH(8); \
/* Definition de l'echelle globale. */ \
SXH(8); \
/* Definition de l'echelle sur l'axe des 'X'. */ \
SYH(8); \
/* Definition de l'echelle sur l'axe des 'Y'. */ \
SZH(8); \
/* Definition de l'echelle sur l'axe des 'Z'. */ \
PUSH_ANTI_ALIASING; \
/* Juste pour valider le couple (PUSH,PULL). */ \
\
SET_CURSOR(_____cNORMALISE_OX(INTE(DIVI(FXcentre_____,super_echelle_OX))) \
,_____cNORMALISE_OY(INTE(DIVI(FYcentre_____,super_echelle_OY))) \
,_____cNORMALISE_OZ(Zorigine) \
); \
/* On se place au centre de l'ecran. */ \
PULL_ANTI_ALIASING; \
/* Juste pour valider le couple (PUSH,PULL). */ \
SKH(echelle); \
/* Changement de l'echelle globale. */ \
SXH(6); \
/* Definition de l'echelle sur l'axe des 'X'. */ \
SYH(6); \
/* Definition de l'echelle sur l'axe des 'Y'. */ \
\
CALS(FgMOT()); \
/* Restauration des transformations... */ \
\
CALS(FgMIC()); \
G4(UNITE_03); \
G4(UNITE_12); \
EGAL(Z_maximum,ASD1(vecteurs_____cursor_3D,z)); \
CALS(FgMOC()); \
CALS(FgMIC()); \
G2(UNITE_03); \
G2(UNITE_12); \
EGAL(Z_minimum,ASD1(vecteurs_____cursor_3D,z)); \
CALS(FgMOC()); \
SET_DEPTH_CUEING(taux_de_depth_cueing,Z_minimum,Z_maximum); \
/* Pour le "depth-cueing". */ \
\
gA;G3(UNITE_07);G4(UNITE_03); \
gA;G3(UNITE_08);G4(UNITE_12);gB; \
gA;G1(UNITE_10);gB; \
gA;G1(UNITE_04);G2(UNITE_06);gB; \
gA;G1(UNITE_06);G4(UNITE_06);gB; \
gA;G1(UNITE_10);gB; \
gA;G3(UNITE_12);G2(UNITE_12);gB; \
gA;G3(UNITE_06);G2(UNITE_06);gB; \
gA;G3(UNITE_12);G2(UNITE_12);gB; \
gA;G1(UNITE_10);gB; \
gA;G1(UNITE_06);G4(UNITE_06);gB; \
gA;G1(UNITE_04);G2(UNITE_06);gB; \
gA;G1(UNITE_10);gB; \
gA;G3(UNITE_08);G4(UNITE_12);gB; \
gA;G3(UNITE_07);G4(UNITE_03);gA; \
/* Trace du "X"... */ \
\
Eblock
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S : */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* T R A C E D ' U N " X " : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
DEFV(Int,INIT(echelle,ECHELLE));
/* Definition de l'echelle. */
DEFV(Float,INIT(rotation,ROTATION));
/* Definition de la rotation autour de 'OX'. */
DEFV(Float,INIT(taux_de_depth_cueing,DEPTH_CUEING_MOYEN));
/* Definition du taux de depth-cueing... */
/*..............................................................................................................................*/
INITIALISATION_SYSTEMATIQUE_TRANSFORMATION;
GET_ARGUMENTSv(nombre_d_arguments
,BLOC(GET_ARGUMENT_L("SX_SY_SZ_____compatibilite_20070416=""compatibilite_20070416="
,SX_SY_SZ_____compatibilite_20070416
);
/* Parametre introduit le 20070416161756... */
GET_ARGUMENT_L("Ipoint_anti_aliase_segment_____compatibilite_20110420=""compatibilite_20110420="
,Ipoint_anti_aliase_segment_____compatibilite_20110420
);
/* Parametre introduit le 20110420145055... */
GET_ARGUMENT_C("imageR=""R=",nom_imageR);
GET_ARGUMENT_I("echelle=",echelle);
GET_ARGUMENT_F("rotation=""angle=",rotation);
GET_ARGUMENT_F("taux=""depth-cueing=",taux_de_depth_cueing);
)
);
SUPER_ECHELLE_PETIT_CARRE;
/* Choix du format des figures obtenues : */
/* */
/* SUPER_ECHELLE_RECTANGULAIRE; */
/* SUPER_ECHELLE_PETIT_CARRE; */
/* SUPER_ECHELLE_GRAND_CARRE; */
/* */
CALi(Inoir(ImageR));
/* Initialisation de l'image Resultat. */
CALS(FgERASE());
/* Clear... */
TRX(rotation);
GENERE_IXE;
/* Generation d'un "X". */
CALS(Imove(ImageR,ImageG));
CALi(Iupdate_image(nom_imageR,ImageR));
RETU_Commande;
Eblock
ECommande