/*************************************************************************************************************************************/ /* */ /* 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