/*************************************************************************************************************************************/ /* */ /* D E F O R M A T I O N D E S C O O R D O N N E E S : */ /* */ /* */ /* Author of '$xrv/deforme.11$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20150523075229). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* V A L E U R S I M P L I C I T E S D E S P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #include xci/sequence.01.I" /* ATTENTION, on definit ainsi le symbole 'DERNIERE_IMAGE' qui ne sert a rien ici, puisque */ /* c'est en effet 'Zmax' qui joue ce role... */ #define ALBUM_DX_PERIODISER_X \ FAUX #define ALBUM_DX_SYMETRISER_X \ FAUX #define ALBUM_DX_PROLONGER__X \ FAUX #define ALBUM_DX_PERIODISER_Y \ FAUX #define ALBUM_DX_SYMETRISER_Y \ FAUX #define ALBUM_DX_PROLONGER__Y \ FAUX #define ALBUM_DX_PERIODISER_Z \ FAUX #define ALBUM_DX_SYMETRISER_Z \ FAUX #define ALBUM_DX_PROLONGER__Z \ FAUX #define ALBUM_DX_NIVEAU_HORS_ALBUM \ FZERO #define ALBUM_DY_PERIODISER_X \ FAUX #define ALBUM_DY_SYMETRISER_X \ FAUX #define ALBUM_DY_PROLONGER__X \ FAUX #define ALBUM_DY_PERIODISER_Y \ FAUX #define ALBUM_DY_SYMETRISER_Y \ FAUX #define ALBUM_DY_PROLONGER__Y \ FAUX #define ALBUM_DY_PERIODISER_Z \ FAUX #define ALBUM_DY_SYMETRISER_Z \ FAUX #define ALBUM_DY_PROLONGER__Z \ FAUX #define ALBUM_DY_NIVEAU_HORS_ALBUM \ FZERO #define ALBUM_DZ_PERIODISER_X \ FAUX #define ALBUM_DZ_SYMETRISER_X \ FAUX #define ALBUM_DZ_PROLONGER__X \ FAUX #define ALBUM_DZ_PERIODISER_Y \ FAUX #define ALBUM_DZ_SYMETRISER_Y \ FAUX #define ALBUM_DZ_PROLONGER__Y \ FAUX #define ALBUM_DZ_PERIODISER_Z \ FAUX #define ALBUM_DZ_SYMETRISER_Z \ FAUX #define ALBUM_DZ_PROLONGER__Z \ FAUX #define ALBUM_DZ_NIVEAU_HORS_ALBUM \ FZERO #define ALPHA_X \ FU #define ALPHA_Y \ FU #define ALPHA_Z \ FU /* Multiplicateurs des coordonnees (introduits le 20150525213903). */ #define BETA__X \ FZERO #define BETA__Y \ FZERO #define BETA__Z \ FZERO /* Translateurs des coordonnees (introduits le 20150525213903). */ #define ALPHA_DX \ FU #define ALPHA_DY \ FU #define ALPHA_DZ \ FU /* Multiplicateurs des deformations (introduits le 20150604110755). */ #define BETA__DX \ FZERO #define BETA__DY \ FZERO #define BETA__DZ \ FZERO /* Translateurs des deformations (introduits le 20150604110755). */ #define PONDERATION_OX_IMPLICITE \ FZERO #define PONDERATION_OY_IMPLICITE \ FZERO #define PONDERATION_OZ_IMPLICITE \ FZERO /* Ponderation de selection des coordonnees apres deformation. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D E S F I C H I E R S : */ /* */ /*************************************************************************************************************************************/ #include xrv/ARITHMET.1d.I" #include xrv/ARITHMET.21.I" #include xrv/champs_5.41.I" #define X_IMPLICITE \ FZERO #define Y_IMPLICITE \ FZERO #define Z_IMPLICITE \ FZERO gGENERATION_D_UN_FICHIER(fichier_LISTE_X,liste_initiale_des_X); gGENERATION_D_UN_FICHIER(fichier_LISTE_Y,liste_initiale_des_Y); gGENERATION_D_UN_FICHIER(fichier_LISTE_Z,liste_initiale_des_Z); /* Definition en memoire des fichiers de coordonnees cartesiennes. */ #define ELEMENT_DU_FICHIER_LISTE_X(index) \ gELEMENT_DU_FICHIER(liste_initiale_des_X,index) #define ELEMENT_DU_FICHIER_LISTE_Y(index) \ gELEMENT_DU_FICHIER(liste_initiale_des_Y,index) #define ELEMENT_DU_FICHIER_LISTE_Z(index) \ gELEMENT_DU_FICHIER(liste_initiale_des_Z,index) /* Acces a un element courant des fichiers de coordonnees cartesiennes. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F O R M A T I O N D E S C O O R D O N N E E S : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(CHAR,INIC(POINTERc(nom_albumDX),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_postfixeDX),NOM_UNDEF_VIDE)); DEFV(Int,INIT(premiere_imageDX,PREMIERE_IMAGE)); DEFV(Int,INIT(pas_des_imagesDX,PAS_DES_IMAGES)); DEFV(Int,INIT(nombre_de_chiffresDX,NOMBRE_DE_CHIFFRES)); /* Definition de l'album des deformations selon l'axe 'OX'. */ DEFV(CHAR,INIC(POINTERc(nom_albumDY),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_postfixeDY),NOM_UNDEF_VIDE)); DEFV(Int,INIT(premiere_imageDY,PREMIERE_IMAGE)); DEFV(Int,INIT(pas_des_imagesDY,PAS_DES_IMAGES)); DEFV(Int,INIT(nombre_de_chiffresDY,NOMBRE_DE_CHIFFRES)); /* Definition de l'album des deformations selon l'axe 'OY'. */ DEFV(CHAR,INIC(POINTERc(nom_albumDZ),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_postfixeDZ),NOM_UNDEF_VIDE)); DEFV(Int,INIT(premiere_imageDZ,PREMIERE_IMAGE)); DEFV(Int,INIT(pas_des_imagesDZ,PAS_DES_IMAGES)); DEFV(Int,INIT(nombre_de_chiffresDZ,NOMBRE_DE_CHIFFRES)); /* Definition de l'album des deformations selon l'axe 'OZ'. */ #include xrv/ARITHMET.22.I" #include xci/valeurs.03.I" DEFV(Int,INIT(album_DX_periodiser_X,ALBUM_DX_PERIODISER_X)); DEFV(Int,INIT(album_DX_symetriser_X,ALBUM_DX_SYMETRISER_X)); DEFV(Int,INIT(album_DX_prolonger__X,ALBUM_DX_PROLONGER__X)); DEFV(Int,INIT(album_DX_periodiser_Y,ALBUM_DX_PERIODISER_Y)); DEFV(Int,INIT(album_DX_symetriser_Y,ALBUM_DX_SYMETRISER_Y)); DEFV(Int,INIT(album_DX_prolonger__Y,ALBUM_DX_PROLONGER__Y)); DEFV(Int,INIT(album_DX_periodiser_Z,ALBUM_DX_PERIODISER_Z)); DEFV(Int,INIT(album_DX_symetriser_Z,ALBUM_DX_SYMETRISER_Z)); DEFV(Int,INIT(album_DX_prolonger__Z,ALBUM_DX_PROLONGER__Z)); DEFV(genere_Float,INIT(album_DX_niveau_hors_album,ALBUM_DX_NIVEAU_HORS_ALBUM)); DEFV(Int,INIT(album_DY_periodiser_X,ALBUM_DY_PERIODISER_X)); DEFV(Int,INIT(album_DY_symetriser_X,ALBUM_DY_SYMETRISER_X)); DEFV(Int,INIT(album_DY_prolonger__X,ALBUM_DY_PROLONGER__X)); DEFV(Int,INIT(album_DY_periodiser_Y,ALBUM_DY_PERIODISER_Y)); DEFV(Int,INIT(album_DY_symetriser_Y,ALBUM_DY_SYMETRISER_Y)); DEFV(Int,INIT(album_DY_prolonger__Y,ALBUM_DY_PROLONGER__Y)); DEFV(Int,INIT(album_DY_periodiser_Z,ALBUM_DY_PERIODISER_Z)); DEFV(Int,INIT(album_DY_symetriser_Z,ALBUM_DY_SYMETRISER_Z)); DEFV(Int,INIT(album_DY_prolonger__Z,ALBUM_DY_PROLONGER__Z)); DEFV(genere_Float,INIT(album_DY_niveau_hors_album,ALBUM_DY_NIVEAU_HORS_ALBUM)); DEFV(Int,INIT(album_DZ_periodiser_X,ALBUM_DZ_PERIODISER_X)); DEFV(Int,INIT(album_DZ_symetriser_X,ALBUM_DZ_SYMETRISER_X)); DEFV(Int,INIT(album_DZ_prolonger__X,ALBUM_DZ_PROLONGER__X)); DEFV(Int,INIT(album_DZ_periodiser_Y,ALBUM_DZ_PERIODISER_Y)); DEFV(Int,INIT(album_DZ_symetriser_Y,ALBUM_DZ_SYMETRISER_Y)); DEFV(Int,INIT(album_DZ_prolonger__Y,ALBUM_DZ_PROLONGER__Y)); DEFV(Int,INIT(album_DZ_periodiser_Z,ALBUM_DZ_PERIODISER_Z)); DEFV(Int,INIT(album_DZ_symetriser_Z,ALBUM_DZ_SYMETRISER_Z)); DEFV(Int,INIT(album_DZ_prolonger__Z,ALBUM_DZ_PROLONGER__Z)); DEFV(genere_Float,INIT(album_DZ_niveau_hors_album,ALBUM_DZ_NIVEAU_HORS_ALBUM)); DEFV(Float,INIT(alpha_X,ALPHA_X)); DEFV(Float,INIT(alpha_Y,ALPHA_Y)); DEFV(Float,INIT(alpha_Z,ALPHA_Z)); /* Multiplicateurs des coordonnees (introduits le 20150525213903). */ DEFV(Float,INIT(beta__X,BETA__X)); DEFV(Float,INIT(beta__Y,BETA__Y)); DEFV(Float,INIT(beta__Z,BETA__Z)); /* Translateurs des coordonnees (introduits le 20150525213903). */ DEFV(Float,INIT(alpha_DX,ALPHA_DX)); DEFV(Float,INIT(alpha_DY,ALPHA_DY)); DEFV(Float,INIT(alpha_DZ,ALPHA_DZ)); /* Multiplicateurs des deformations (introduits le 20150604110755). */ DEFV(Float,INIT(beta__DX,BETA__DX)); DEFV(Float,INIT(beta__DY,BETA__DY)); DEFV(Float,INIT(beta__DZ,BETA__DZ)); /* Translateurs des deformations (introduits le 20150604110755). */ DEFV(Float,INIT(ponderation_OX,PONDERATION_OX_IMPLICITE)); DEFV(Float,INIT(ponderation_OY,PONDERATION_OY_IMPLICITE)); DEFV(Float,INIT(ponderation_OZ,PONDERATION_OZ_IMPLICITE)); /* Ponderation de selection des coordonnees apres deformation. */ /*..............................................................................................................................*/ #include xrv/champs_5.1A.I" GET_ARGUMENTSi(nombre_d_arguments ,BLOC(PROCESS_ARGUMENT_I("nombre_elements=""ne=",nombre_d_elements ,BLOC(VIDE;) ,BLOC(Bblock PRINT_AVERTISSEMENT("'ne=' doit etre defini avant toute entree de fichiers"); Eblock ) ); PROCESS_ARGUMENTS_DE_DEFINITION_DES_FICHIERS_01; PROKESF_ARGUMENT_FICHIER("LISTE_X=" ,fichier_LISTE_X ,liste_initiale_des_X ,X_IMPLICITE ,lTRANSFORMAT_0d ,iGENERATION_D_UN_FICHIER ); PROKESF_ARGUMENT_FICHIER("LISTE_Y=" ,fichier_LISTE_Y ,liste_initiale_des_Y ,Y_IMPLICITE ,lTRANSFORMAT_0d ,iGENERATION_D_UN_FICHIER ); PROKESF_ARGUMENT_FICHIER("LISTE_Z=" ,fichier_LISTE_Z ,liste_initiale_des_Z ,Z_IMPLICITE ,lTRANSFORMAT_0d ,iGENERATION_D_UN_FICHIER ); GET_ARGUMENT_C("albumDX=""DX=",nom_albumDX); GET_ARGUMENT_C("postfixeDX=""poDX=",nom_postfixeDX); GET_ARGUMENT_I("premiereDX=""prDX=",premiere_imageDX); GET_ARGUMENT_I("pasDX=""pDX=",pas_des_imagesDX); GET_ARGUMENT_I("chiffresDX=""cDX=",nombre_de_chiffresDX); GET_ARGUMENT_C("albumDY=""DY=",nom_albumDY); GET_ARGUMENT_C("postfixeDY=""poDY=",nom_postfixeDY); GET_ARGUMENT_I("premiereDY=""prDY=",premiere_imageDY); GET_ARGUMENT_I("pasDY=""pDY=",pas_des_imagesDY); GET_ARGUMENT_I("chiffresDY=""cDY=",nombre_de_chiffresDY); GET_ARGUMENT_C("albumDZ=""DZ=",nom_albumDZ); GET_ARGUMENT_C("postfixeDZ=""poDZ=",nom_postfixeDZ); GET_ARGUMENT_I("premiereDZ=""prDZ=",premiere_imageDZ); GET_ARGUMENT_I("pasDZ=""pDZ=",pas_des_imagesDZ); GET_ARGUMENT_I("chiffresDZ=""cDZ=",nombre_de_chiffresDZ); GET_ARGUMENT_L("AccelerateurALoadPoint=""AccALP=" ,S_ACCELERATEUR__ALOAD_POINT_COORDONNEES_01_____utiliser_l_accelerateur ); GET_ARGUMENT_L("interpoler=""inter=" ,FFAload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement ); GET_ARGUMENT_F("interpolerX=""interX=" ,FFAload_point_coordonnees_01_____ponderation_du_barycentre_d_interpolation_X ); GET_ARGUMENT_F("interpolerY=""interY=" ,FFAload_point_coordonnees_01_____ponderation_du_barycentre_d_interpolation_Y ); GET_ARGUMENT_F("interpolerZ=""interZ=" ,FFAload_point_coordonnees_01_____ponderation_du_barycentre_d_interpolation_Z ); GET_ARGUMENT_L("lineaire=""bilineaire=" ,FFAload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire ); GET_ARGUMENT_N("cubique=""bicubique=" ,FFAload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire ); GET_ARGUMENT_L("appliquer_une_matrice_de_transformation=""matrice=""transformation=" ,FFAload_point_coordonnees_01_____appliquer_une_matrice_de_transformation ); GET_ARGUMENT_F("mxx=""mtxx=",ASD2(FFAload_point_coordonnees_01_____matrice_de_transformation,cx,cx)); GET_ARGUMENT_F("mxy=""mtxy=",ASD2(FFAload_point_coordonnees_01_____matrice_de_transformation,cx,cy)); GET_ARGUMENT_F("mxz=""mtxz=",ASD2(FFAload_point_coordonnees_01_____matrice_de_transformation,cx,cz)); GET_ARGUMENT_F("myx=""mtyx=",ASD2(FFAload_point_coordonnees_01_____matrice_de_transformation,cy,cx)); GET_ARGUMENT_F("myy=""mtyy=",ASD2(FFAload_point_coordonnees_01_____matrice_de_transformation,cy,cy)); GET_ARGUMENT_F("myz=""mtyz=",ASD2(FFAload_point_coordonnees_01_____matrice_de_transformation,cy,cz)); GET_ARGUMENT_F("mzx=""mtzx=",ASD2(FFAload_point_coordonnees_01_____matrice_de_transformation,cz,cx)); GET_ARGUMENT_F("mzy=""mtzy=",ASD2(FFAload_point_coordonnees_01_____matrice_de_transformation,cz,cy)); GET_ARGUMENT_F("mzz=""mtzz=",ASD2(FFAload_point_coordonnees_01_____matrice_de_transformation,cz,cz)); GET_ARGUMENT_F("pre_atrx=",FFAload_point_coordonnees_01_____PreAntiTranslation_Xf); GET_ARGUMENT_F("post_trx=",FFAload_point_coordonnees_01_____Post___Translation_Xf); GET_ARGUMENT_F("pre_atry=",FFAload_point_coordonnees_01_____PreAntiTranslation_Yf); GET_ARGUMENT_F("post_try=",FFAload_point_coordonnees_01_____Post___Translation_Yf); GET_ARGUMENT_F("pre_atrz=",FFAload_point_coordonnees_01_____PreAntiTranslation_Zf); GET_ARGUMENT_F("post_trz=",FFAload_point_coordonnees_01_____Post___Translation_Zf); GET_ARGUMENT_L("pasX_pasY_pasZ=",FFAload_point_coordonnees_01_____utiliser_pasX_et_pasY_et_pasZ); GET_ARGUMENT_I("pasX=",FFAload_point_coordonnees_01_____pasX); GET_ARGUMENT_I("pasY=",FFAload_point_coordonnees_01_____pasY); GET_ARGUMENT_I("pasZ=",FFAload_point_coordonnees_01_____pasZ); GET_ARGUMENT_L("DX_periodiser_X=""DXper_X=" ,album_DX_periodiser_X ); GET_ARGUMENT_L("DX_symetriser_X=""DXsym_X=" ,album_DX_symetriser_X ); GET_ARGUMENT_L("DX_prolonger_X=""DXpro_X=" ,album_DX_prolonger__X ); GET_ARGUMENT_L("DX_periodiser_Y=""DXper_Y=" ,album_DX_periodiser_Y ); GET_ARGUMENT_L("DX_symetriser_Y=""DXsym_Y=" ,album_DX_symetriser_Y ); GET_ARGUMENT_L("DX_prolonger_Y=""DXpro_Y=" ,album_DX_prolonger__Y ); GET_ARGUMENT_L("DX_periodiser_Z=""DXper_Z=" ,album_DX_periodiser_Z ); GET_ARGUMENT_L("DX_symetriser_Z=""DXsym_Z=" ,album_DX_symetriser_Z ); GET_ARGUMENT_L("DX_prolonger_Z=""DXpro_Z=" ,album_DX_prolonger__Z ); GET_ARGUMENT_F("DX_niveau_hors_image=""DXnhi=" ,album_DX_niveau_hors_album ); GET_ARGUMENT_L("DY_periodiser_X=""DYper_X=" ,album_DY_periodiser_X ); GET_ARGUMENT_L("DY_symetriser_X=""DYsym_X=" ,album_DY_symetriser_X ); GET_ARGUMENT_L("DY_prolonger_X=""DYpro_X=" ,album_DY_prolonger__X ); GET_ARGUMENT_L("DY_periodiser_Y=""DYper_Y=" ,album_DY_periodiser_Y ); GET_ARGUMENT_L("DY_symetriser_Y=""DYsym_Y=" ,album_DY_symetriser_Y ); GET_ARGUMENT_L("DY_prolonger_Y=""DYpro_Y=" ,album_DY_prolonger__Y ); GET_ARGUMENT_L("DY_periodiser_Z=""DYper_Z=" ,album_DY_periodiser_Z ); GET_ARGUMENT_L("DY_symetriser_Z=""DYsym_Z=" ,album_DY_symetriser_Z ); GET_ARGUMENT_L("DY_prolonger_Z=""DYpro_Z=" ,album_DY_prolonger__Z ); GET_ARGUMENT_F("DY_niveau_hors_image=""DYnhi=" ,album_DY_niveau_hors_album ); GET_ARGUMENT_L("DZ_periodiser_X=""DZper_X=" ,album_DZ_periodiser_X ); GET_ARGUMENT_L("DZ_symetriser_X=""DZsym_X=" ,album_DZ_symetriser_X ); GET_ARGUMENT_L("DZ_prolonger_X=""DZpro_X=" ,album_DZ_prolonger__X ); GET_ARGUMENT_L("DZ_periodiser_Y=""DZper_Y=" ,album_DZ_periodiser_Y ); GET_ARGUMENT_L("DZ_symetriser_Y=""DZsym_Y=" ,album_DZ_symetriser_Y ); GET_ARGUMENT_L("DZ_prolonger_Y=""DZpro_Y=" ,album_DZ_prolonger__Y ); GET_ARGUMENT_L("DZ_periodiser_Z=""DZper_Z=" ,album_DZ_periodiser_Z ); GET_ARGUMENT_L("DZ_symetriser_Z=""DZsym_Z=" ,album_DZ_symetriser_Z ); GET_ARGUMENT_L("DZ_prolonger_Z=""DZpro_Z=" ,album_DZ_prolonger__Z ); GET_ARGUMENT_F("DZ_niveau_hors_image=""DZnhi=" ,album_DZ_niveau_hors_album ); GET_ARGUMENT_F("alpha_X=""aX=",alpha_X); GET_ARGUMENT_F("alpha_Y=""aY=",alpha_Y); GET_ARGUMENT_F("alpha_Z=""aZ=",alpha_Z); GET_ARGUMENT_F("beta_X=""bX=",beta__X); GET_ARGUMENT_F("beta_Y=""bY=",beta__Y); GET_ARGUMENT_F("beta_Z=""bZ=",beta__Z); /* Arguments introduits le 20150525213903... */ GET_ARGUMENT_F("alpha_DX=""aDX=",alpha_DX); GET_ARGUMENT_F("alpha_DY=""aDY=",alpha_DY); GET_ARGUMENT_F("alpha_DZ=""aDZ=",alpha_DZ); GET_ARGUMENT_F("beta_DX=""bDX=",beta__DX); GET_ARGUMENT_F("beta_DY=""bDY=",beta__DY); GET_ARGUMENT_F("beta_DZ=""bDZ=",beta__DZ); /* Arguments introduits le 20150604110755... */ GET_ARGUMENT_F("PX=""pX=""Pond1=",ponderation_OX); GET_ARGUMENT_F("PY=""pY=""Pond2=",ponderation_OY); GET_ARGUMENT_F("PZ=""pZ=""Pond3=",ponderation_OZ); /* Les arguments {"px=","py=","pz="} ne sont pas utilisables ici car, en effet, ils */ /* rentrent en conflit avec ce qui est defini par 'GET_ARGUMENTSi(...)'. Ils ne doivent */ /* donc pas etre confondus avec 'v $xig/fonct$vv$DEF ENTREE_ARGUMENT_pasX', */ /* 'v $xig/fonct$vv$DEF ENTREE_ARGUMENT_pasY' et 'v $xig/fonct$vv$DEF ENTREE_ARGUMENT_pasZ'. */ /* */ /* Les arguments {"Px=","Py=","Pz="} ont ete introduits le 20150526092311... */ PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_3; PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_1; PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_5; /* Cette procedure fut introduite le 20211005105455... */ ) ); begin_nouveau_block Bblock BDEFV(albumF,albumDX); /* Definition de l'album d'images des deformations selon 'OX'... */ CALi(dAloadF_album(albumDX ,nom_albumDX ,nom_postfixeDX ,premiere_imageDX ,pas_des_imagesDX ,nombre_de_chiffresDX ,FAUX ,UNDEF ,FAUX ) ); /* Chargement de l'album des deformations selon 'OX'... */ Test(PAS_D_ERREUR(CODE_ERREUR)) Bblock begin_nouveau_block Bblock BDEFV(albumF,albumDY); /* Definition de l'album d'images des deformations selon 'OY'... */ CALi(dAloadF_album(albumDY ,nom_albumDY ,nom_postfixeDY ,premiere_imageDY ,pas_des_imagesDY ,nombre_de_chiffresDY ,FAUX ,UNDEF ,FAUX ) ); /* Chargement de l'album des deformations selon 'OY'... */ Test(PAS_D_ERREUR(CODE_ERREUR)) Bblock begin_nouveau_block Bblock BDEFV(albumF,albumDZ); /* Definition de l'album d'images des deformations selon 'OZ'... */ CALi(dAloadF_album(albumDZ ,nom_albumDZ ,nom_postfixeDZ ,premiere_imageDZ ,pas_des_imagesDZ ,nombre_de_chiffresDZ ,FAUX ,UNDEF ,FAUX ) ); /* Chargement de l'album des deformations selon 'OZ'... */ Test(PAS_D_ERREUR(CODE_ERREUR)) Bblock #define nombre_d_exemplaires \ nombre_d_exemplaires_du_resultat_de_l_operation_sur_les_valeurs_courantes \ /* Afin de raccourcir une ligne qui va suivre... */ gOPERATION_SUR_LES_FICHIERS(BLOC( DEFV(Float,INIT(coordonnee_X,ELEMENT_DU_FICHIER_LISTE_X(index))); DEFV(Float,INIT(coordonnee_Y,ELEMENT_DU_FICHIER_LISTE_Y(index))); DEFV(Float,INIT(coordonnee_Z,ELEMENT_DU_FICHIER_LISTE_Z(index))); /* Recuperation des coordonnees {X,Y,Z} courantes dans les fichiers. */ DEFV(Float,INIT(coordonnee_X_transformee,FLOT__UNDEF)); DEFV(Float,INIT(coordonnee_Y_transformee,FLOT__UNDEF)); DEFV(Float,INIT(coordonnee_Z_transformee,FLOT__UNDEF)); /* Coordonnees transformees. */ DEFV(Float,INIT(deformation_de_la_coordonnee_X,FLOT__UNDEF)); DEFV(Float,INIT(deformation_de_la_coordonnee_Y,FLOT__UNDEF)); DEFV(Float,INIT(deformation_de_la_coordonnee_Z,FLOT__UNDEF)); /* Deformation des coordonnees {X,Y,Z}. */ DEFV(Float,INIT(coordonnee_X_deformee,FLOT__UNDEF)); DEFV(Float,INIT(coordonnee_Y_deformee,FLOT__UNDEF)); DEFV(Float,INIT(coordonnee_Z_deformee,FLOT__UNDEF)); /* Coordonnees deformees. */ EGAL(coordonnee_X_transformee,AXPB(alpha_X,coordonnee_X,beta__X)); EGAL(coordonnee_Y_transformee,AXPB(alpha_Y,coordonnee_Y,beta__Y)); EGAL(coordonnee_Z_transformee,AXPB(alpha_Z,coordonnee_Z,beta__Z)); /* Deformation des coordonnees {X,Y,Z}. */ EGAL(deformation_de_la_coordonnee_X ,AXPB(alpha_DX ,FFAload_point_coordonnees_01(albumDX ,coordonnee_X_transformee ,coordonnee_Y_transformee ,coordonnee_Z_transformee ,album_DX_periodiser_X ,album_DX_periodiser_Y ,album_DX_periodiser_Z ,album_DX_symetriser_X ,album_DX_symetriser_Y ,album_DX_symetriser_Z ,album_DX_prolonger__X ,album_DX_prolonger__Y ,album_DX_prolonger__Z ,album_DX_niveau_hors_album ) ,beta__DX ) ); /* Deformation des coordonnees 'X'. */ EGAL(deformation_de_la_coordonnee_Y ,AXPB(alpha_DY ,FFAload_point_coordonnees_01(albumDY ,coordonnee_X_transformee ,coordonnee_Y_transformee ,coordonnee_Z_transformee ,album_DY_periodiser_X ,album_DY_periodiser_Y ,album_DY_periodiser_Z ,album_DY_symetriser_X ,album_DY_symetriser_Y ,album_DY_symetriser_Z ,album_DY_prolonger__X ,album_DY_prolonger__Y ,album_DY_prolonger__Z ,album_DY_niveau_hors_album ) ,beta__DY ) ); /* Deformation des coordonnees 'Y'. */ EGAL(deformation_de_la_coordonnee_Z ,AXPB(alpha_DZ ,FFAload_point_coordonnees_01(albumDZ ,coordonnee_X_transformee ,coordonnee_Y_transformee ,coordonnee_Z_transformee ,album_DZ_periodiser_X ,album_DZ_periodiser_Y ,album_DZ_periodiser_Z ,album_DZ_symetriser_X ,album_DZ_symetriser_Y ,album_DZ_symetriser_Z ,album_DZ_prolonger__X ,album_DZ_prolonger__Y ,album_DZ_prolonger__Z ,album_DZ_niveau_hors_album ) ,beta__DZ ) ); /* Deformation des coordonnees 'Z'. */ EGAL(coordonnee_X_deformee ,ADD2(coordonnee_X_transformee ,deformation_de_la_coordonnee_X ) ); EGAL(coordonnee_Y_deformee ,ADD2(coordonnee_Y_transformee ,deformation_de_la_coordonnee_Y ) ); EGAL(coordonnee_Z_deformee ,ADD2(coordonnee_Z_transformee ,deformation_de_la_coordonnee_Z ) ); /* Deformation des coordonnees {X,Y,Z} transformees. */ ) ,LIZ3(ponderation_OX,coordonnee_X_deformee ,ponderation_OY,coordonnee_Y_deformee ,ponderation_OZ,coordonnee_Z_deformee ) ,EDITER_LA_VALEUR_RESULTANTE_DANS_gOPERATION_SUR_LES_FICHIERS ,nombre_d_exemplaires ); /* Deformation des coordonnees. */ #undef nombre_d_exemplaires Eblock ATes Bblock Eblock ETes EDEFV(albumF,albumDZ); /* Definition de l'album d'images des deformations selon 'OZ'... */ Eblock end_nouveau_block Eblock ATes Bblock Eblock ETes EDEFV(albumF,albumDY); /* Definition de l'album d'images des deformations selon 'OY'... */ Eblock end_nouveau_block Eblock ATes Bblock Eblock ETes EDEFV(albumF,albumDX); /* Definition de l'album d'images des deformations selon 'OX'... */ Eblock end_nouveau_block lGENERATION_D_UN_FICHIER(liste_initiale_des_Z,Z_IMPLICITE); lGENERATION_D_UN_FICHIER(liste_initiale_des_Y,Y_IMPLICITE); lGENERATION_D_UN_FICHIER(liste_initiale_des_X,X_IMPLICITE); RETU_Commande; Eblock ECommande