/*************************************************************************************************************************************/ /* */ /* G E S T I O N D E L ' I N T E R A C T I O N S T A N D A R D : */ /* */ /* */ /* Author of '$xrs/hyper_volumes.13$I' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20230210102910). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* A C C E S A U X F I C H I E R S P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #include xrs/hyper_volumes.33.I" /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* G E S T I O N D E S P R I M I T I V E S D E V I S U A L I S A T I O N S T A N D A R D S : */ /* */ /*************************************************************************************************************************************/ #define PROCESS_ARGUMENTS_DE_TRANSFORMATION_DE_u_v_w_t \ Bblock \ \ DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \ \ GET_ARGUMENT_L("tore_u=",gestion_torique_de_u); \ GET_ARGUMENT_L("tore_v=",gestion_torique_de_v); \ GET_ARGUMENT_L("tore_w=",gestion_torique_de_w); \ GET_ARGUMENT_L("tore_t=",gestion_torique_de_t); \ \ GET_ARGUMENT_L("u_v_w_t_arbitraires=""uvwta=",definir_arbitrairement_les_coordonnees_u_v_w_t); \ \ 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 \ ) \ ); \ \ GET_ARGUMENT_F("separateur_u_v_w_t=""suvwt=",separateur_de_definition_arbitraire_des_coordonnees_u_v_w_t); \ /* Cette possibilite a ete introduite le 20230217102122... */ \ \ PROKESF_ARGUMENT_FICHIER("coordonnees_u=" \ ,fichier_des_coordonnees_u \ ,liste_des_coordonnees_u \ ,COORDONNEE_u_IMPLICITE \ ,lTRANSFORMAT_0d \ ,iGENERATION_D_UN_FICHIER \ ); \ PROKESF_ARGUMENT_FICHIER("coordonnees_v=" \ ,fichier_des_coordonnees_v \ ,liste_des_coordonnees_v \ ,COORDONNEE_v_IMPLICITE \ ,lTRANSFORMAT_0d \ ,iGENERATION_D_UN_FICHIER \ ); \ PROKESF_ARGUMENT_FICHIER("coordonnees_w=" \ ,fichier_des_coordonnees_w \ ,liste_des_coordonnees_w \ ,COORDONNEE_w_IMPLICITE \ ,lTRANSFORMAT_0d \ ,iGENERATION_D_UN_FICHIER \ ); \ PROKESF_ARGUMENT_FICHIER("coordonnees_t=" \ ,fichier_des_coordonnees_t \ ,liste_des_coordonnees_t \ ,COORDONNEE_t_IMPLICITE \ ,lTRANSFORMAT_0d \ ,iGENERATION_D_UN_FICHIER \ ); \ \ PROKESF_ARGUMENT_FICHIER("coordonnees_ROUGE=" \ ,fichier_des_coordonnees_ROUGE \ ,liste_des_coordonnees_ROUGE \ ,COORDONNEE_ROUGE_IMPLICITE \ ,lTRANSFORMAT_0d \ ,iGENERATION_D_UN_FICHIER \ ); \ PROKESF_ARGUMENT_FICHIER("coordonnees_VERTE=" \ ,fichier_des_coordonnees_VERTE \ ,liste_des_coordonnees_VERTE \ ,COORDONNEE_VERTE_IMPLICITE \ ,lTRANSFORMAT_0d \ ,iGENERATION_D_UN_FICHIER \ ); \ PROKESF_ARGUMENT_FICHIER("coordonnees_BLEUE=" \ ,fichier_des_coordonnees_BLEUE \ ,liste_des_coordonnees_BLEUE \ ,COORDONNEE_BLEUE_IMPLICITE \ ,lTRANSFORMAT_0d \ ,iGENERATION_D_UN_FICHIER \ ); \ \ PROKESF_ARGUMENT_FICHIER("coordonnees_RAYON=" \ ,fichier_des_coordonnees_RAYON \ ,liste_des_coordonnees_RAYON \ ,COORDONNEE_RAYON_IMPLICITE \ ,lTRANSFORMAT_0d \ ,iGENERATION_D_UN_FICHIER \ ); \ /* Introduit le 20240517141313... */ \ \ PROKESF_ARGUMENT_FICHIER("coordonnees_MASSE=" \ ,fichier_des_coordonnees_MASSE \ ,liste_des_coordonnees_MASSE \ ,COORDONNEE_MASSE_IMPLICITE \ ,lTRANSFORMAT_0d \ ,iGENERATION_D_UN_FICHIER \ ); \ /* Introduit le 20240519091200... */ \ \ FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \ \ Eblock #define PROCESS_ARGUMENTS_DE_DEFINITION_DES_COORDONNEES_CURVILIGNES \ Bblock \ \ DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \ \ GET_ARGUMENT_L("luvwt=""lister_u_v_w_t=",lister_les_coordonnees_u_v_w_t_des_points); \ \ GET_ARGUMENT_F("mu=",minimum_de_u); \ GET_ARGUMENT_F("Mu=",maximum_de_u); \ GET_ARGUMENT_F("pas_u=""pu=",pas_de_u); \ GET_ARGUMENT_I("eu=",echantillonnage_de_u); \ GET_ARGUMENT_I("teu=",translation_de_l_echantillonnage_de_u); \ GET_ARGUMENT_F("dpu=",diviseur_du_pas_de_u); \ \ GET_ARGUMENT_F("mv=",minimum_de_v); \ GET_ARGUMENT_F("Mv=",maximum_de_v); \ GET_ARGUMENT_F("pas_v=""pv=",pas_de_v); \ GET_ARGUMENT_I("ev=",echantillonnage_de_v); \ GET_ARGUMENT_I("tev=",translation_de_l_echantillonnage_de_v); \ GET_ARGUMENT_F("dpv=",diviseur_du_pas_de_v); \ \ GET_ARGUMENT_F("mw=",minimum_de_w); \ GET_ARGUMENT_F("Mw=",maximum_de_w); \ GET_ARGUMENT_F("pas_w=""pw=",pas_de_w); \ GET_ARGUMENT_I("ew=",echantillonnage_de_w); \ GET_ARGUMENT_I("tew=",translation_de_l_echantillonnage_de_w); \ GET_ARGUMENT_F("dpw=",diviseur_du_pas_de_w); \ \ GET_ARGUMENT_F("mt=",minimum_de_t); \ GET_ARGUMENT_F("Mt=",maximum_de_t); \ GET_ARGUMENT_F("pas_t=""pt=",pas_de_t); \ GET_ARGUMENT_I("et=",echantillonnage_de_t); \ GET_ARGUMENT_I("tet=",translation_de_l_echantillonnage_de_t); \ GET_ARGUMENT_F("dpt=",diviseur_du_pas_de_t); \ \ GET_ARGUMENT_I("nombre_inter_paralleles=""niu=",nombre_d_inters_u); \ GET_ARGUMENT_I("nombre_points_entre_deux_paralleles=""npu=",nombre_de_points_dans_un_inter_u); \ GET_ARGUMENT_I("nombre_inter_meridiens=""niv=",nombre_d_inters_v); \ GET_ARGUMENT_I("nombre_points_entre_deux_meridiens=""npv=",nombre_de_points_dans_un_inter_v); \ GET_ARGUMENT_I("nombre_inter_profondeurs=""niw=",nombre_d_inters_w); \ GET_ARGUMENT_I("nombre_points_entre_deux_profondeurs=""npw=",nombre_de_points_dans_un_inter_w); \ GET_ARGUMENT_I("nombre_inter_temps=""nit=",nombre_d_inters_t); \ GET_ARGUMENT_I("nombre_points_entre_deux_temps=""npt=",nombre_de_points_dans_un_inter_t); \ PROCESS_ARGUMENT_L("faciliter_parametrage_u_v_w_t=""fpuvwt=" \ ,faciliter_le_parametrage_de_u_v_w_t \ ,BLOC(VIDE;) \ ,BLOC(Bblock \ Test(IL_FAUT(faciliter_le_parametrage_de_u_v_w_t)) \ Bblock \ \ EGAL(nombre_de_points_dans_un_inter_u \ ,MAX2(nombre_de_points_dans_un_inter_u,NOMBRE_DE_POINTS_DANS_UN_INTER_u) \ ); \ EGAL(pas_de_u,DIVI(SOUS(maximum_de_u,minimum_de_u),FLOT(nombre_d_inters_u))); \ EGAL(echantillonnage_de_u,nombre_de_points_dans_un_inter_u); \ EGAL(diviseur_du_pas_de_u,FLOT(nombre_de_points_dans_un_inter_u)); \ \ EGAL(nombre_de_points_dans_un_inter_v \ ,MAX2(nombre_de_points_dans_un_inter_v,NOMBRE_DE_POINTS_DANS_UN_INTER_v) \ ); \ EGAL(pas_de_v,DIVI(SOUS(maximum_de_v,minimum_de_v),FLOT(nombre_d_inters_v))); \ EGAL(echantillonnage_de_v,nombre_de_points_dans_un_inter_v); \ EGAL(diviseur_du_pas_de_v,FLOT(nombre_de_points_dans_un_inter_v)); \ \ EGAL(nombre_de_points_dans_un_inter_w \ ,MAX2(nombre_de_points_dans_un_inter_w,NOMBRE_DE_POINTS_DANS_UN_INTER_w) \ ); \ EGAL(pas_de_w,DIVI(SOUS(maximum_de_w,minimum_de_w),FLOT(nombre_d_inters_w))); \ EGAL(echantillonnage_de_w,nombre_de_points_dans_un_inter_w); \ EGAL(diviseur_du_pas_de_w,FLOT(nombre_de_points_dans_un_inter_w)); \ \ EGAL(nombre_de_points_dans_un_inter_t \ ,MAX2(nombre_de_points_dans_un_inter_t,NOMBRE_DE_POINTS_DANS_UN_INTER_t) \ ); \ EGAL(pas_de_t,DIVI(SOUS(maximum_de_t,minimum_de_t),FLOT(nombre_d_inters_t))); \ EGAL(echantillonnage_de_t,nombre_de_points_dans_un_inter_t); \ EGAL(diviseur_du_pas_de_t,FLOT(nombre_de_points_dans_un_inter_t)); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Eblock \ ) \ ); \ \ FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \ \ Eblock #define PROCESS_ARGUMENTS_DE_DERIVATION_PARTIELLE_NUMERIQUE \ Bblock \ \ DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \ \ GET_ARGUMENT_L("hddu=",le_pas_de_u_de_differentiation_est_homothetique); \ GET_ARGUMENT_L("hddv=",le_pas_de_v_de_differentiation_est_homothetique); \ GET_ARGUMENT_L("hddw=",le_pas_de_w_de_differentiation_est_homothetique); \ GET_ARGUMENT_L("hddt=",le_pas_de_t_de_differentiation_est_homothetique); \ \ GET_ARGUMENT_F("ddu=",diviseur_de_differentiation_de_u); \ GET_ARGUMENT_F("ddv=",diviseur_de_differentiation_de_v); \ GET_ARGUMENT_F("ddw=",diviseur_de_differentiation_de_w); \ GET_ARGUMENT_F("ddt=",diviseur_de_differentiation_de_t); \ \ GET_ARGUMENT_F("dxdu=",facteur_x_de_pas_de_u); \ GET_ARGUMENT_F("dxdv=",facteur_x_de_pas_de_v); \ GET_ARGUMENT_F("dxdw=",facteur_x_de_pas_de_w); \ GET_ARGUMENT_F("dxdt=",facteur_x_de_pas_de_t); \ \ GET_ARGUMENT_F("dydu=",facteur_y_de_pas_de_u); \ GET_ARGUMENT_F("dydv=",facteur_y_de_pas_de_v); \ GET_ARGUMENT_F("dydw=",facteur_y_de_pas_de_w); \ GET_ARGUMENT_F("dydt=",facteur_y_de_pas_de_t); \ \ GET_ARGUMENT_F("dzdu=",facteur_z_de_pas_de_u); \ GET_ARGUMENT_F("dzdv=",facteur_z_de_pas_de_v); \ GET_ARGUMENT_F("dzdw=",facteur_z_de_pas_de_w); \ GET_ARGUMENT_F("dzdt=",facteur_z_de_pas_de_t); \ \ FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \ \ Eblock #define PROCESS_ARGUMENTS_DE_COLORIAGE \ Bblock \ \ DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \ \ GET_ARGUMENT_F("dxFx=",ponderation_de__x_____dans_dx); \ GET_ARGUMENT_F("dxFy=",ponderation_de__y_____dans_dx); \ GET_ARGUMENT_F("dxFz=",ponderation_de__z_____dans_dx); \ GET_ARGUMENT_F("pxu=""dxu=",ponderation_de__u_____dans_dx); \ GET_ARGUMENT_F("pxv=""dxv=",ponderation_de__v_____dans_dx); \ GET_ARGUMENT_F("pxw=""dxw=",ponderation_de__w_____dans_dx); \ GET_ARGUMENT_F("pxt=""dxt=",ponderation_de__t_____dans_dx); \ GET_ARGUMENT_F("pxx=""dxFxuvwt=",ponderation_de_dx_____dans_dx); \ GET_ARGUMENT_F("pxy=""dxFyuvwt=",ponderation_de_dy_____dans_dx); \ GET_ARGUMENT_F("pxz=""dxFzuvwt=",ponderation_de_dz_____dans_dx); \ \ GET_ARGUMENT_F("dyFx=",ponderation_de__x_____dans_dy); \ GET_ARGUMENT_F("dyFy=",ponderation_de__y_____dans_dy); \ GET_ARGUMENT_F("dyFz=",ponderation_de__z_____dans_dy); \ GET_ARGUMENT_F("pyu=""dyu=",ponderation_de__u_____dans_dy); \ GET_ARGUMENT_F("pyv=""dyv=",ponderation_de__v_____dans_dy); \ GET_ARGUMENT_F("pyw=""dyw=",ponderation_de__w_____dans_dy); \ GET_ARGUMENT_F("pyt=""dyt=",ponderation_de__t_____dans_dy); \ GET_ARGUMENT_F("pyx=""dyFxuvwt=",ponderation_de_dx_____dans_dy); \ GET_ARGUMENT_F("pyy=""dyFyuvwt=",ponderation_de_dy_____dans_dy); \ GET_ARGUMENT_F("pyz=""dyFzuvwt=",ponderation_de_dz_____dans_dy); \ \ GET_ARGUMENT_F("dzFx=",ponderation_de__x_____dans_dz); \ GET_ARGUMENT_F("dzFy=",ponderation_de__y_____dans_dz); \ GET_ARGUMENT_F("dzFz=",ponderation_de__z_____dans_dz); \ GET_ARGUMENT_F("pzu=""dzu=",ponderation_de__u_____dans_dz); \ GET_ARGUMENT_F("pzv=""dzv=",ponderation_de__v_____dans_dz); \ GET_ARGUMENT_F("pzw=""dzw=",ponderation_de__w_____dans_dz); \ GET_ARGUMENT_F("pzt=""dzt=",ponderation_de__t_____dans_dz); \ GET_ARGUMENT_F("pzx=""dzFxuvwt=",ponderation_de_dx_____dans_dz); \ GET_ARGUMENT_F("pzy=""dzFyuvwt=",ponderation_de_dy_____dans_dz); \ GET_ARGUMENT_F("pzz=""dzFzuvwt=",ponderation_de_dz_____dans_dz); \ \ FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \ \ Eblock #define PROCESS_ARGUMENTS_DE_PERMUTATION_DES_COORDONNEES_ET_DES_DIFFERENTIELLES \ Bblock \ \ DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \ \ GET_ARGUMENT_L("permuter_coordonnees_differentielles=""pcd=",permuter_les_coordonnees_et_les_differentielles); \ \ FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \ \ Eblock