/*************************************************************************************************************************************/
/* */
/* 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/surfaces.13$I' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 1993??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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/surfaces.33.I"
/* Introduit le 20190228164354... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 \
/* Introduit le 20060117133441... */ \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
GET_ARGUMENT_L("UV_transformer=""UV=",transformer_u_v); \
/* Le 20150527143014 je note que lorsque les coordonnees {U,V} sont utilisees, il est */ \
/* fortement conseille de ne pas interpoler dans 'gFFload_point_coordonnees_01(...)' via : */ \
/* */ \
/* tinterpoler=FAUX */ \
/* */ \
/* afin d'eviter des points isoles ou d'autres defauts... */ \
GET_ARGUMENT_L("UV_trouer=",trouer_u_v); \
/* Le "trouage" a ete introduit le 20060530151452... */ \
\
GET_ARGUMENT_L("tore_u=",gestion_torique_de_u); \
GET_ARGUMENT_L("tore_v=",gestion_torique_de_v); \
/* La gestion "torique" de {u,v} a ete introduite le 20060601132725... */ \
\
GET_ARGUMENT_L("UV_periodiser_u=""UV_per_u=",transformer_u_v_periodiser_u); \
GET_ARGUMENT_L("UV_periodiser_v=""UV_per_v=",transformer_u_v_periodiser_v); \
GET_ARGUMENT_L("TUV_periodiser_u=""TUV_per_u=",trouer_u_v_periodiser_u); \
GET_ARGUMENT_L("TUV_periodiser_v=""TUV_per_v=",trouer_u_v_periodiser_v); \
\
GET_ARGUMENT_L("UV_symetriser_u=""UV_sym_u=",transformer_u_v_symetriser_u); \
GET_ARGUMENT_L("UV_symetriser_v=""UV_sym_v=",transformer_u_v_symetriser_v); \
GET_ARGUMENT_L("TUV_symetriser_u=""TUV_sym_u=",trouer_u_v_symetriser_u); \
GET_ARGUMENT_L("TUV_symetriser_v=""TUV_sym_v=",trouer_u_v_symetriser_v); \
\
GET_ARGUMENT_L("UV_prolonger_u=""UV_pro_u=",transformer_u_v_prolonger_u); \
GET_ARGUMENT_L("UV_prolonger_v=""UV_pro_v=",transformer_u_v_prolonger_v); \
GET_ARGUMENT_L("TUV_prolonger_u=""TUV_pro_u=",trouer_u_v_prolonger_u); \
GET_ARGUMENT_L("TUV_prolonger_v=""TUV_pro_v=",trouer_u_v_prolonger_v); \
\
GET_ARGUMENT_F("UV_hors=",transformer_u_v_niveau_hors_image); \
\
GET_ARGUMENT_L("image_Coordonnee_U_interpoler=" \
,image_Coordonnee_U__interpoler_bilineairement_ou_bicubiquement \
); \
GET_ARGUMENT_L("image_Coordonnee_U_lineaire=" \
,image_Coordonnee_U__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_N("image_Coordonnee_U_cubique=" \
,image_Coordonnee_U__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_L("image_Coordonnee_U_eviter_discontinuites=" \
,image_Coordonnee_U__eviter_les_fortes_discontinuites \
); \
GET_ARGUMENT_F("image_Coordonnee_U_epsilon_discontinuites=" \
,image_Coordonnee_U__epsilon_detection_des_fortes_discontinuites \
); \
\
GET_ARGUMENT_L("image_Coordonnee_V_interpoler=" \
,image_Coordonnee_V__interpoler_bilineairement_ou_bicubiquement \
); \
GET_ARGUMENT_L("image_Coordonnee_V_lineaire=" \
,image_Coordonnee_V__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_N("image_Coordonnee_V_cubique=" \
,image_Coordonnee_V__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_L("image_Coordonnee_V_eviter_discontinuites=" \
,image_Coordonnee_V__eviter_les_fortes_discontinuites \
); \
GET_ARGUMENT_F("image_Coordonnee_V_epsilon_discontinuites=" \
,image_Coordonnee_V__epsilon_detection_des_fortes_discontinuites \
); \
\
GET_ARGUMENT_C("imageU=""U=",nom_transformation_u); \
GET_ARGUMENT_C("imageV=""V=",nom_transformation_v); \
/* Ces images ont ete introduites le 20060117135333... */ \
/* */ \
/* Je rappelle le 20160330150619 que les coordonnees {X,Y} de la deformation correspondent */ \
/* aux coordonnees curvilignes {u,v}={latitude,longitude} de la surface... */ \
\
GET_ARGUMENT_L("image_Trous_interpoler=" \
,image_Trous__interpoler_bilineairement_ou_bicubiquement \
); \
GET_ARGUMENT_L("image_Trous_lineaire=" \
,image_Trous__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_N("image_Trous_cubique=" \
,image_Trous__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_L("image_Trous_eviter_discontinuites=" \
,image_Trous__eviter_les_fortes_discontinuites \
); \
GET_ARGUMENT_F("image_Trous_epsilon_discontinuites=" \
,image_Trous__epsilon_detection_des_fortes_discontinuites \
); \
\
GET_ARGUMENT_C("imageTUV=""TUV=",nom_trouage_u_v); \
/* Cette image a ete introduite le 20060529152106... */ \
\
GET_ARGUMENT_L("u_v_arbitraires=""uva=",definir_arbitrairement_les_coordonnees_u_v); \
/* Cette possibilite a ete introduite le 20221221114143... */ \
\
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 \
) \
); \
/* Cette possibilite a ete introduite le 20221221114143... */ \
/* */ \
/* Je note le 20250123174629 qu'en mode : */ \
/* */ \
/* u_v_arbitraires=VRAI */ \
/* */ \
/* en faisant varier 'nombre_d_elements', on peut faire une animation montrant le */ \
/* construction de la courbe {u,v} sur la surface... */ \
\
GET_ARGUMENT_F("separateur_u_v=""suv=",separateur_de_definition_arbitraire_des_coordonnees_u_v); \
/* Cette possibilite a ete introduite le 20230217095456... */ \
\
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 \
); \
/* Cette possibilite a ete introduite le 20221221114143... */ \
\
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 \
); \
/* Cette possibilite a ete introduite le 20230125094540... */ \
\
PROKESF_ARGUMENT_FICHIER("coordonnees_RAYON=" \
,fichier_des_coordonnees_RAYON \
,liste_des_coordonnees_RAYON \
,COORDONNEE_RAYON_IMPLICITE \
,lTRANSFORMAT_0d \
,iGENERATION_D_UN_FICHIER \
); \
/* Introduit le 20240517141440... */ \
\
PROKESF_ARGUMENT_FICHIER("coordonnees_MASSE=" \
,fichier_des_coordonnees_MASSE \
,liste_des_coordonnees_MASSE \
,COORDONNEE_MASSE_IMPLICITE \
,lTRANSFORMAT_0d \
,iGENERATION_D_UN_FICHIER \
); \
/* Introduit le 20240519091309... */ \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
Eblock
#define PROCESS_ARGUMENTS_COMMUNS_D_INTERPOLATION \
/* Introduit le 20170301145128... */ \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
Eblock
#ifndef DEFINITION_DES_INTERPOLATIONS_Fx_Fy_Fz
# define PROCESS_ARGUMENTS_D_INTERPOLATION \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
PROCESS_ARGUMENTS_COMMUNS_D_INTERPOLATION; \
\
GET_ARGUMENTS7_L("tinterpoler=" \
,FFload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement \
,image_Coordonnee_U__interpoler_bilineairement_ou_bicubiquement \
,image_Coordonnee_V__interpoler_bilineairement_ou_bicubiquement \
,image_Trous__interpoler_bilineairement_ou_bicubiquement \
,image_Texture_R__interpoler_bilineairement_ou_bicubiquement \
,image_Texture_V__interpoler_bilineairement_ou_bicubiquement \
,image_Texture_B__interpoler_bilineairement_ou_bicubiquement \
); \
/* Cet argument a ete introduit le 20150527160150... */ \
/* */ \
/* L'utilisation de 'GET_ARGUMENTS7_L(...)' le 20150528113208 est destinee a garantir la */ \
/* compatibilite anterieure a cette date, lorsque "tinterpoler=" controlait toutes les */ \
/* interpolations de 'FFload_point_coordonnees_01(...)'. */ \
GET_ARGUMENTS7_L("tlineaire=""tbilineaire=" \
,FFload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire \
,image_Coordonnee_U__utiliser_l_interpolation_bilineaire \
,image_Coordonnee_V__utiliser_l_interpolation_bilineaire \
,image_Trous__utiliser_l_interpolation_bilineaire \
,image_Texture_R__utiliser_l_interpolation_bilineaire \
,image_Texture_V__utiliser_l_interpolation_bilineaire \
,image_Texture_B__utiliser_l_interpolation_bilineaire \
); \
/* L'utilisation de 'GET_ARGUMENTS7_L(...)' le 20150528113208 est destinee a garantir la */ \
/* compatibilite anterieure a cette date, lorsque "tinterpoler=" controlait toutes les */ \
/* interpolations de 'FFload_point_coordonnees_01(...)'. */ \
GET_ARGUMENTS7_N("tcubique=""tbicubique=" \
,FFload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire \
,image_Coordonnee_U__utiliser_l_interpolation_bilineaire \
,image_Coordonnee_V__utiliser_l_interpolation_bilineaire \
,image_Trous__utiliser_l_interpolation_bilineaire \
,image_Texture_R__utiliser_l_interpolation_bilineaire \
,image_Texture_V__utiliser_l_interpolation_bilineaire \
,image_Texture_B__utiliser_l_interpolation_bilineaire \
); \
/* ATTENTION : 'FFload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire' est */ \
/* aussi reference dans 'v $xrs/project2D.11$K bilineaire=' (note le 20060602093342...). */ \
/* */ \
/* L'utilisation de 'GET_ARGUMENTS7_N(...)' le 20150528113208 est destinee a garantir la */ \
/* compatibilite anterieure a cette date, lorsque "tinterpoler=" controlait toutes les */ \
/* interpolations de 'FFload_point_coordonnees_01(...)'. */ \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
Eblock \
/* Arguments d'interpolation par defaut... */
#Aifndef DEFINITION_DES_INTERPOLATIONS_Fx_Fy_Fz
# define PROCESS_ARGUMENTS_D_INTERPOLATION \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
PROCESS_ARGUMENTS_COMMUNS_D_INTERPOLATION; \
\
GET_ARGUMENTSa_L("tinterpoler=" \
,FFload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement \
,Image_Fx__interpoler_bilineairement_ou_bicubiquement \
,Image_Fy__interpoler_bilineairement_ou_bicubiquement \
,Image_Fz__interpoler_bilineairement_ou_bicubiquement \
,image_Coordonnee_U__interpoler_bilineairement_ou_bicubiquement \
,image_Coordonnee_V__interpoler_bilineairement_ou_bicubiquement \
,image_Trous__interpoler_bilineairement_ou_bicubiquement \
,image_Texture_R__interpoler_bilineairement_ou_bicubiquement \
,image_Texture_V__interpoler_bilineairement_ou_bicubiquement \
,image_Texture_B__interpoler_bilineairement_ou_bicubiquement \
); \
GET_ARGUMENTSa_L("tlineaire=""tbilineaire=" \
,FFload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire \
,Image_Fx__utiliser_l_interpolation_bilineaire \
,Image_Fy__utiliser_l_interpolation_bilineaire \
,Image_Fz__utiliser_l_interpolation_bilineaire \
,image_Coordonnee_U__utiliser_l_interpolation_bilineaire \
,image_Coordonnee_V__utiliser_l_interpolation_bilineaire \
,image_Trous__utiliser_l_interpolation_bilineaire \
,image_Texture_R__utiliser_l_interpolation_bilineaire \
,image_Texture_V__utiliser_l_interpolation_bilineaire \
,image_Texture_B__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENTSa_N("tcubique=""tbicubique=" \
,FFload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire \
,Image_Fx__utiliser_l_interpolation_bilineaire \
,Image_Fy__utiliser_l_interpolation_bilineaire \
,Image_Fz__utiliser_l_interpolation_bilineaire \
,image_Coordonnee_U__utiliser_l_interpolation_bilineaire \
,image_Coordonnee_V__utiliser_l_interpolation_bilineaire \
,image_Trous__utiliser_l_interpolation_bilineaire \
,image_Texture_R__utiliser_l_interpolation_bilineaire \
,image_Texture_V__utiliser_l_interpolation_bilineaire \
,image_Texture_B__utiliser_l_interpolation_bilineaire \
); \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
Eblock \
/* Arguments d'interpolation par defaut avec ceux relatifs a {Fx,Fy,Fz}... */
#Eifndef DEFINITION_DES_INTERPOLATIONS_Fx_Fy_Fz
#define PROCESS_ARGUMENTS_DE_PROJECTION_DE_LA_SURFACE \
/* Introduit le 20041126093302... */ \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
GET_ARGUMENT_L("projeter=""projections=""projection=",generer_les_trois_projections_de_la_surface); \
GET_ARGUMENT_L("isp=""initialisations_projection=" \
,faire_les_initialisations_specifiques_de_projection_de_la_surface \
); \
/* Introduit le 20060502143135 pour 'v $xrs/project2D.01$Z initialisations'... */ \
GET_ARGUMENT_L("fuvp=""forcer_uv_projection=",forcer_les_extrema_de_u_v_lors_de_la_projection_de_la_surface); \
/* Introduit le 20060306160958 pour 'v $xrs/sphere.11$K' et l'image 'v $xiirs/PROJ.C1'... */ \
GET_ARGUMENT_L("tp=""transformer_projections=",les_trois_projections_de_la_surface_doivent_etre_transformees); \
/* Introduit le 20090606104410... */ \
GET_ARGUMENT_L("pt=""projeter_textures=",les_trois_projections_de_la_surface_sont_en_fait_celles_de_la_texture); \
GET_ARGUMENT_N("projeter_coordonnees=""pc=" \
,les_trois_projections_de_la_surface_sont_en_fait_celles_de_la_texture \
); \
GET_ARGUMENT_L("pt_apres=""projeter_textures_apres_mapping=" \
,les_trois_projections_de_la_texture_sont_mappees_sur_la_surface \
); \
GET_ARGUMENT_N("pt_avant=""projeter_textures_avant_mapping=" \
,les_trois_projections_de_la_texture_sont_mappees_sur_la_surface \
); \
/* Cet argument a ete introduit le 20050820082505... */ \
\
PROCESS_ARGUMENTS_D_INTERPOLATION; \
\
GET_ARGUMENT_L("tpasX_et_pasY=""tpasXY=",FFload_point_coordonnees_01_____utiliser_pasX_et_pasY); \
/* ATTENTION : 'FFload_point_coordonnees_01_____utiliser_pasX_et_pasY' est */ \
/* aussi reference dans 'v $xrs/project2D.11$K pasX_et_pasY=' (note le 20070406093111...). */ \
GET_ARGUMENT_I("tpasX=",FFload_point_coordonnees_01_____pasX); \
/* ATTENTION : 'FFload_point_coordonnees_01_____pasX' est */ \
/* aussi reference dans 'v $xrs/project2D.11$K pasX=' (note le 20070406093111...). */ \
GET_ARGUMENT_I("tpasY=",FFload_point_coordonnees_01_____pasY); \
/* ATTENTION : 'FFload_point_coordonnees_01_____pasY' est */ \
/* aussi reference dans 'v $xrs/project2D.11$K pasY=' (note le 20070406093111...). */ \
/* */ \
/* Les options de 'gFFload_point_coordonnees_01(...)' ont ete introduites le 20050715183925 */ \
/* mais on notera bien qu'elles portent sur 'gFFload_point_coordonnees_01(...)' de facon */ \
/* generale et non pas uniquement pour la projection des textures. Cela pourra interferer */ \
/* avec l'usage qui en est fait dans 'v $xrs/project2D.11$K FFload_point_coordonnees_01'... */ \
\
GET_ARGUMENT_L("standard=""projections_standard=",les_trois_projections_de_la_surface_sont_des_images_standards); \
/* L'option "projections_standard=", relatives a des images Resultats, a ete introduite */ \
/* le 20050725121009 "par symetrie" avec l'option "textures_standard=", qui elle est */ \
/* relative a des images Arguments. Cela facilitera donc l'utilisation de ces options... */ \
GET_ARGUMENT_L("zero=",conserver_le_zero_des_trois_projections_de_la_surface); \
GET_ARGUMENT_C("imagePTR=""imagePFx=""PTR=""PFx=",nom_imageProjectionFx); \
GET_ARGUMENT_C("imagePTV=""imagePFy=""PTV=""PFy=",nom_imageProjectionFy); \
GET_ARGUMENT_C("imagePTB=""imagePFz=""PTB=""PFz=",nom_imageProjectionFz); \
GET_ARGUMENT_C("imageP=""P=",nom_imageProjection); \
/* Arguments introduits le 20120531144845... */ \
/* */ \
/* Je rappelle le 20160330150619 que les coordonnees {X,Y} de la texture correspondent */ \
/* aux coordonnees curvilignes {u,v}={latitude,longitude} de la surface... */ \
\
GET_ARGUMENT_C("imageRDUV=",nom_imageR_Droite_uv); \
GET_ARGUMENT_L("visualiser_droite_uv=""vduv=",visualiser_la_droite_tracee_dans_le_plan_uv); \
/* Introduits le 20060817180436. Cela demandera en general de plus : */ \
/* */ \
/* maillage_uv=VRAI */ \
/* projeter=VRAI */ \
/* forcer_uv_projection=VRAI */ \
/* */ \
/* Ces arguments sont venus de 'PROCESS_ARGUMENTS_DE_DEFINITION_DES_COORDONNEES_CURVILIGNES' */ \
/* jusqu'ici le 20060831094638 puisque, logiquement, leur usage est conditionne par l'etat */ \
/* de 'IL_FAUT(generer_les_trois_projections_de_la_surface)'... */ \
/* */ \
/* Le 20170210130208, 'nom_imageDroite_uv' a ete remplace par 'nom_imageR_Droite_uv' suite */ \
/* a l'introduction de 'nom_imageA_Droite_uv' a cette date... */ \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
Eblock
#define PROCESS_ARGUMENTS_DE_VISUALISATION_DE_LA_TEXTURE \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
GET_ARGUMENT_F("vu=""mp=""meridiens_paralleles=""lignes_de_coordonnees=""lc=""intersections=""grossissement=" \
,grossissement_du_rayon_de_visualisation_aux_intersections_des_lignes_de_coordonnees \
); \
/* Introduit le 20041229183107. On notera que ce parametre est introduit ici alors qu'il */ \
/* serait plus logique dans 'PROCESS_ARGUMENTS_DE_VISUALISATION'. Mais en fait, cela */ \
/* simplifie les choses de le faire ici. D'autre part, l'application de ce grossissement */ \
/* est fait dans 'v $xrs/surfaces.12$I GENERATION_DU_TEXTURAGE_DE_LA_SURFACE'... */ \
/* */ \
/* Le 20041230101304, j'ai ajoute quelques synonymes, dont "mp=" et "vu=" destines a */ \
/* rappeler a quoi correspondent {u,v} : */ \
/* */ \
/* -------------------- */ \
/* | | */ \
/* | \|/ */ \
/* */ \
/* u=constante : "Paralleles", */ \
/* v=constante : "Meridiens". */ \
/* */ \
/* | /|\ */ \
/* | | */ \
/* -------------------- */ \
/* */ \
\
GET_ARGUMENT_L("ignorer_points_lointains=""ipl=",ignorer_les_points_trop_lointains); \
GET_ARGUMENT_F("distance_points_lointains=""dpl=",distance_des_points_trop_lointains); \
/* Introduits le 20120606144241... */ \
\
GET_ARGUMENT_L("AXES_COORDONNEES_FERMES_OUVERTS__texturage_____compatibilite_20130220=""compatibilite_20130220=" \
,AXES_COORDONNEES_FERMES_OUVERTS__texturage_surfaces_____compatibilite_20130220 \
); \
/* Introduit le 20130220132223... */ \
\
GET_ARGUMENT_L("texture_compatibilite_20170303=",texture_____compatibilite_20170303); \
/* Introduit le 20170303103205... */ \
\
GET_ARGUMENT_L("T_periodiser_X=""T_per_X=",textures_periodiser_X); \
GET_ARGUMENT_L("T_periodiser_Y=""T_per_Y=",textures_periodiser_Y); \
GET_ARGUMENT_L("T_symetriser_X=""T_sym_X=",textures_symetriser_X); \
GET_ARGUMENT_L("T_symetriser_Y=""T_sym_Y=",textures_symetriser_Y); \
GET_ARGUMENT_L("T_prolonger_X=""T_pro_X=",textures_prolonger_X); \
GET_ARGUMENT_L("T_prolonger_Y=""T_pro_Y=",textures_prolonger_Y); \
GET_ARGUMENT_F("T_hors=",textures_niveau_hors_image); \
/* Jusqu'au 20060117133441, il y avait 'GET_ARGUMENT_P(...)' ci-dessus par erreur, comme */ \
/* 'v $xrs/surfaces.14$I 20060117133441'... */ \
\
GET_ARGUMENT_L("ts=""textures_standard=""texture_standard=",les_textures_sont_des_images_standards); \
/* Introduit le 20050715181241... */ \
\
GET_ARGUMENT_L("cdts=""conserver_dynamique_textures_standards=" \
,la_dynamique_des_textures_standards_doit_etre_conservee \
); \
/* Introduit le 20221005114248... */ \
\
GET_ARGUMENT_L("image_Texture_R_interpoler=" \
,image_Texture_R__interpoler_bilineairement_ou_bicubiquement \
); \
GET_ARGUMENT_L("image_Texture_R_lineaire=" \
,image_Texture_R__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_N("image_Texture_R_cubique=" \
,image_Texture_R__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_L("image_Texture_R_eviter_discontinuites=" \
,image_Texture_R__eviter_les_fortes_discontinuites \
); \
GET_ARGUMENT_F("image_Texture_R_epsilon_discontinuites=" \
,image_Texture_R__epsilon_detection_des_fortes_discontinuites \
); \
/* Arguments introduits le 20150528132326... */ \
\
GET_ARGUMENT_L("image_Texture_V_interpoler=" \
,image_Texture_V__interpoler_bilineairement_ou_bicubiquement \
); \
GET_ARGUMENT_L("image_Texture_V_lineaire=" \
,image_Texture_V__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_N("image_Texture_V_cubique=" \
,image_Texture_V__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_L("image_Texture_V_eviter_discontinuites=" \
,image_Texture_V__eviter_les_fortes_discontinuites \
); \
GET_ARGUMENT_F("image_Texture_V_epsilon_discontinuites=" \
,image_Texture_V__epsilon_detection_des_fortes_discontinuites \
); \
/* Arguments introduits le 20150528132326... */ \
\
GET_ARGUMENT_L("image_Texture_B_interpoler=" \
,image_Texture_B__interpoler_bilineairement_ou_bicubiquement \
); \
GET_ARGUMENT_L("image_Texture_B_lineaire=" \
,image_Texture_B__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_N("image_Texture_B_cubique=" \
,image_Texture_B__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_L("image_Texture_B_eviter_discontinuites=" \
,image_Texture_B__eviter_les_fortes_discontinuites \
); \
GET_ARGUMENT_F("image_Texture_B_epsilon_discontinuites=" \
,image_Texture_B__epsilon_detection_des_fortes_discontinuites \
); \
/* Arguments introduits le 20150528132326... */ \
\
GET_ARGUMENT_C("imageTR=""TR=",nom_textureR); \
GET_ARGUMENT_C("imageTV=""TV=",nom_textureV); \
GET_ARGUMENT_C("imageTB=""TB=",nom_textureB); \
GET_ARGUMENT_F("ROUGE_T=",ponderation_ROUGE_pour_dcx); \
GET_ARGUMENT_F("VERTE_T=",ponderation_VERTE_pour_dcy); \
GET_ARGUMENT_F("BLEUE_T=",ponderation_BLEUE_pour_dcz); \
\
/* Le parametre 'prendre_la_valeur_absolue_des_differentielles' introduit le */ \
/* 20060131120029 a ete transfere dans 'v $xrv/champs_5.1A$I 20060201094519' afin */ \
/* d'en augmenter la portee... */ \
\
GET_ARGUMENT_L("rayon_compatibilite_20170303=",rayon_de_visualisation_____compatibilite_20170303); \
/* Introduit le 20170303103205... */ \
\
GET_ARGUMENT_L("R_periodiser_X=""R_per_X=",rayon_periodiser_X); \
GET_ARGUMENT_L("R_periodiser_Y=""R_per_Y=",rayon_periodiser_Y); \
GET_ARGUMENT_L("R_symetriser_X=""R_sym_X=",rayon_symetriser_X); \
GET_ARGUMENT_L("R_symetriser_Y=""R_sym_Y=",rayon_symetriser_Y); \
GET_ARGUMENT_L("R_prolonger_X=""R_pro_X=",rayon_prolonger_X); \
GET_ARGUMENT_L("R_prolonger_Y=""R_pro_Y=",rayon_prolonger_Y); \
GET_ARGUMENT_F("R_hors=",rayon_niveau_hors_image); \
/* Introduits le 20170303103414... */ \
\
GET_ARGUMENT_L("image_Rayon_interpoler=" \
,image_Rayon__interpoler_bilineairement_ou_bicubiquement \
); \
GET_ARGUMENT_L("image_Rayon_lineaire=" \
,image_Rayon__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_N("image_Rayon_cubique=" \
,image_Rayon__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_L("image_Rayon_eviter_discontinuites=" \
,image_Rayon__eviter_les_fortes_discontinuites \
); \
GET_ARGUMENT_F("image_Rayon_epsilon_discontinuites=" \
,image_Rayon__epsilon_detection_des_fortes_discontinuites \
); \
\
GET_ARGUMENT_C("imageRAYON=""RAYON=",nom_rayon); \
/* Le champ rayon a ete introduit le 20041229173848... */ \
\
GET_ARGUMENT_L("colorier_numero_points=""cnp=",colorier_avec_le_numero_des_points); \
/* Introduit le 20170213101455. Il est alors suggere de l'utiliser conjointement avec : */ \
/* */ \
/* centre_des_spheres=VRAI */ \
/* extrema_differentielles_arbitraires=FAUX */ \
/* */ \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
Eblock
#define PROCESS_ARGUMENTS_DE_VISUALISATION_DE_LA_NORMALE \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
GET_ARGUMENT_L("normale=",visualiser_la_normale); \
GET_ARGUMENT_I("pointsN=",nombre_absolu_de_points_sur_une_normale); \
GET_ARGUMENT_F("facteurN=",facteur_de_la_normale); \
GET_ARGUMENT_F("rayonN=",facteur_du_rayon_de_visualisation_pour_la_normale); \
\
GET_ARGUMENT_F("facteur_ROUGE_N=",facteur_du_ROUGE_pour_la_normale); \
GET_ARGUMENT_F("facteur_VERTE_N=",facteur_du_VERTE_pour_la_normale); \
GET_ARGUMENT_F("facteur_BLEUE_N=",facteur_du_BLEUE_pour_la_normale); \
/* Ces trois facteurs ont ete introduits le 20060207093944... */ \
GET_ARGUMENT_F("pROUGE_N1=",ponderation1_ROUGE_pour_la_normale); \
GET_ARGUMENT_F("pVERTE_N1=",ponderation1_VERTE_pour_la_normale); \
GET_ARGUMENT_F("pBLEUE_N1=",ponderation1_BLEUE_pour_la_normale); \
\
GET_ARGUMENT_F("nROUGE_N=",niveau_ROUGE_pour_la_normale); \
GET_ARGUMENT_F("nVERTE_N=",niveau_VERTE_pour_la_normale); \
GET_ARGUMENT_F("nBLEUE_N=",niveau_BLEUE_pour_la_normale); \
GET_ARGUMENT_F("pROUGE_N2=",ponderation2_ROUGE_pour_la_normale); \
GET_ARGUMENT_F("pVERTE_N2=",ponderation2_VERTE_pour_la_normale); \
GET_ARGUMENT_F("pBLEUE_N2=",ponderation2_BLEUE_pour_la_normale); \
/* Ces six parametres ont ete introduits le 20060207110735. On notera que par symetrie */ \
/* avec les trois nouveaux parametres {pROUGE_N2,pVERTE_N2,pBLEUE_N2}, les trois anciens */ \
/* parametres {ROUGE_N,VERTE_N,BLEUE_N} furent changes en {pROUGE_N1,pVERTE_N1,pBLEUE_N1}. */ \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
Eblock
#define PROCESS_ARGUMENTS_DE_DEFINITION_DES_COORDONNEES_CURVILIGNES \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
GET_ARGUMENT_L("luv=""lister_u_v=",lister_les_coordonnees_u_v_des_points); \
/* Introduit le 20060410111431... */ \
\
GET_ARGUMENT_L("majoration_maximum_des_coordonnees_u_v_____compatibilite_20160414=""compatibilite_20160414=" \
,majoration_du_maximum_des_coordonnees_u_v_____compatibilite_20160414 \
); \
GET_ARGUMENT_F("epsilon_majoration_maximum_des_coordonnees_u_v=""epsilon_maximum_u_v=""eMuv=" \
,epsilon_de_majoration_du_maximum_des_coordonnees_u_v \
); \
/* Introduit le 20160414102214 et complete le 20160414145313 avec le 'epsilon'... */ \
\
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_I("nombre_inter_paralleles=""nip=""niu=""nombre_paralleles=",nombre_d_inters_u); \
GET_ARGUMENT_I("nombre_points_entre_deux_paralleles=""npp=""npu=""nombre_intervalles_entre_deux_paralleles=" \
,nombre_de_points_dans_un_inter_u \
); \
GET_ARGUMENT_I("nombre_inter_meridiens=""nim=""niv=""nombre_meridiens=",nombre_d_inters_v); \
GET_ARGUMENT_I("nombre_points_entre_deux_meridiens=""npm=""npv=""nombre_intervalles_entre_deux_meridiens=" \
,nombre_de_points_dans_un_inter_v \
); \
/* Pour ameliorer encore la comprehension, le 20161212120957 "nombre_paralleles=" et */ \
/* "nombre_meridiens=" ont ete introduits... */ \
/* */ \
/* On notera le 20200619094321 que les "nombres de points" sont en fait des */ \
/* "nombres de points moins 1" ou "nombre d'intervalles", d'ou les nouveaux arguments */ \
/* introduits a cette date ('v $xiirs/$Fnota Debut_listG_SPHE_Q1' qui a permis de */ \
/* verifier cela...). */ \
PROCESS_ARGUMENT_L("faciliter_parametrage_u_v=""fpuv=" \
,faciliter_le_parametrage_de_u_v \
,BLOC(VIDE;) \
,BLOC(Bblock \
DEFV(Positive,INIT(nombre_de_points_a_visualiser \
,SUCC(MUL3(nombre_d_inters_v \
,nombre_d_inters_u \
,ADD2(SUCC(nombre_de_points_dans_un_inter_u) \
,SUCC(nombre_de_points_dans_un_inter_v) \
) \
) \
) \
) \
); \
/* On notera le 20200402123231, le nombre de points representatifs d'une surface. Soit */ \
/* donc : */ \
/* */ \
/* nombre_paralleles=NP */ \
/* nombre_points_entre_deux_paralleles=Np2P */ \
/* nombre_meridiens=NM */ \
/* nombre_points_entre_deux_meridiens=Np2M */ \
/* */ \
/* Chaque meridien est donc represente par : */ \
/* */ \
/* NP.(Np2P+1) points */ \
/* */ \
/* Chaque parallele est donc represente par : */ \
/* */ \
/* NM.(Np2M+1) points */ \
/* */ \
/* Il y a donc au total : */ \
/* */ \
/* NM.[NP.(Np2P+1)] + NP.[NM.(Np2M+1)] = NM.NP.[(Np2P+1)+(Np2M+1)] */ \
/* */ \
/* points a visualiser... */ \
/* */ \
/* Cette variable a ete introduite le 20200403094849, ainsi que le 'SUCC(...)' qui fait */ \
/* suite a la remarque 'v $xiirs/$Fnota existence.de.65601.points'... */ \
\
Test(IFLE(nombre_de_points_a_visualiser \
,nombre_maximal_de_points_visualisables \
) \
) \
Bblock \
Test(IL_FAUT(faciliter_le_parametrage_de_u_v)) \
Bblock \
Test(IFOU(IFOU(IFEQ(nombre_d_inters_u \
,NOMBRE_D_INTERS_u \
) \
,IFEQ(nombre_de_points_dans_un_inter_u \
,NOMBRE_DE_POINTS_DANS_UN_INTER_u \
) \
) \
,IFOU(IFEQ(nombre_d_inters_v \
,NOMBRE_D_INTERS_v \
) \
,IFEQ(nombre_de_points_dans_un_inter_v \
,NOMBRE_DE_POINTS_DANS_UN_INTER_v \
) \
) \
) \
) \
/* Test introduit le 20161205101245... */ \
Bblock \
PRINT_ATTENTION("argument 'faciliter_parametrage_u_v=' mal place ?"); \
/* Pour voir le bon ordre de definition des arguments, 'v $xrs/surfaces.14$I 20191015170625. */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
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)); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
ATes \
Bblock \
PRINT_ERREUR("Trop de points seront a visualiser, la commande est donc abortee."); \
CAL1(Prer2("(%d sont a visualiser, alors que seulement %d sont visualisables)\n" \
,nombre_de_points_a_visualiser \
,nombre_maximal_de_points_visualisables \
) \
); \
/* Message introduit le 20200403094849... */ \
\
ABORT_Commande; \
Eblock \
ETes \
Eblock \
) \
); \
/* Introduits le 20160414104726 pour faciliter le parametrage de l'espace {u,v}... */ \
/* */ \
/* ATTENTION : l'argument "fpuv=" doit absolument etre reference APRES tous ceux qui */ \
/* participent a la definition de l'espace {u,v} etant donnee la programmation de */ \
/* 'PROCESS_ARGUMENT_L(...)'. */ \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
Eblock
#define PROCESS_ARGUMENTS_DE_DEFINITION_D_UNE_DROITE_DU_PLAN_UV \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
GET_ARGUMENT_L("muv=""maillage_uv=",visualiser_les_points_du_maillage_uv); \
/* Introduits le 20060814185543... */ \
\
GET_ARGUMENT_L("duv=""droite_uv=",tracer_une_droite_du_plan_uv); \
GET_ARGUMENT_L("tracer_une_droite_du_plan_uv_____compatibilite_20170130=""compatibilite_20170130=" \
,tracer_une_droite_du_plan_uv_____compatibilite_20170130 \
); \
GET_ARGUMENT_F("Aduv=",coefficient_A_d_une_droite_du_plan_uv); \
GET_ARGUMENT_F("Bduv=",coefficient_B_d_une_droite_du_plan_uv); \
GET_ARGUMENT_F("Cduv=",coefficient_C_d_une_droite_du_plan_uv); \
GET_ARGUMENT_F("Fduv=",coefficient_F_d_une_droite_du_plan_uv); \
GET_ARGUMENT_F("Gduv=",coefficient_G_d_une_droite_du_plan_uv); \
GET_ARGUMENT_F("Hduv=",coefficient_H_d_une_droite_du_plan_uv); \
GET_ARGUMENT_F("Eduv=",epsilon_de_definition_d_une_droite_du_plan_uv); \
/* Introduits le 20060813111518 et completes le 20170124105727 avec {F,G,H}... */ \
/* */ \
/* On notera le 20170130111050 que si l'on souhaite, par exemple, une droite qui soit la */ \
/* diagonale principale du domaine [$MiNu,$MaXu]x[$MiNv,$MaXv], il faut prendre : */ \
/* */ \
/* Aduv = `calcul (($MaXv)-($MiNv))/(($MaXu)-($MiNu))` */ \
/* Bduv = -1 */ \
/* Cduv = $MiNv */ \
/* */ \
/* La "compatibilite_20170130" a ete introduite le 20170130143608... */ \
GET_ARGUMENT_F("muduv=",minimum_de_u_du_domaine_d_une_droite_du_plan_uv); \
GET_ARGUMENT_F("Muduv=",maximum_de_u_du_domaine_d_une_droite_du_plan_uv); \
GET_ARGUMENT_F("mvduv=",minimum_de_v_du_domaine_d_une_droite_du_plan_uv); \
GET_ARGUMENT_F("Mvduv=",maximum_de_v_du_domaine_d_une_droite_du_plan_uv); \
/* Introduits le 20060818092338... */ \
\
GET_ARGUMENT_C("imageADUV=",nom_imageA_Droite_uv); \
/* Introduits le 20170210130208... */ \
GET_ARGUMENT_L("imageA_Droite_uv_interpoler=" \
,imageA_Droite_uv__interpoler_bilineairement_ou_bicubiquement \
); \
GET_ARGUMENT_N("imageA_Droite_uv_cubique=" \
,imageA_Droite_uv__utiliser_l_interpolation_bilineaire \
); \
GET_ARGUMENT_L("imageA_Droite_uv_eviter_discontinuites=" \
,imageA_Droite_uv__eviter_les_fortes_discontinuites \
); \
GET_ARGUMENT_F("imageA_Droite_uv_epsilon_discontinuites=" \
,imageA_Droite_uv__epsilon_detection_des_fortes_discontinuites \
); \
/* Introduits le 20170228182517 et modifie le 20170301145128 en creant des variables */ \
/* "locales" suite a l'introduction de 'v $xrs/surfaces.12$I sgFFload_point_coordonnees_01'. */ \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
Eblock \
/* Introduit le 20060831112009 afin d'isoler ces parametres de ceux qui sont definis dans */ \
/* 'PROCESS_ARGUMENTS_DE_DEFINITION_DES_COORDONNEES_CURVILIGNES' afin de les rendre non */ \
/* accessibles si necessaire (par exemple dans 'v $xrs/CalabiYau.12$K' ainsi que dans */ \
/* 'v $xrs/CalabiYau.12$K' pour lesquels la surface est en fait un assemblage de surfaces */ \
/* elementaires -ou "patches"-...). */
#define PROCESS_ARGUMENTS_DE_DEFINITION_DE_LA_COORDONNEE_DE_PARAMETRAGE_DU_PLAN \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
GET_ARGUMENT_F("mt=",minimum_de_t); \
GET_ARGUMENT_F("Mt=",maximum_de_t); \
GET_ARGUMENT_F("pas_t=",pas_de_t); \
/* On notera que l'on ne peut utiliser ici : */ \
/* */ \
/* GET_ARGUMENT_F("pt=",pas_de_t); */ \
/* */ \
/* a cause de : */ \
/* */ \
/* GET_ARGUMENT_L("pt=""projeter_textures=",...); */ \
/* */ \
/* ci-dessus (dans 'PROCESS_ARGUMENTS_DE_PROJECTION_DE_LA_SURFACE')... */ \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
Eblock \
/* Introduit le 20220513175413 afin d'isoler ces parametres de ceux qui sont definis dans */
#define PROCESS_ARGUMENTS_DE_DIFFERENTIATION_PAR_DIFFERENCES \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
GET_ARGUMENT_L("hddu=",le_pas_de_u_de_differentiation_est_homothetique); \
GET_ARGUMENT_L("hddv=",le_pas_de_v_de_differentiation_est_homothetique); \
/* Introduit le 20041119150651... */ \
\
GET_ARGUMENT_F("ddu=",diviseur_de_differentiation_de_u); \
GET_ARGUMENT_F("ddv=",diviseur_de_differentiation_de_v); \
\
GET_ARGUMENT_L("calcul_differentielles_____compatibilite_2009110217=""compatibilite_2009110217=" \
,calcul_des_differentielles_avec_u_v_____compatibilite_2009110217 \
); \
/* Introduit le 20091102172230... */ \
\
GET_ARGUMENT_F("dxu=",ponderation_de__u_____dans_dx); \
GET_ARGUMENT_F("dxv=",ponderation_de__v_____dans_dx); \
/* Introduit le 20090723214313... */ \
GET_ARGUMENT_F("dxFx=",ponderation_de_Fx_____dans_dx); \
GET_ARGUMENT_F("dxFxu=",ponderation_de_Fx_u___dans_dx); \
GET_ARGUMENT_F("dxFxv=",ponderation_de_Fx___v_dans_dx); \
GET_ARGUMENT_F("dxFxuv=",ponderation_de_Fx_u_v_dans_dx); \
\
GET_ARGUMENT_F("dxFy=",ponderation_de_Fy_____dans_dx); \
GET_ARGUMENT_F("dxFyu=",ponderation_de_Fy_u___dans_dx); \
GET_ARGUMENT_F("dxFyv=",ponderation_de_Fy___v_dans_dx); \
GET_ARGUMENT_F("dxFyuv=",ponderation_de_Fy_u_v_dans_dx); \
\
GET_ARGUMENT_F("dxFz=",ponderation_de_Fz_____dans_dx); \
GET_ARGUMENT_F("dxFzu=",ponderation_de_Fz_u___dans_dx); \
GET_ARGUMENT_F("dxFzv=",ponderation_de_Fz___v_dans_dx); \
GET_ARGUMENT_F("dxFzuv=",ponderation_de_Fz_u_v_dans_dx); \
\
GET_ARGUMENT_F("dyu=",ponderation_de__u_____dans_dy); \
GET_ARGUMENT_F("dyv=",ponderation_de__v_____dans_dy); \
/* Introduit le 20090723214313... */ \
GET_ARGUMENT_F("dyFx=",ponderation_de_Fx_____dans_dy); \
GET_ARGUMENT_F("dyFxu=",ponderation_de_Fx_u___dans_dy); \
GET_ARGUMENT_F("dyFxv=",ponderation_de_Fx___v_dans_dy); \
GET_ARGUMENT_F("dyFxuv=",ponderation_de_Fx_u_v_dans_dy); \
\
GET_ARGUMENT_F("dyFy=",ponderation_de_Fy_____dans_dy); \
GET_ARGUMENT_F("dyFyu=",ponderation_de_Fy_u___dans_dy); \
GET_ARGUMENT_F("dyFyv=",ponderation_de_Fy___v_dans_dy); \
GET_ARGUMENT_F("dyFyuv=",ponderation_de_Fy_u_v_dans_dy); \
\
GET_ARGUMENT_F("dyFz=",ponderation_de_Fz_____dans_dy); \
GET_ARGUMENT_F("dyFzu=",ponderation_de_Fz_u___dans_dy); \
GET_ARGUMENT_F("dyFzv=",ponderation_de_Fz___v_dans_dy); \
GET_ARGUMENT_F("dyFzuv=",ponderation_de_Fz_u_v_dans_dy); \
\
GET_ARGUMENT_F("dzu=",ponderation_de__u_____dans_dz); \
GET_ARGUMENT_F("dzv=",ponderation_de__v_____dans_dz); \
/* Introduit le 20090723214313... */ \
GET_ARGUMENT_F("dzFx=",ponderation_de_Fx_____dans_dz); \
GET_ARGUMENT_F("dzFxu=",ponderation_de_Fx_u___dans_dz); \
GET_ARGUMENT_F("dzFxv=",ponderation_de_Fx___v_dans_dz); \
GET_ARGUMENT_F("dzFxuv=",ponderation_de_Fx_u_v_dans_dz); \
\
GET_ARGUMENT_F("dzFy=",ponderation_de_Fy_____dans_dz); \
GET_ARGUMENT_F("dzFyu=",ponderation_de_Fy_u___dans_dz); \
GET_ARGUMENT_F("dzFyv=",ponderation_de_Fy___v_dans_dz); \
GET_ARGUMENT_F("dzFyuv=",ponderation_de_Fy_u_v_dans_dz); \
\
GET_ARGUMENT_F("dzFz=",ponderation_de_Fz_____dans_dz); \
GET_ARGUMENT_F("dzFzu=",ponderation_de_Fz_u___dans_dz); \
GET_ARGUMENT_F("dzFzv=",ponderation_de_Fz___v_dans_dz); \
GET_ARGUMENT_F("dzFzuv=",ponderation_de_Fz_u_v_dans_dz); \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
/* */ \
/* Le 20090606172901 furent introduites les ponderations relatives a {cx,cy,cz} (baptisees */ \
/* 'ponderation_de_F?_____dans_d?') nulles par defaut pour des raisons de compatibilite */ \
/* anterieure... */ \
\
Eblock \
/* Introduit le 20041118143736... */
#define PROCESS_ARGUMENTS_DE_PERMUTATION_DES_COORDONNEES_ET_DES_DIFFERENTIELLES \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
GET_ARGUMENT_L("permuter_coordonnees_differentielles=""pcd=",permuter_les_coordonnees_et_les_differentielles); \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
/* Introduit le 20060208111433 ('v $xig/fonct$vv$DEF _IMBRICATION_DES__gPROCESS_PARAMETRE'). */ \
\
Eblock \
/* Introduit le 20050615083350... */
#ifdef PRAGMA_CPP_____AUTORISER_LE_GooF
# ifdef SI_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_FLOTTANTS_EST_ACTIVABLE_ALORS_L_UTILISER_AUSSI_POUR_LES_DERIVEES
# define PROCESS_ARGUMENTS_D_ACTIVATION_DE_L_ARITHMETIQUE_ETENDUE_ET_NON_BASIQUE_POUR_dFx_dFy_dFz \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
@ ifndef PRAGMA_CPP_____MODULE_NON_DERIVABLE@@@ \
PROCESS_ARGUMENT_L("arithmetique_etendue_dFx_dFy_dFz=""ariedF=""ariedf=""aried=" \
,dFx_dFy_dFz____`use_arithmetique_etendue_et_non_basique \
,BLOC(VIDE;) \
,BLOC(Bblock \
EGAL(si_le_GooF_est_activable`use_arithmetique_etendue_et_non_basique \
,NEUL(dFx_dFy_dFz____`use_arithmetique_etendue_et_non_basique) \
); \
Eblock \
) \
); \
PROCESS_ARGUMENT_N("arithmetique_de_base_dFx_dFy_dFz=""aribdF=""aribdf=""aribd=" \
,dFx_dFy_dFz____`use_arithmetique_etendue_et_non_basique \
,BLOC(VIDE;) \
,BLOC(Bblock \
EGAL(si_le_GooF_est_activable`use_arithmetique_etendue_et_non_basique \
,NOTL(dFx_dFy_dFz____`use_arithmetique_etendue_et_non_basique) \
); \
Eblock \
) \
); \
/* Le 20201012170616, je decouvre que ce sont ces directives conditionnees par la variable */ \
/* 'PRAGMA_CPP_____MODULE_NON_DERIVABLE' qui sont responsables de l'apparition du message */ \
/* 'v $xig/fonct$vv$DEF le.calcul.du.nombre.maximal.d.arguments.regroupes.en' lorsque */ \
/* l'option : */ \
/* */ \
/* @define PRAGMA_CPP_____MODULE_NON_DERIVABLE */ \
/* */ \
/* est presente dans 'v $xrs/Horner42.11$K PRAGMA_CPP_____MODULE_NON_DERIVABLE'... */ \
/* Supprimer ces directives fait disparaitre le probleme... */ \
/* */ \
/* En fait le probleme venait de 'v $xcc/cpp$Z 20201013131140' qui faisait que certaines */ \
/* recuperations d'arguments qui etaient conditionnelles (ici via 'MODULE_NON_DERIVABLE') */ \
/* etaient malgre tout comptabilisees dans 'v $xcc/cpp$Z NoMbRe_PaRaMeTrEs' et dans ce */ \
/* cas il semblait y en avoir plus qu'en realite... */ \
@ Aifndef PRAGMA_CPP_____MODULE_NON_DERIVABLE@@@ \
BLOC(VIDE;); \
@ Eifndef PRAGMA_CPP_____MODULE_NON_DERIVABLE@@@ \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
Eblock \
/* Introduit le 20080125084000 et decoupe en {Fx,Fy,Fz} et {dFX,dFy,dFz} le 20080126105643. */
# Aifdef SI_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_FLOTTANTS_EST_ACTIVABLE_ALORS_L_UTILISER_AUSSI_POUR_LES_DERIVEES
# define PROCESS_ARGUMENTS_D_ACTIVATION_DE_L_ARITHMETIQUE_ETENDUE_ET_NON_BASIQUE_POUR_dFx_dFy_dFz \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
BLOC(VIDE;); \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
Eblock \
/* Introduit le 20080125084000 et decoupe en {Fx,Fy,Fz} et {dFX,dFy,dFz} le 20080126105643. */
# Eifdef SI_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_FLOTTANTS_EST_ACTIVABLE_ALORS_L_UTILISER_AUSSI_POUR_LES_DERIVEES
# define PROCESS_ARGUMENTS_D_ACTIVATION_DE_L_ARITHMETIQUE_ETENDUE_ET_NON_BASIQUE_POUR_Fx_Fy_Fz \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
PROCESS_ARGUMENT_L("arithmetique_etendue_Fx_Fy_Fz=""arieF=""arief=" \
,Fx_Fy_Fz____`use_arithmetique_etendue_et_non_basique \
,BLOC(VIDE;) \
,BLOC(Bblock \
EGAL(si_le_GooF_est_activable`use_arithmetique_etendue_et_non_basique \
,Fx_Fy_Fz____`use_arithmetique_etendue_et_non_basique \
); \
Eblock \
) \
); \
PROCESS_ARGUMENT_N("arithmetique_de_base_Fx_Fy_Fz=""aribF=""aribf=" \
,Fx_Fy_Fz____`use_arithmetique_etendue_et_non_basique \
,BLOC(VIDE;) \
,BLOC(Bblock \
EGAL(si_le_GooF_est_activable`use_arithmetique_etendue_et_non_basique \
,NOTL(Fx_Fy_Fz____`use_arithmetique_etendue_et_non_basique) \
); \
Eblock \
) \
); \
\
PROCESS_ARGUMENTS_D_ACTIVATION_DE_L_ARITHMETIQUE_ETENDUE_ET_NON_BASIQUE_POUR_dFx_dFy_dFz; \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
Eblock \
/* Introduit le 20080125084000 et decoupe en {Fx,Fy,Fz} et {dFX,dFy,dFz} le 20080126105643. */
#Aifdef PRAGMA_CPP_____AUTORISER_LE_GooF
# define PROCESS_ARGUMENTS_D_ACTIVATION_DE_L_ARITHMETIQUE_ETENDUE_ET_NON_BASIQUE_POUR_Fx_Fy_Fz \
Bblock \
\
DEBUT_D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
BLOC(VIDE;); \
\
FIN___D_IMBRICATION_DES_____gPROCESS_PARAMETRE_____SECONDAIRES; \
\
Eblock \
/* Introduit le 20080125084000... */
#Eifdef PRAGMA_CPP_____AUTORISER_LE_GooF