/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D ' U N P R O J E C T O R T R I D I M E N S I O N N E L : */
/* */
/* */
/* Author of '$xrs/project3D.11$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20050619121603). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 : */
/* */
/*************************************************************************************************************************************/
@define PRAGMA_CPP_____MODULE_NON_DERIVABLE
@define PRAGMA_CL_____MODULE_NON_OPTIMISABLE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* F I C H I E R S D ' I N C L U D E S : */
/* */
/*************************************************************************************************************************************/
#include INCLUDES_BASE
#include image_image_IMAGESF_EXT
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N S D E B A S E E T U N I V E R S E L L E S : */
/* */
/*************************************************************************************************************************************/
#include xrv/dimensionnement.01.vv.I"
/* Introduit le 20111209173117... */
#include xrk/attractor.11.I"
#include xrv/particule.41.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 3 */
/* D E F I N I T I O N D E L ' E S P A C E P H Y S I Q U E D A N S R ( D E B U T ) : */
/* */
/* */
/* Nota : */
/* */
/* Les extrema des coordonnees {x,y,z} */
/* ainsi que ceux de leurs differentielles */
/* {dx,dy,dz} sont fixees un peu arbitrairement */
/* et sans etre parametrees. */
/* */
/* */
/*************************************************************************************************************************************/
#include xrs/project3D.18.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 3 */
/* D E F I N I T I O N D E L ' E S P A C E P H Y S I Q U E D A N S R ( D E B U T ) : */
/* */
/*************************************************************************************************************************************/
#include xrk/attractor.12.I"
#include xrs/project3D.19.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D ' U N P R O J E C T O R T R I D I M E N S I O N N E L : */
/* */
/* */
/* Definition de la variete ('v $xrs/project3D.11$K') : */
/* */
/* Le projector tridimensionnel est defini parametriquement */
/* en fonction des trois parametres 'u', 'v' et 'w' : */
/* */
/* F (u,v,w) = A .AlbumX(u,v,w) + T */
/* x x x */
/* */
/* F (u,v,w) = A .AlbumY(u,v,w) + T */
/* y y y */
/* */
/* F (u,v,w) = A .AlbumZ(u,v,w) + T */
/* z z z */
/* */
/* (ou 'Album?(u,v,w)' sont des albums flottants indexes */
/* par (u,v,w) -coordonnees flottantes {Xf,Yf,Zf} respectivement- */
/* a l'aide d'une procedure d'interpolation bicubique) */
/* */
/* avec : */
/* */
/* u E [ 0 , 1 ] (--O--> Xf) */
/* */
/* v E [ 0 , 1 ] (--O--> Yf) */
/* */
/* w E [ 0 , 1 ] (--O--> Zf) */
/* */
/* */
/*************************************************************************************************************************************/
#include xrs/project3D.12.I"
#include xrs/project3D.14.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D E S T R O I S A L B U M S D E F I N I S S A N T */
/* L E S T R O I S P R O J E C T I O N S : */
/* */
/*************************************************************************************************************************************/
#define VISUALISER_UNE_VARIETE_TRIDIMENSIONNELLE \
VRAI
DEFV(Local,DEFV(Logical,INIT(visualiser_une_variete_tridimensionnelle,VISUALISER_UNE_VARIETE_TRIDIMENSIONNELLE)));
/* Ceci fut introduit le 20060502145146 afin de permettre de visualiser une variete */
/* tridimensionnelle (ce qui correspond a l'unique fonction anterieure) ou bien un */
/* ensemble de surfaces bidimensionnelles... */
#define AMPLIFICATEUR_DES_IMAGES \
FU
DEFV(Local,DEFV(Float,INIT(Album_Fx_amplificateur,AMPLIFICATEUR_DES_IMAGES)));
DEFV(Local,DEFV(Float,INIT(Album_Fy_amplificateur,AMPLIFICATEUR_DES_IMAGES)));
DEFV(Local,DEFV(Float,INIT(Album_Fz_amplificateur,AMPLIFICATEUR_DES_IMAGES)));
/* Amplificateurs pour {Fx,Fy,Fz}. */
#define TRANSLATEUR_DES_IMAGES \
FZERO
DEFV(Local,DEFV(Float,INIT(Album_Fx_translateur,TRANSLATEUR_DES_IMAGES)));
DEFV(Local,DEFV(Float,INIT(Album_Fy_translateur,TRANSLATEUR_DES_IMAGES)));
DEFV(Local,DEFV(Float,INIT(Album_Fz_translateur,TRANSLATEUR_DES_IMAGES)));
/* Translateurs pour {Fx,Fy,Fz}. */
#define PERIODISER_u_v_w \
VRAI
DEFV(Local,DEFV(Logical,INIT(Album_Fx_periodiser_u,PERIODISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fy_periodiser_u,PERIODISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fz_periodiser_u,PERIODISER_u_v_w)));
/* Faut-il periodiser {u} pour {Fx,Fy,Fz} ? */
DEFV(Local,DEFV(Logical,INIT(Album_Fx_periodiser_v,PERIODISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fy_periodiser_v,PERIODISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fz_periodiser_v,PERIODISER_u_v_w)));
/* Faut-il periodiser {v} pour {Fx,Fy,Fz} ? */
DEFV(Local,DEFV(Logical,INIT(Album_Fx_periodiser_w,PERIODISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fy_periodiser_w,PERIODISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fz_periodiser_w,PERIODISER_u_v_w)));
/* Faut-il periodiser {w} pour {Fx,Fy,Fz} ? */
#define SYMETRISER_u_v_w \
FAUX
DEFV(Local,DEFV(Logical,INIT(Album_Fx_symetriser_u,SYMETRISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fy_symetriser_u,SYMETRISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fz_symetriser_u,SYMETRISER_u_v_w)));
/* Faut-il periodiser {u} pour {Fx,Fy,Fz} ? Ceci a ete introduit le 20050721102546... */
DEFV(Local,DEFV(Logical,INIT(Album_Fx_symetriser_v,SYMETRISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fy_symetriser_v,SYMETRISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fz_symetriser_v,SYMETRISER_u_v_w)));
/* Faut-il periodiser {v} pour {Fx,Fy,Fz} ? Ceci a ete introduit le 20050721102546... */
DEFV(Local,DEFV(Logical,INIT(Album_Fx_symetriser_w,SYMETRISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fy_symetriser_w,SYMETRISER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fz_symetriser_w,SYMETRISER_u_v_w)));
/* Faut-il periodiser {w} pour {Fx,Fy,Fz} ? Ceci a ete introduit le 20050721102546... */
#define PROLONGER_u_v_w \
FAUX
DEFV(Local,DEFV(Logical,INIT(Album_Fx_prolonger_u,PROLONGER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fy_prolonger_u,PROLONGER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fz_prolonger_u,PROLONGER_u_v_w)));
/* Faut-il prolonger {u} pour {Fx,Fy,Fz} ? */
DEFV(Local,DEFV(Logical,INIT(Album_Fx_prolonger_v,PROLONGER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fy_prolonger_v,PROLONGER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fz_prolonger_v,PROLONGER_u_v_w)));
/* Faut-il prolonger {v} pour {Fx,Fy,Fz} ? */
DEFV(Local,DEFV(Logical,INIT(Album_Fx_prolonger_w,PROLONGER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fy_prolonger_w,PROLONGER_u_v_w)));
DEFV(Local,DEFV(Logical,INIT(Album_Fz_prolonger_w,PROLONGER_u_v_w)));
/* Faut-il prolonger {w} pour {Fx,Fy,Fz} ? */
#define NIVEAU_HORS_PROJECTION \
FZERO
DEFV(Local,DEFV(genere_Float,INIT(Album_Fx_niveau_hors_album,NIVEAU_HORS_PROJECTION)));
DEFV(Local,DEFV(genere_Float,INIT(Album_Fy_niveau_hors_album,NIVEAU_HORS_PROJECTION)));
DEFV(Local,DEFV(genere_Float,INIT(Album_Fz_niveau_hors_album,NIVEAU_HORS_PROJECTION)));
/* Niveau hors-album pour {Fx,Fy,Fz}. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* F O N C T I O N S D E V I S U A L I S A T I O N E T D ' I N T E R P O L A T I O N : */
/* */
/*************************************************************************************************************************************/
#include xrs/volumes.21.I"
#define RENORMALISER_ARBITRAIREMENT_LES_DIFFERENTIELLES \
FAUX \
/* Pour ne pas renormaliser arbitrairement les differentielles, et ce afin de prendre en */ \
/* compte leur extrema veritables dans 'RENORMALISATION_D_UNE_LISTE_DE_POINTS'. Ceci a ete */ \
/* introduit le 20050621111640... */ \
/* */ \
/* Le 20060505173308 en calculant 'v $xiirs/SPHE.72' et 'v $xiirs/SPHE.73.2D', j'ai note */ \
/* une difference de comportement au niveau du parametre "eda=" (ou de son "complement" */ \
/* "edc=") venant du fait que le programme 'v $xrs/project2D.11$K' ne definit pas */ \
/* 'RENORMALISER_ARBITRAIREMENT_LES_DIFFERENTIELLES' et c'est donc la valeur par */ \
/* defaut ('VRAI') qui est utilisee. Alors qu'en ce qui concerne 'v $xrs/project3D.11$K', */ \
/* celui-ci lui donne la valeur 'FAUX', ce qui est donc fait ici... */
#define EDITER_LES_EXTREMA_S_ILS_SONT_HORS_PREVISIONS \
FAUX \
/* Afin de ne pas editer par defaut a la fin la valeur des extrema de {x,y,z} et {dx,dy,dz} */ \
/* lorsqu'ils sont en dehors de {?min_ESPACE,?max_ESPACE} et de {d?min_ESPACE,d?max_ESPACE} */ \
/* respectivement. */
#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... */
#include xrs/project3D.13.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D E S T R O I S F O N C T I O N S ' F ' : */
/* */
/*************************************************************************************************************************************/
#include xrs/project3D.11.I"
/* ATTENTION, il est imperatif que les fonctions derivables formellement soient definies */
/* dans un fichier a part afin qu'elles ne soient pas l'objet d'une double definition. En */
/* effet, on trouve dans 'v $xcc/cpp$Z' : */
/* */
/* $CA $module$w */
/* | $xcp/cpp$X ... -c$PASSE_D -e$PASSE_5 */
/* > $fichierR */
/* */
/* Ainsi, si par exemple la definition de 'RAYON(h,theta)' etait faite localement dans le */
/* fichier '$xrf/recursif.11$K', cette definition apparaitrait deux fois dans le fichier */
/* '$module$w' : une premiere fois en tete, provenant de '$PASSE_D' ou l'on ne trouve que */
/* les definitions du type '-define ...', puis une deuxieme fois a la suite, la ou se trouve */
/* concatene au fichier '$module$W' des '-define ...' le fichier '$fichierA' a compiler... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P O U R D E S R A I S O N S D E C O M P A T I B I L I T E : */
/* */
/*************************************************************************************************************************************/
#include xrk/integr.1B.vv.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D E S I N I T I A L I S A T I O N S : */
/* */
/*************************************************************************************************************************************/
#include xrk/attractor.18.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D ' U N P R O J E C T O R T R I D I M E N S I O N N E L : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
#include xrs/volumes.41.I"
/* Introduit le 20150528140534... */
DEFV(CHAR,INIC(POINTERc(nom_albumFx),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_postfixeFx),NOM_UNDEF_VIDE));
DEFV(Int,INIT(premiere_imageFx,PREMIERE_IMAGE));
DEFV(Int,INIT(pas_des_imagesFx,PAS_DES_IMAGES));
DEFV(Int,INIT(nombre_de_chiffresFx,NOMBRE_DE_CHIFFRES));
/* Definition de l'album 'Fx'... */
DEFV(CHAR,INIC(POINTERc(nom_albumFy),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_postfixeFy),NOM_UNDEF_VIDE));
DEFV(Int,INIT(premiere_imageFy,PREMIERE_IMAGE));
DEFV(Int,INIT(pas_des_imagesFy,PAS_DES_IMAGES));
DEFV(Int,INIT(nombre_de_chiffresFy,NOMBRE_DE_CHIFFRES));
/* Definition de l'album 'Fy'... */
DEFV(CHAR,INIC(POINTERc(nom_albumFz),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_postfixeFz),NOM_UNDEF_VIDE));
DEFV(Int,INIT(premiere_imageFz,PREMIERE_IMAGE));
DEFV(Int,INIT(pas_des_imagesFz,PAS_DES_IMAGES));
DEFV(Int,INIT(nombre_de_chiffresFz,NOMBRE_DE_CHIFFRES));
/* Definition de l'album 'Fz'... */
DEFV(Logical,INIT(Album_Fx__interpoler_bilineairement_ou_bicubiquement
,FFAload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement
)
);
DEFV(Logical,INIT(Album_Fx__utiliser_l_interpolation_bilineaire
,FFAload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire
)
);
DEFV(Logical,INIT(Album_Fy__interpoler_bilineairement_ou_bicubiquement
,FFAload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement
)
);
DEFV(Logical,INIT(Album_Fy__utiliser_l_interpolation_bilineaire
,FFAload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire
)
);
DEFV(Logical,INIT(Album_Fz__interpoler_bilineairement_ou_bicubiquement
,FFAload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement
)
);
DEFV(Logical,INIT(Album_Fz__utiliser_l_interpolation_bilineaire
,FFAload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire
)
);
/* Definition des interpolations des albums {Fx,Fy,Fz} (introduite le 20150528104916). */
/* */
/* Je rappelle le 20200727133833 que ces differents parametres initialises a l'aide des */
/* parametres 'FFAload_point_coordonnees_01_____...' sont en fait utilises explicitement */
/* dans 'v $xrs/project3D.11$I Fx_Projector3D_1' par exemple... */
#include xrs/volumes.22.I"
/*..............................................................................................................................*/
BSaveModifyVariable(Logical,S_ACCELERATEUR__ALOAD_POINT_COORDONNEES_01_____utiliser_l_accelerateur,VRAI);
/* Introduit le 20120620091925... */
EGAL(AXES_COORDONNEES_FERMES_OUVERTS_____compatibilite_20090929,VRAI);
/* Introduit le 20101005092842 car, en effet, sans cela les images faites anterieurement */
/* au 20090929092932 n'etaient pas reproductibles (des defauts importants apparaissaient */
/* en particulier a la peripherie des "objets"). */
INITIALISATIONS_GENERALES;
/* Initialisations generales faites au tout debut... */
#include xrv/champs_5.1A.I"
#define DEFINITION_DES_INTERPOLATIONS_Fx_Fy_Fz
/* Afin de generer les 'GET_ARGUMENT_L(...)' de compatibilite (introduit le 20150528104916). */
#include xrs/volumes.13.I"
GET_ARGUMENTSv(nombre_d_arguments
,BLOC(PROCESS_ARGUMENTS_GEOMETRIQUES;
GET_ARGUMENT_L("variete_tridimensionnelle=""3D=",visualiser_une_variete_tridimensionnelle);
GET_ARGUMENT_N("variete_bidimensionnelle=""2D=",visualiser_une_variete_tridimensionnelle);
GET_ARGUMENT_C("albumFx=""Fx=",nom_albumFx);
GET_ARGUMENT_C("postfixeFx=",nom_postfixeFx);
GET_ARGUMENT_I("premiereFx=",premiere_imageFx);
GET_ARGUMENT_I("pasFx=",pas_des_imagesFx);
GET_ARGUMENT_I("chiffresFx=",nombre_de_chiffresFx);
GET_ARGUMENT_C("albumFy=""Fy=",nom_albumFy);
GET_ARGUMENT_C("postfixeFy=",nom_postfixeFy);
GET_ARGUMENT_I("premiereFy=",premiere_imageFy);
GET_ARGUMENT_I("pasFy=",pas_des_imagesFy);
GET_ARGUMENT_I("chiffresFy=",nombre_de_chiffresFy);
GET_ARGUMENT_C("albumFz=""Fz=",nom_albumFz);
GET_ARGUMENT_C("postfixeFz=",nom_postfixeFz);
GET_ARGUMENT_I("premiereFz=",premiere_imageFz);
GET_ARGUMENT_I("pasFz=",pas_des_imagesFz);
GET_ARGUMENT_I("chiffresFz=",nombre_de_chiffresFz);
GET_ARGUMENT_F("aFx=",Album_Fx_amplificateur);
GET_ARGUMENT_F("tFx=""bFx=",Album_Fx_translateur);
GET_ARGUMENT_F("aFy=",Album_Fy_amplificateur);
GET_ARGUMENT_F("tFy=""bFy=",Album_Fy_translateur);
GET_ARGUMENT_F("aFz=",Album_Fz_amplificateur);
GET_ARGUMENT_F("tFz=""bFz=",Album_Fz_translateur);
GET_ARGUMENT_L("Fx_periodiser_u=""Fx_per_u=",Album_Fx_periodiser_u);
GET_ARGUMENT_L("Fx_symetriser_u=""Fx_sym_u=",Album_Fx_symetriser_u);
GET_ARGUMENT_L("Fx_prolonger_u=""Fx_pro_u=",Album_Fx_prolonger_u);
GET_ARGUMENT_L("Fx_periodiser_v=""Fx_per_v=",Album_Fx_periodiser_v);
GET_ARGUMENT_L("Fx_symetriser_v=""Fx_sym_v=",Album_Fx_symetriser_v);
GET_ARGUMENT_L("Fx_prolonger_v=""Fx_pro_v=",Album_Fx_prolonger_v);
GET_ARGUMENT_L("Fx_periodiser_w=""Fx_per_w=",Album_Fx_periodiser_w);
GET_ARGUMENT_L("Fx_symetriser_w=""Fx_sym_w=",Album_Fx_symetriser_w);
GET_ARGUMENT_L("Fx_prolonger_w=""Fx_pro_w=",Album_Fx_prolonger_w);
GET_ARGUMENT_F("Fx_hors=",Album_Fx_niveau_hors_album);
GET_ARGUMENT_L("Fx_interpoler=",Album_Fx__interpoler_bilineairement_ou_bicubiquement);
GET_ARGUMENT_L("Fx_lineaire=""Fx_bilineaire=",Album_Fx__utiliser_l_interpolation_bilineaire);
GET_ARGUMENT_N("Fx_cubique=""Fx_bicubique=",Album_Fx__utiliser_l_interpolation_bilineaire);
/* Arguments introduits le 20150528104916... */
GET_ARGUMENT_L("Fy_periodiser_u=""Fy_per_u=",Album_Fy_periodiser_u);
GET_ARGUMENT_L("Fy_symetriser_u=""Fy_sym_u=",Album_Fy_symetriser_u);
GET_ARGUMENT_L("Fy_prolonger_u=""Fy_pro_u=",Album_Fy_prolonger_u);
GET_ARGUMENT_L("Fy_periodiser_v=""Fy_per_v=",Album_Fy_periodiser_v);
GET_ARGUMENT_L("Fy_symetriser_v=""Fy_sym_v=",Album_Fy_symetriser_v);
GET_ARGUMENT_L("Fy_prolonger_v=""Fy_pro_v=",Album_Fy_prolonger_v);
GET_ARGUMENT_L("Fy_periodiser_w=""Fy_per_w=",Album_Fy_periodiser_w);
GET_ARGUMENT_L("Fy_symetriser_w=""Fy_sym_w=",Album_Fy_symetriser_w);
GET_ARGUMENT_L("Fy_prolonger_w=""Fy_pro_w=",Album_Fy_prolonger_w);
GET_ARGUMENT_F("Fy_hors=",Album_Fy_niveau_hors_album);
GET_ARGUMENT_L("Fy_interpoler=",Album_Fy__interpoler_bilineairement_ou_bicubiquement);
GET_ARGUMENT_L("Fy_lineaire=""Fy_bilineaire=",Album_Fy__utiliser_l_interpolation_bilineaire);
GET_ARGUMENT_N("Fy_cubique=""Fy_bicubique=",Album_Fy__utiliser_l_interpolation_bilineaire);
/* Arguments introduits le 20150528104916... */
GET_ARGUMENT_L("Fz_periodiser_u=""Fz_per_u=",Album_Fz_periodiser_u);
GET_ARGUMENT_L("Fz_symetriser_u=""Fz_sym_u=",Album_Fz_symetriser_u);
GET_ARGUMENT_L("Fz_prolonger_u=""Fz_pro_u=",Album_Fz_prolonger_u);
GET_ARGUMENT_L("Fz_periodiser_v=""Fz_per_v=",Album_Fz_periodiser_v);
GET_ARGUMENT_L("Fz_symetriser_v=""Fz_sym_v=",Album_Fz_symetriser_v);
GET_ARGUMENT_L("Fz_prolonger_v=""Fz_pro_v=",Album_Fz_prolonger_v);
GET_ARGUMENT_L("Fz_periodiser_w=""Fz_per_w=",Album_Fz_periodiser_w);
GET_ARGUMENT_L("Fz_symetriser_w=""Fz_sym_w=",Album_Fz_symetriser_w);
GET_ARGUMENT_L("Fz_prolonger_w=""Fz_pro_w=",Album_Fz_prolonger_w);
GET_ARGUMENT_F("Fz_hors=",Album_Fz_niveau_hors_album);
GET_ARGUMENT_L("Fz_interpoler=",Album_Fz__interpoler_bilineairement_ou_bicubiquement);
GET_ARGUMENT_L("Fz_lineaire=""Fz_bilineaire=",Album_Fz__utiliser_l_interpolation_bilineaire);
GET_ARGUMENT_N("Fz_cubique=""Fz_bicubique=",Album_Fz__utiliser_l_interpolation_bilineaire);
/* Arguments introduits le 20150528104916... */
GET_ARGUMENT_L("AccelerateurALoadPoint=""AccALP="
,S_ACCELERATEUR__ALOAD_POINT_COORDONNEES_01_____utiliser_l_accelerateur
);
/* Arguments introduits le 20120312133002... */
GET_ARGUMENT_L("interpoler2D=""inter2D="
,FFload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement
);
GET_ARGUMENT_N("ne_pas_interpoler2D=""ninter2D="
,FFload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement
);
/* Parametres introduits le 20090720120452 pour le mode "2D=VRAI"... */
GET_ARGUMENT_L("lineaire2D=""bilineaire2D="
,FFload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire
);
GET_ARGUMENT_N("cubique2D=""bicubique2D="
,FFload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire
);
GET_ARGUMENT_L("pasX_et_pasY2D=""pasXY2D="
,FFload_point_coordonnees_01_____utiliser_pasX_et_pasY
);
GET_ARGUMENT_I("pasX2D=",FFload_point_coordonnees_01_____pasX);
GET_ARGUMENT_I("pasY2D=",FFload_point_coordonnees_01_____pasY);
/* Parametres introduits le 20090720120452 pour le mode "2D=VRAI"... */
GET_ARGUMENT_L("interpoler=""inter=""interpoler3D=""inter3D="
,FFAload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement
);
GET_ARGUMENT_N("ne_pas_interpoler=""ninter=""ne_pas_interpoler3D=""ninter3D="
,FFAload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement
);
/* Parametres introduits le 20090720120452. */
GET_ARGUMENT_L("lineaire=""bilineaire=""lineaire3D=""bilineaire3D="
,FFAload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire
);
GET_ARGUMENT_N("cubique=""bicubique=""cubique3D=""bicubique3D="
,FFAload_point_coordonnees_01_____utiliser_l_interpolation_bilineaire
);
GET_ARGUMENT_L("pasX_et_pasY_et_pasZ=""pasXYZ=""pasX_et_pasY_et_pasZ3D=""pasXYZ3D="
,FFAload_point_coordonnees_01_____utiliser_pasX_et_pasY_et_pasZ
);
GET_ARGUMENT_I("pasX=""pasX3D=",FFAload_point_coordonnees_01_____pasX);
GET_ARGUMENT_I("pasY=""pasY3D=",FFAload_point_coordonnees_01_____pasY);
GET_ARGUMENT_I("pasZ=""pasZ3D=",FFAload_point_coordonnees_01_____pasZ);
PROCESS_ARGUMENTS_DE_DERIVATION_PARTIELLE_NUMERIQUE;
PROCESS_ARGUMENTS_DE_COLORIAGE;
PROCESS_ARGUMENTS_DE_VISUALISATION;
PROCESS_ARGUMENTS_DE_PERMUTATION_DES_COORDONNEES_ET_DES_DIFFERENTIELLES;
/* Introduit le 20050623090501. */
PROCESS_ARGUMENTS_DE_TRANSFORMATION_DE_u_v_w;
/* Introduit le 20060530144819... */
PROCESS_ARGUMENTS_DE_VISUALISATION_DE_LA_TEXTURE;
/* Introduit le 20050622101102... */
PROCESS_ARGUMENTS_DE_DEFINITION_DES_COORDONNEES_CURVILIGNES;
PROCESS_ARGUMENTS_DE_GESTION_DE_LA_RELATIVITE_RESTREINTE;
)
);
#include xrs/volumes.12.I"
/* Visualisation et evolution du volume au cours du temps... */
Test(IL_NE_FAUT_PAS(visualiser_une_variete_tridimensionnelle))
Bblock
EGAL(pas_de_w,DIVI(SOUS(maximum_de_w,minimum_de_w),dimZN));
/* Lorsque l'on doit visualiser une (ou plusieurs) variete(s) bidimensionnelle(s), le */
/* pas de 'w' doit etre force. Ceci fut introduit le 20060504111145... */
EGAL(echantillonnage_de_w,ECHANTILLONNAGE_DE_u_DE_v_ET_DE_w);
EGAL(translation_de_l_echantillonnage_de_w,TRANSLATION_DE_L_ECHANTILLONNAGE_DE_u_DE_v_ET_DE_w);
EGAL(diviseur_du_pas_de_w,DIVISEUR_DU_PAS_DE_u_DE_v_ET_DE_w);
EGAL(diviseur_de_differentiation_de_w,DIVISEUR_DE_DIFFERENTIATION_DE_u_DE_v_ET_DE_w);
/* Mise en place a priori des valeurs par defaut (introduit le 20060509091338 car manquait). */
Eblock
ATes
Bblock
Eblock
ETes
begin_nouveau_block
Bblock
BDEFV(albumF,Album_Fx);
BDEFV(albumF,Album_Fy);
BDEFV(albumF,Album_Fz);
/* Definition des trois projections. */
CALi(dAloadF_album(Album_Fx
,nom_albumFx
,nom_postfixeFx
,premiere_imageFx
,pas_des_imagesFx
,nombre_de_chiffresFx
,FAUX
,UNDEF
,FAUX
)
);
CALi(dAloadF_album(Album_Fy
,nom_albumFy
,nom_postfixeFy
,premiere_imageFy
,pas_des_imagesFy
,nombre_de_chiffresFy
,FAUX
,UNDEF
,FAUX
)
);
CALi(dAloadF_album(Album_Fz
,nom_albumFz
,nom_postfixeFz
,premiere_imageFz
,pas_des_imagesFz
,nombre_de_chiffresFz
,FAUX
,UNDEF
,FAUX
)
);
/* L'argument 'Inv' ('FAUX') a ete introduit le 20091125135306... */
VISUALISATION_DU_VOLUME_AVEC_DIFFERENCES_ET_AVEC_TEXTURAGE____(BLOC(VIDE;)
,Fx_Projector3D_1,Fy_Projector3D_1,Fz_Projector3D_1
/* Fonctions definissant parametriquement la surface... */
,Pxyz_Projector3D_1
,BLOC(VIDE;)
/* Il n'y a rien de specifique a calculer pour le point courant... */
);
EDEFV(albumF,Album_Fz);
EDEFV(albumF,Album_Fy);
EDEFV(albumF,Album_Fx);
/* Definition des trois projections. */
Eblock
end_nouveau_block
ESaveModifyVariable(Logical,S_ACCELERATEUR__ALOAD_POINT_COORDONNEES_01_____utiliser_l_accelerateur);
RETU_Commande;
Eblock
ECommande
Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.