/*************************************************************************************************************************************/
/* */
/* A C C U M U L A T I O N T R I D I M E N S I O N N E L L E D ' U N A L B U M " F L O T T A N T " */
/* A V E C T E X T U R A G E : */
/* */
/* */
/* Nota important : */
/* */
/* Lorsqu'il n'y a aucune rotation (par rapport */
/* a aucun axe), cette accumulation equivaut a une */
/* projection parallele. Cela peut avoir des consequences */
/* inattendues lorsque le 'Z-Buffer' est ensuite utilise, */
/* par exemple, pour un effet de brume. */
/* */
/* Cela s'est vu aux environs du 20171107153651 */
/* lors du calcul de 'v $xiirf/MENG.G2.3.1', pour laquelle */
/* l'image associee 'v $xiirf/MENG.G2.3.2' etait uniformement */
/* blanche (le 'Z-Buffer' ne contenait alors que deux valeurs */
/* differentes : celle du fond et celle de la face avant de */
/* l'Eponge de Menger). Voir 'v $xiirf/$Fnota MENG_G2_3' a */
/* ce propos... */
/* */
/* */
/* Definition : */
/* */
/* Cette commande reconstituent une structure tridimensionnelle */
/* a partir d'une serie de coupes (c'est-a-dire une serie d'images) */
/* avec implicitement un parcours d'arriere en avant (c'est-a-dire */
/* que la premiere image recuperee est mise en arriere-plan et la */
/* derniere au premier-plan), cet ordre pouvant etre inverse... */
/* */
/* Mais, ATTENTION, cette inversion a lieu au moment du */
/* chargement de l'album en memoire, mais elle ne change PAS */
/* l'orientation de l'axe 'OZ'. On aura alors : */
/* */
/* */
/* inverser_l_axe_OZ=FAUX (par defaut) : */
/* */
/* */
/* Z=0 --------------------------------------- */
/* |image 1 | */
/* . | . | */
/* | | */
/* . | . | */
/* | | */
/* . | . | */
/* | | */
/* . | . | */
/* | | */
/* --------------------------------------- | */
/* |image N-2 | | */
/* | | | */
/* | | | */
/* | | | */
/* --------------------------------------- | | */
/* |image N-1 | |--------- */
/* | | | */
/* | | | . */
/* | | | */
/* Z=1 --------------------------------------- | | . */
/* |image N | | | */
/* | | | | . */
/* | | | | */
/* | | | | . */
/* | | | | Y */
/* | | |---- */
/* | | | ^ */
/* | |---- | */
/* | | | */
/* | | | */
/* | | | */
/* | | | */
/* --------------------------------------- O---------> X */
/* / */
/* / */
/* inverser_l_axe_OZ=VRAI : / */
/* / */
/* */
/* Z=0 --------------------------------------- Z */
/* |image N | */
/* . | . | */
/* | | */
/* . | . | */
/* | | */
/* . | . | */
/* | | */
/* . | . | */
/* | | */
/* --------------------------------------- | */
/* |image 3 | | */
/* | | | */
/* | | | */
/* | | | */
/* --------------------------------------- | | */
/* |image 2 | |--------- */
/* | | | */
/* | | | . */
/* | | | */
/* Z=1 --------------------------------------- | | . */
/* |image 1 | | | */
/* | | | | . */
/* | | | | */
/* | | | | . */
/* | | | | */
/* | | |---- */
/* | | | */
/* | |---- */
/* | | */
/* | | */
/* | | */
/* | | */
/* --------------------------------------- */
/* */
/* */
/* Definition de l'axe 'OZ' : */
/* */
/* Je rappelle que la coordonnee 'Z' */
/* n'est le numero d'image que s'il n'y */
/* a pas inversion. Le referentiel {X,Y,Z} */
/* est DIRECT dans TOUS les cas... */
/* */
/* A titre d'exemple, l'experience */
/* suivante a ete effectuee le 20180507135411 en */
/* convertissant (via '$xci/conversion_3D$K') */
/* un champ gaussien dans [0,1], puis en */
/* accumulant toutes les couches avec : */
/* */
/* inverser_ZA=VRAI */
/* */
/* sans rotation aucune... */
/* */
/* La surface ainsi obtenue fut un */
/* plan (image 1) avec un "trou" (jusqu'a */
/* image N) vers l'arriere (qui donc s'eloigne */
/* de l'observateur). */
/* */
/* */
/* Besoins en ressources : */
/* */
/* Lors de la generation de 'v $xiirv/CARB.D2.21' */
/* sur sur '$CMAP28' -ex "porte-brancion"-, il fut */
/* note que pour chacune des composantes chromatiques */
/* de l'image il fallait 16% de la memoire (ce qui */
/* equivaut a environ 8 Go). */
/* */
/* */
/* Author of '$xci/accumule.42$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20100123115431). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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
#include image_image_DI_ALBUM_EXT
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 EPAISSIR_LES_ALBUMS_ARGUMENTS \
FAUX \
/* Indique s'il faut epaissir les albums Argument ('VRAI') ou pas ('FAUX'), la valeur par */ \
/* defaut garantissant la compatibilite anterieure. Ceci a ete introduit le 20210430085517. */
#define ACCELERER_L_ACCUMULATION_AUX_DEPENS_DE_LA_QUALITE \
FAUX \
/* Indique s'il est possible d'accelerer l'accumulation (aux depens de la qualite) lors de */ \
/* phase de mise au point d'une image ('v $xiirc/.MANE.41.4.$U _____Accelerer'). Ceci a ete */ \
/* introduit le 20180124100719... */
#define INVERSER_L_AXE_OZ \
FAUX \
/* Indique s'il faut inverser l'ordre de parcours de l'ensemble des images. On a : */ \
/* */ \
/* FAUX : l'image d'arriere-plan est la premiere de la liste, */ \
/* VRAI : l'image d'arriere-plan est la derniere de la liste. */ \
/* */
#define INCOMPLET_AXE_OZ \
FAUX \
/* Indique s'il peut manquer des images (ceci fut introduit le 20120322085620)... */
#define INCOMPLET_AXE_OZA_VALEUR_STANDARD \
NOIR
#define INCOMPLET_AXE_OZA_VALEUR_NON_STANDARD \
FLOT__NOIR
#define INCOMPLET_AXE_OZT_VALEUR \
NOIR
/* Donne la valeur des images manquantes (ceci fut introduit le 20120322092116)... */
#define FAIRE_UNE_ROTATION_TRIDIMENSIONNELLE \
VRAI \
/* Faut-il faire une rotation tridimensionnelle ('VRAI') ou bien une transformation */ \
/* arbitraire ('FAUX') ce qui ouvre la porte a des 'IFS' tridimensionnelles... */
#define RAPPORT_DE_ZOOM \
ABSENCE_D_EFFET_DE_ZOOM \
/* Rapport de zoom. */
#define ROTATION_OX_IMPLICITE \
FZERO
#define ROTATION_OY_IMPLICITE \
FZERO
#define ROTATION_OZ_IMPLICITE \
FZERO
/* Angles de rotation. */
#define MEMORISER_LE_Z_BUFFER \
FAUX \
/* Indique si le 'Z-Buffer' doit etre fourni comme resultat ('VRAI'), ou bien oublie */ \
/* apres le calcul ('FAUX'). . */
#define VALEUR_INITIALE_DU_Z_BUFFER \
F_MOINS_LE_PETIT_INFINI \
/* Valeur a utiliser pour initialiser le 'Z-Buffer' si cela est necessaire. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#include xci/accumule.41.I"
/* Introduit le 20120621092247... */
#define imageR \
ImageR
#define CHARGEMENT_DE_LA_TEXTURE \
Bblock \
CALi(idAload_album(albumT \
,nom_albumT \
,nom_postfixeT \
,premiere_imageT \
,pas_des_imagesT \
,nombre_de_chiffresT \
,FAUX \
,UNDEF \
,inverser_l_axe_OZT \
,incomplet_axe_OZT \
,incomplet_axe_OZT_valeur \
) \
); \
/* Chargement de l'album d'images Texture... */ \
Eblock \
/* Introduit le 20210430084457 afin de pouvoir separer nettement le cas "standard" du */ \
/* cas "non standard"... */
#define EPAISSISSEMENT_EVENTUEL_D_UN_ALBUM(album) \
Bblock \
Test(IL_FAUT(epaissir_les_albums_arguments)) \
Bblock \
CALS(Aepaississement(album,album,Zmin_argument,Zmax_argument)); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
/* Introduit le 20210430144410 pour simplifier... */
#define DEBUT__DE_LA_DEFINITION_DE_L_AXE_OZ__EVENTUELLEMENT_EPAISSI \
BSaveModifyVariable(Int,Zmin,Zmin_effectif); \
BSaveModifyVariable(Int,Zmax,Zmax_effectif);
#define FIN____DE_LA_DEFINITION_DE_L_AXE_OZ__EVENTUELLEMENT_EPAISSI \
ESaveModifyVariable(Int,Zmax); \
ESaveModifyVariable(Int,Zmin);
#define DEBUT__DE_LA_DEFINITION_DE_L_AXE_OZ__ARGUMENT \
BSaveModifyVariable(Int,Zmin,Zmin_argument); \
BSaveModifyVariable(Int,Zmax,Zmax_argument);
#define FIN____DE_LA_DEFINITION_DE_L_AXE_OZ__ARGUMENT \
ESaveModifyVariable(Int,Zmax); \
ESaveModifyVariable(Int,Zmin);
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* A C C U M U L A T I O N T R I D I M E N S I O N N E L L E D ' U N A L B U M " F L O T T A N T " */
/* A V E C T E X T U R A G E : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_albumA),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_albumT),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_postfixeA),NOM_UNDEF_VIDE));
/* Nom d'un eventuel postfixe a placer derriere <nom_albumA><numero> (par exemple '$ROUGE'). */
DEFV(Int,INIT(premiere_imageA,PREMIERE_IMAGE));
/* Numero de la premiere image, */
DEFV(Int,INIT(pas_des_imagesA,PAS_DES_IMAGES));
/* Pas de passage d'un numero d'image a une autre. */
DEFV(Int,INIT(nombre_de_chiffresA,NOMBRE_DE_CHIFFRES));
/* Nombre de chiffres codant le numero des images de la serie... */
DEFV(Logical,INIT(epaissir_les_albums_arguments,EPAISSIR_LES_ALBUMS_ARGUMENTS));
/* Indique s'il faut epaissir les albums Argument ('VRAI') ou pas ('FAUX'), la valeur par */
/* defaut garantissant la compatibilite anterieure. Ceci a ete introduit le 20210430085517. */
DEFV(Logical,INIT(accelerer_l_accumulation_aux_depens_de_la_qualite,ACCELERER_L_ACCUMULATION_AUX_DEPENS_DE_LA_QUALITE));
/* Indique s'il est possible d'accelerer l'accumulation (aux depens de la qualite) lors de */
/* phase de mise au point d'une image ('v $xiirc/.MANE.41.4.$U _____Accelerer'). Ceci a ete */
/* introduit le 20180124100719... */
DEFV(Logical,INIT(inverser_l_axe_OZA,INVERSER_L_AXE_OZ));
/* Indique s'il faut inverser l'ordre de parcours de l'ensemble des images. On a : */
/* */
/* FAUX : l'image d'arriere-plan est la premiere de la liste, */
/* VRAI : l'image d'arriere-plan est la derniere de la liste. */
/* */
DEFV(Logical,INIT(incomplet_axe_OZA,INCOMPLET_AXE_OZ));
/* Indique s'il peut manquer des images (ceci fut introduit le 20120322085620)... */
DEFV(genere_p,INIT(incomplet_axe_OZA_valeur_standard,INCOMPLET_AXE_OZA_VALEUR_STANDARD));
DEFV(genere_Float,INIT(incomplet_axe_OZA_valeur_non_standard,INCOMPLET_AXE_OZA_VALEUR_NON_STANDARD));
/* Donne la valeur des images manquantes (ceci fut introduit le 20120322092116)... */
DEFV(CHAR,INIC(POINTERc(nom_postfixeT),NOM_UNDEF_VIDE));
/* Nom d'un eventuel postfixe a placer derriere <nom_albumT><numero> (par exemple '$ROUGE'). */
DEFV(Int,INIT(premiere_imageT,PREMIERE_IMAGE));
/* Numero de la premiere image, */
DEFV(Int,INIT(pas_des_imagesT,PAS_DES_IMAGES));
/* Pas de passage d'un numero d'image a une autre. */
DEFV(Int,INIT(nombre_de_chiffresT,NOMBRE_DE_CHIFFRES));
/* Nombre de chiffres codant le numero des images de la serie... */
DEFV(Logical,INIT(inverser_l_axe_OZT,INVERSER_L_AXE_OZ));
/* Indique s'il faut inverser l'ordre de parcours de l'ensemble des images. On a : */
/* */
/* FAUX : l'image d'arriere-plan est la premiere de la liste, */
/* VRAI : l'image d'arriere-plan est la derniere de la liste. */
/* */
DEFV(Logical,INIT(incomplet_axe_OZT,INCOMPLET_AXE_OZ));
/* Indique s'il peut manquer des images (ceci fut introduit le 20120322085620)... */
DEFV(genere_p,INIT(incomplet_axe_OZT_valeur,INCOMPLET_AXE_OZT_VALEUR));
/* Donne la valeur des images manquantes (ceci fut introduit le 20120322092116)... */
DEFV(Logical,INIT(faire_une_rotation_tridimensionnelle,FAIRE_UNE_ROTATION_TRIDIMENSIONNELLE));
/* Faut-il faire une rotation tridimensionnelle ('VRAI') ou bien une transformation */
/* arbitraire ('FAUX') ce qui ouvre la porte a des 'IFS' tridimensionnelles... */
DEFV(Float,INIT(rapport_DE_ZOOM,RAPPORT_DE_ZOOM));
/* Rapport de zoom. */
DEFV(Float,INIT(angle_de_ROTATION_OX,ROTATION_OX_IMPLICITE));
DEFV(Float,INIT(angle_de_ROTATION_OY,ROTATION_OY_IMPLICITE));
DEFV(Float,INIT(angle_de_ROTATION_OZ,ROTATION_OZ_IMPLICITE));
/* Angles de rotation. */
DEFV(CHAR,INIC(POINTERc(nom_imageZ),NOM_PIPE));
DEFV(Logical,INIT(memoriser_le_Z_Buffer,MEMORISER_LE_Z_BUFFER));
/* Indique si le 'Z-Buffer' doit etre fourni comme resultat ('VRAI'), ou bien oublie */
/* apres le calcul ('FAUX'). . */
/*..............................................................................................................................*/
BSaveModifyVariable(Logical,S_ACCELERATEUR__ALOAD_POINT_COORDONNEES_01_____utiliser_l_accelerateur,VRAI);
/* Introduit le 20120620092224... */
EGAL(valider_les_axes_OX_OY_OZ,VRAI);
EGAL(coefficient_de_forme_de_l_espace_tridimensionnel,COEFFICIENT_DE_FORME_DE_L_ESPACE_TRIDIMENSIONNEL);
/* Introduit le 20140103184234 lors de la mise au point de 'v $xiirv/PIPO.F1.21' a cause */
/* du probleme 'v $xiii/di_album$FON 20120321113814' qui se manifeste, par exemple, si */
/* l'axe 'OZ' est beaucoup plus "court" que les axes 'OX' et/ou 'OY'. Ceci fut complete */
/* le 20140103185926... */
EGAL(Z_Buffer_____valeur_initiale,VALEUR_INITIALE_DU_Z_BUFFER);
/* A priori. */
#define Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_gradient_X \
Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_de_calcul_du_gradient_X
#define Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_gradient_Y \
Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_de_calcul_du_gradient_Y
#define Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_gradient_Z \
Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_de_calcul_du_gradient_Z
#define Iaccumulation_tri_dimensionnelle_standard_texturee_____renvoyer_niveau_maximal_albumA \
Iaccumulation_tri_dimensionnelle_standard_texturee_____renvoyer_le_niveau_maximal_de_albumA
#define Iaccumulation_tri_dimensionnelle_non_standard_texturee_____renvoyer_niveau_maximal_albumA \
Iaccumulation_tri_dimensionnelle_non_standard_texturee_____renvoyer_le_niveau_maximal_de_albumA
#define Iaccumulation_tri_dimensionnelle_standard_texturee_____renvoyer_niveau_maximal_albumT \
Iaccumulation_tri_dimensionnelle_standard_texturee_____renvoyer_le_niveau_maximal_de_albumT
#define Iaccumulation_tri_dimensionnelle_non_standard_texturee_____renvoyer_niveau_maximal_albumT \
Iaccumulation_tri_dimensionnelle_non_standard_texturee_____renvoyer_le_niveau_maximal_de_albumT
/* Afin de reduire la longueur des lignes qui suivent... */
#define Iaccumulation_tri_dimensionnelle_standard_texturee_____ne_visualiser_que_gradients_nuls \
Iaccumulation_tri_dimensionnelle_standard_texturee_____ne_visualiser_que_les_gradients_nuls
#define Iaccumulation_tri_dimensionnelle_non_standard_texturee_____ne_visualiser_que_gradients_nuls \
Iaccumulation_tri_dimensionnelle_non_standard_texturee_____ne_visualiser_que_les_gradients_nuls
/* Afin de reduire la longueur des lignes qui suivent... */
GET_ARGUMENTSv(nombre_d_arguments
,BLOC(GET_ARGUMENTS2_L("Iaccumulation_tri_dimensionnelle_____compatibilite_20091211=""compatibilite_20091211="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____compatibilite_20091211
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____compatibilite_20091211
);
GET_ARGUMENTS2_L("Iaccumulation_tri_dimensionnelle_____compatibilite_20100120=""compatibilite_20100120="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____compatibilite_20100120
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____compatibilite_20100120
);
GET_ARGUMENTS2_L("Iaccumulation_tri_dimensionnelle_____compatibilite_20100625=""compatibilite_20100625="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____compatibilite_20100625
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____compatibilite_20100625
);
GET_ARGUMENTS2_L("Iaccumulation_tri_dimensionnelle_____compatibilite_20101008=""compatibilite_20101008="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____compatibilite_20101008
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____compatibilite_20101008
);
/* Argument introduit le 20101008115337... */
GET_ARGUMENTS2_L("Iaccumulation_tri_dimensionnelle_____compatibilite_20101121=""compatibilite_20101121="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____compatibilite_20101121
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____compatibilite_20101121
);
/* Argument introduit le 20101121112524... */
GET_ARGUMENTS2_L("Iaccumulation_tri_dimensionnelle_____compatibilite_20101125=""compatibilite_20101125="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____compatibilite_20101125
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____compatibilite_20101125
);
/* Argument introduit le 20101125125546... */
GET_ARGUMENTS2_L("Iaccumulation_tri_dimensionnelle_____compatibilite_20101127=""compatibilite_20101127="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____compatibilite_20101127
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____compatibilite_20101127
);
/* Argument introduit le 20101127092939... */
GET_ARGUMENTS2_L("Iaccumulation_tri_dimensionnelle_____compatibilite_20101128=""compatibilite_20101128="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____compatibilite_20101128
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____compatibilite_20101128
);
/* Argument introduit le 20101128145935... */
GET_ARGUMENTS2_L("Iaccumulation_tri_dimensionnelle_____compatibilite_20141004=""compatibilite_20141004="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____compatibilite_20141004
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____compatibilite_20141004
);
/* Argument introduit le 20141004184055... */
GET_ARGUMENTS2_L("Iaccumulation_tri_dimensionnelle_____compatibilite_20141005=""compatibilite_20141005="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____compatibilite_20141005
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____compatibilite_20141005
);
/* Argument introduit le 20141005111657... */
GET_ARGUMENTS2_L("Iaccumulation_tri_dimensionnelle_____compatibilite_20160125=""compatibilite_20160125="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____compatibilite_20160125
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____compatibilite_20160125
);
/* Argument introduit le 20160125104641... */
GET_ARGUMENT_C("albumA=""A=",nom_albumA);
GET_ARGUMENT_C("postfixeA=",nom_postfixeA);
GET_ARGUMENT_I("premiereA=",premiere_imageA);
GET_ARGUMENTS2_I("pasA=",pas_des_imagesA,pasZ);
/* L'argument 'pasZ' fut introduit le 20110119140805... */
GET_ARGUMENT_I("chiffresA=",nombre_de_chiffresA);
GET_ARGUMENT_L("epaissir_album=""epaissir_albums=""epaissir=",epaissir_les_albums_arguments);
/* Argument introduit le 20210430085517 et le singulier a ete ajoute le 20210501093523 */
/* pour la compatibilite avec 'v $xci/accumule.41$K epaissir_album='... */
GET_ARGUMENT_L("accelerer=",accelerer_l_accumulation_aux_depens_de_la_qualite);
GET_ARGUMENT_N("qualite=",accelerer_l_accumulation_aux_depens_de_la_qualite);
/* Argument introduit le 20180124100719... */
GET_ARGUMENT_L("inverser_ZA=""inv_ZA=",inverser_l_axe_OZA);
GET_ARGUMENT_L("incomplet_ZA=""inc_ZA=",incomplet_axe_OZA);
/* Argument introduit le 20120322085620... */
GET_ARGUMENT_P("valeur_standard_incomplet_ZA=""vsinc_ZA=",incomplet_axe_OZA_valeur_standard);
GET_ARGUMENT_F("valeur_non_standard_incomplet_ZA=""vnsinc_ZA=",incomplet_axe_OZA_valeur_non_standard);
/* Argument introduit le 20120322092116... */
GET_ARGUMENTS2_L("optimiser="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____optimisation_1
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____optimisation_1
);
/* Introduit le 20170829155720... */
GET_ARGUMENTS2_L("texturer="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____texturer
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____texturer
);
/* Introduit le 20101125223030 pour faciliter les tests... */
GET_ARGUMENT_C("albumT=""T=",nom_albumT);
GET_ARGUMENT_C("postfixeT=",nom_postfixeT);
GET_ARGUMENT_I("premiereT=",premiere_imageT);
GET_ARGUMENT_I("pasT=",pas_des_imagesT);
GET_ARGUMENT_I("chiffresT=",nombre_de_chiffresT);
GET_ARGUMENT_L("inverser_ZT=""inv_ZT=",inverser_l_axe_OZT);
/* Argument introduit le 20100624083255... */
GET_ARGUMENT_L("incomplet_ZT=""inc_ZT=",incomplet_axe_OZT);
/* Argument introduit le 20120322085620... */
GET_ARGUMENT_P("valeur_standard_incomplet_ZT=""vsinc_ZT=",incomplet_axe_OZT_valeur);
/* Argument introduit le 20120322092116... */
GET_ARGUMENT_C("imageR=""R=",nom_imageR);
GET_ARGUMENT_L("standard=",les_images_sont_standards);
GET_ARGUMENTS2_L("avertir_coordonnees_hors_espace=""ache="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____avertir_coordonnees_hors_espace
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____avertir_coordonnees_hors_espace
);
/* Arguments introduits le 20101206153658... */
GET_ARGUMENT_L("rotation=",faire_une_rotation_tridimensionnelle);
GET_ARGUMENT_N("transformation_quelconque=""tq=",faire_une_rotation_tridimensionnelle);
GET_ARGUMENT_F("ZOOM=",rapport_DE_ZOOM);
PROCESS_ARGUMENT_F("ROTATION_OX=",angle_de_ROTATION_OX
,BLOC(VIDE;)
,BLOC(EGAL(vecteurs_____ordre_de_la_ROTATION_0X,nombre_d_arguments_recuperes);
)
);
PROCESS_ARGUMENT_F("ROTATION_OY=",angle_de_ROTATION_OY
,BLOC(VIDE;)
,BLOC(EGAL(vecteurs_____ordre_de_la_ROTATION_0Y,nombre_d_arguments_recuperes);
)
);
PROCESS_ARGUMENT_F("ROTATION_OZ=",angle_de_ROTATION_OZ
,BLOC(VIDE;)
,BLOC(EGAL(vecteurs_____ordre_de_la_ROTATION_0Z,nombre_d_arguments_recuperes);
)
);
GET_ARGUMENT_F("a11=",ASD2(vecteurs_____matrix_3D,cx,cx));
GET_ARGUMENT_F("a12=",ASD2(vecteurs_____matrix_3D,cx,cy));
GET_ARGUMENT_F("a13=",ASD2(vecteurs_____matrix_3D,cx,cz));
GET_ARGUMENT_F("a21=",ASD2(vecteurs_____matrix_3D,cy,cx));
GET_ARGUMENT_F("a22=",ASD2(vecteurs_____matrix_3D,cy,cy));
GET_ARGUMENT_F("a23=",ASD2(vecteurs_____matrix_3D,cy,cz));
GET_ARGUMENT_F("a31=",ASD2(vecteurs_____matrix_3D,cz,cx));
GET_ARGUMENT_F("a32=",ASD2(vecteurs_____matrix_3D,cz,cy));
GET_ARGUMENT_F("a33=",ASD2(vecteurs_____matrix_3D,cz,cz));
GET_ARGUMENTS2_F("tX=""TRANSLATION_OX="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____translation_OX
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____translation_OX
);
GET_ARGUMENTS2_F("tY=""TRANSLATION_OY="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____translation_OY
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____translation_OY
);
GET_ARGUMENTS2_F("tZ=""TRANSLATION_OZ="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____translation_OZ
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____translation_OZ
);
GET_ARGUMENTS__Aload_point_coordonnees_01;
/* Introduit sous cette forme le 20120621092247... */
GET_ARGUMENTS2_L("periodiser_X=""per_X="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____periodiser_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____periodiser_X
);
GET_ARGUMENTS2_L("symetriser_X=""sym_X="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____symetriser_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____symetriser_X
);
GET_ARGUMENTS2_L("prolonger_X=""pro_X="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____prolonger_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____prolonger_X
);
GET_ARGUMENTS2_L("periodiser_Y=""per_Y="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____periodiser_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____periodiser_Y
);
GET_ARGUMENTS2_L("symetriser_Y=""sym_Y="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____symetriser_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____symetriser_Y
);
GET_ARGUMENTS2_L("prolonger_Y=""pro_Y="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____prolonger_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____prolonger_Y
);
GET_ARGUMENTS2_L("periodiser_Z=""per_Z="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____periodiser_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____periodiser_Z
);
GET_ARGUMENTS2_L("symetriser_Z=""sym_Z="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____symetriser_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____symetriser_Z
);
GET_ARGUMENTS2_L("prolonger_Z=""pro_Z="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____prolonger_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____prolonger_Z
);
GET_ARGUMENTS2_F("niveau_hors_album=""nha=""niveau_hors_image=""nhi="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____niveau_flottant_hors_image
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____niveau_flottant_hors_image
);
GET_ARGUMENTS2_F("niveau_vide=""vide="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____niveau_du_vide_dans_l_album
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____niveau_du_vide_dans_l_album
);
/* Argument introduit le 20101008113146... */
GET_ARGUMENTS2_L("accepter_points_isoles=""api="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____accepter_les_points_isoles
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____accepter_les_points_isoles
);
/* Argument introduit le 20190208152052... */
GET_ARGUMENTS2_L("Aniveau_maximal=""Amaximum="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____renvoyer_niveau_maximal_albumA
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____renvoyer_niveau_maximal_albumA
);
GET_ARGUMENTS2_L("Tniveau_maximal=""Tmaximum="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____renvoyer_niveau_maximal_albumT
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____renvoyer_niveau_maximal_albumT
);
/* Argument introduit le 20100703102211... */
/* */
/* Le 20101128092931 '"Tniveau_maximal=""Tmaximum="' a ete modifie dans la mesure ou a */
/* compter de cette date 'albumA' et 'albumT' sont geres de la meme facon, c'est-a-dire a */
/* l'aide de fonctions d'acces entierement compatibles... */
/* */
/* Le 20101129121357 fut finalement introduite une distinction entre 'albumA' et 'albumT'... */
GET_ARGUMENTS2_L("Tperiodiser_X=""Tper_X="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____texture_periodiser_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____texture_periodiser_X
);
GET_ARGUMENTS2_L("Tsymetriser_X=""Tsym_X="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____texture_symetriser_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____texture_symetriser_X
);
GET_ARGUMENTS2_L("Tprolonger_X=""Tpro_X="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____texture_prolonger_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____texture_prolonger_X
);
GET_ARGUMENTS2_L("Tperiodiser_Y=""Tper_Y="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____texture_periodiser_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____texture_periodiser_Y
);
GET_ARGUMENTS2_L("Tsymetriser_Y=""Tsym_Y="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____texture_symetriser_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____texture_symetriser_Y
);
GET_ARGUMENTS2_L("Tprolonger_Y=""Tpro_Y="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____texture_prolonger_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____texture_prolonger_Y
);
GET_ARGUMENTS2_L("Tperiodiser_Z=""Tper_Z="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____texture_periodiser_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____texture_periodiser_Z
);
GET_ARGUMENTS2_L("Tsymetriser_Z=""Tsym_Z="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____texture_symetriser_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____texture_symetriser_Z
);
GET_ARGUMENTS2_L("Tprolonger_Z=""Tpro_Z="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____texture_prolonger_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____texture_prolonger_Z
);
GET_ARGUMENTS2_P("Tniveau_hors_image=""Tnhi="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____texture_niveau_hors_image
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____texture_niveau_hors_image
);
/* Arguments introduits le 20100625092256. */
GET_ARGUMENTS2_F("minimum_X=""mX="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____minimum_de_coordonnee_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____minimum_de_coordonnee_X
);
GET_ARGUMENTS2_F("maximum_X=""MX="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____maximum_de_coordonnee_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____maximum_de_coordonnee_X
);
GET_ARGUMENTS2_F("minimum_Y=""mY="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____minimum_de_coordonnee_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____minimum_de_coordonnee_Y
);
GET_ARGUMENTS2_F("maximum_Y=""MY="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____maximum_de_coordonnee_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____maximum_de_coordonnee_Y
);
GET_ARGUMENTS2_F("minimum_Z=""mZ="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____minimum_de_coordonnee_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____minimum_de_coordonnee_Z
);
GET_ARGUMENTS2_F("maximum_Z=""MZ="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____maximum_de_coordonnee_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____maximum_de_coordonnee_Z
);
/* Arguments introduits le 20160125104641... */
GET_ARGUMENTS2_F("exposant_niveau=""en="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____exposant_du_niveau
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____exposant_du_niveau
);
GET_ARGUMENTS2_L("ponderer_directions_niveaux=""pdn=""centre_de_gravite=""cdg="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____calculer_le_centre_de_gravite
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____calculer_le_centre_de_gravite
);
GET_ARGUMENTS2_L("maximum_differences=""md="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____utiliser_le_maximum_des_differences
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____utiliser_le_maximum_des_differences
);
GET_ARGUMENTS2_N("somme_differences=""sd="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____utiliser_le_maximum_des_differences
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____utiliser_le_maximum_des_differences
);
GET_ARGUMENTS2_F("seuil="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____seuil_du_niveau_courant
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____seuil_du_niveau_courant
);
GET_ARGUMENTS2_L("cumuler_niveau=""cn="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____cumuler_le_niveau_courant
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____cumuler_le_niveau_courant
);
GET_ARGUMENTS2_L("cumuler_niveau_lumineux=""cnl="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____cumuler_le_niveau_lumineux
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____cumuler_le_niveau_lumineux
);
GET_ARGUMENTS2_L("cumuler_coordonnees_XYZ=""ccXYZ="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____cumuler_les_coordonnees_XYZ
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____cumuler_les_coordonnees_XYZ
);
GET_ARGUMENTS2_F("ponderation_X=""pX="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____ponderation_de_la_coordonnees_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____ponderation_de_la_coordonnees_X
);
GET_ARGUMENTS2_F("ponderation_Y=""pY="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____ponderation_de_la_coordonnees_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____ponderation_de_la_coordonnees_Y
);
GET_ARGUMENTS2_F("ponderation_Z=""pZ="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____ponderation_de_la_coordonnees_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____ponderation_de_la_coordonnees_Z
);
GET_ARGUMENTS2_L("cumuler_coordonnees_RPT=""ccRPT="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____cumuler_les_coordonnees_RPT
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____cumuler_les_coordonnees_RPT
);
GET_ARGUMENTS2_F("ponderation_R=""pR="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____ponderation_de_la_coordonnees_R
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____ponderation_de_la_coordonnees_R
);
GET_ARGUMENTS2_F("ponderation_P=""pP="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____ponderation_de_la_coordonnees_P
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____ponderation_de_la_coordonnees_P
);
GET_ARGUMENTS2_F("ponderation_T=""pT="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____ponderation_de_la_coordonnees_T
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____ponderation_de_la_coordonnees_T
);
/* Arguments introduits le 20200224132939... */
GET_ARGUMENTS2_F("exposant_X=""eX="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____exposant_de_la_coordonnees_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____exposant_de_la_coordonnees_X
);
GET_ARGUMENTS2_F("exposant_Y=""eY="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____exposant_de_la_coordonnees_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____exposant_de_la_coordonnees_Y
);
GET_ARGUMENTS2_F("exposant_Z=""eZ=""depth_cueing=""depth-cueing="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____exposant_de_la_coordonnees_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____exposant_de_la_coordonnees_Z
);
/* Arguments completes le 20100202152514. */
/* */
/* Parametrage du "depth-cueing" : */
/* */
/* exposant_de_la_coordonnees_Z=0 pas de "depth-cueing", */
/* exposant_de_la_coordonnees_Z=1 "depth-cueing" maximal... */
/* */
GET_ARGUMENTS2_L("source_lumineuse=""sl="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____eclairer_par_une_source_lumineuse
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____eclairer_par_une_source_lumineuse
);
GET_ARGUMENTS2_F("source_lumineuse_X=""slX=""slx="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____source_lumineuse_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____source_lumineuse_X
);
GET_ARGUMENTS2_F("source_lumineuse_Y=""slY=""sly="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____source_lumineuse_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____source_lumineuse_Y
);
GET_ARGUMENTS2_F("source_lumineuse_Z=""slZ=""slz="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____source_lumineuse_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____source_lumineuse_Z
);
GET_ARGUMENTS2_F("source_lumineuse_intensite_speculaire=""slis=""is=""speculaire="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____source_lumineuse_specularite
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____source_lumineuse_specularite
);
GET_ARGUMENTS2_I("demi_dimension_gradient_X=""ddgX=""ddgx=""dx=""dX="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____demi_dimension_de_calcul_du_gradient_X
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_gradient_X
);
GET_ARGUMENTS2_I("demi_dimension_gradient_Y=""ddgY=""ddgy=""dy=""dY="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____demi_dimension_de_calcul_du_gradient_Y
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_gradient_Y
);
GET_ARGUMENTS2_I("demi_dimension_gradient_Z=""ddgZ=""ddgz=""dz=""dZ="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____demi_dimension_de_calcul_du_gradient_Z
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_gradient_Z
);
GET_ARGUMENTS2_L("visualiser_que_gradients_nuls=""vqgn="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____ne_visualiser_que_gradients_nuls
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____ne_visualiser_que_gradients_nuls
);
/* Argument introduit le 20141005083648... */
GET_ARGUMENTS2_L("visualiser_gradients_nuls=""vgn="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____visualiser_les_gradients_nuls
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____visualiser_les_gradients_nuls
);
/* Argument introduit le 20141005111657... */
GET_ARGUMENT_F("Z0=",Z_Buffer_____valeur_initiale);
GET_ARGUMENT_L("zbuffer=""zBuffer=""Zbuffer=""ZBuffer=""Z-Buffer=",memoriser_le_Z_Buffer);
GET_ARGUMENT_C("imageZ=""Z=",nom_imageZ);
GET_ARGUMENTS2_P("niveau_fond=""fond=""nf="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____niveau_du_fond
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____niveau_du_fond
);
GET_ARGUMENTS2_L("editer_gradient=""eg="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____editer_gradient
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____editer_gradient
);
/* Arguments introduits le 20210424175949... */
/* */
/* Le 20210424185509, je note qu'utiliser simultanement : */
/* */
/* Alleger=VRAI */
/* */
/* est plus que recommande ('v $xci/accumule.42$K 20210425102320' a ce propos...). */
GET_ARGUMENTS2_L("editer_extrema_niveau_resultant=""eenr="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____editer_extrema_niveau_resultant
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____editer_extrema_niveau_resultant
);
/* Arguments introduits le 20111121120435... */
GET_ARGUMENTS2_L("renormaliser_niveau_resultant=""rnr="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____renormaliser_niveau_resultant
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____renormaliser_niveau_resultant
);
/* Arguments introduits le 20111119115303... */
GET_ARGUMENTS2_F("minimum_niveau_resultant=""minnr="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____minimum_force_du_niveau_resultant
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____minimum_force_du_niveau_resultant
);
GET_ARGUMENTS2_F("maximum_niveau_resultant=""maxnr="
,Iaccumulation_tri_dimensionnelle_standard_texturee_____maximum_force_du_niveau_resultant
,Iaccumulation_tri_dimensionnelle_non_standard_texturee_____maximum_force_du_niveau_resultant
);
/* Arguments introduits le 20111121114716... */
)
);
Test(IFOU(IL_FAUT(Iaccumulation_tri_dimensionnelle_standard_texturee_____editer_gradient)
,IL_FAUT(Iaccumulation_tri_dimensionnelle_non_standard_texturee_____editer_gradient)
)
)
Bblock
EGAL(gPRINT_DEFAUT_____n_editer_que_le_message_principal,VRAI);
/* Forcage introduit le 20210425102320... */
Eblock
ATes
Bblock
Eblock
ETes
Test(EST_VRAI(les_images_sont_standards))
Bblock
Test(IL_NE_FAUT_PAS(FAload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement))
Bblock
EGAL(Iaccumulation_tri_dimensionnelle_standard_texturee_____optimisation_1,VRAI);
/* Lorsqu'il ne faut pas interpoler, on force l'optimisation (introduit le 20170830085130). */
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ATes
Bblock
Test(IL_NE_FAUT_PAS(FFAload_point_coordonnees_01_____interpoler_bilineairement_ou_bicubiquement))
Bblock
EGAL(Iaccumulation_tri_dimensionnelle_non_standard_texturee_____optimisation_1,VRAI);
/* Lorsqu'il ne faut pas interpoler, on force l'optimisation (introduit le 20170830085130). */
Eblock
ATes
Bblock
Eblock
ETes
Eblock
ETes
Test(IL_FAUT(accelerer_l_accumulation_aux_depens_de_la_qualite))
/* Test introduit le 20180124100719... */
Bblock
Test(IFEQ(DEMI_DIMENSION_XYZ_MATRIX_CALCUL_GRADIENT,UN))
Bblock
PRINT_ATTENTION("cette option est sans d'interet car les valeurs par defaut sont les plus petites possibles");
/* Message introduit le 20180124110434... */
Eblock
ATes
Bblock
Test(EST_VRAI(les_images_sont_standards))
Bblock
EGAL(Iaccumulation_tri_dimensionnelle_standard_texturee_____demi_dimension_de_calcul_du_gradient_X,UN);
EGAL(Iaccumulation_tri_dimensionnelle_standard_texturee_____demi_dimension_de_calcul_du_gradient_Y,UN);
EGAL(Iaccumulation_tri_dimensionnelle_standard_texturee_____demi_dimension_de_calcul_du_gradient_Z,UN);
/* On notera le 20180124103752 que j'ai essaye un 'CLIR(...)' mais que cela ne fonctionne */
/* pas correctement : l'image resultante est NOIR. Du coup cet option d'acceleration n'a */
/* d'interet que si 'DEMI_DIMENSION_XYZ_MATRIX_CALCUL_GRADIENT' (valeur par defaut de ces */
/* demi-dimensions) est superieure a 1... */
Eblock
ATes
Bblock
EGAL(Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_de_calcul_du_gradient_X,UN);
EGAL(Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_de_calcul_du_gradient_Y,UN);
EGAL(Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_de_calcul_du_gradient_Z,UN);
/* On notera le 20180124103752 que j'ai essaye un 'CLIR(...)' mais que cela ne fonctionne */
/* pas correctement : l'image resultante est NOIR. Du coup cet option d'acceleration n'a */
/* d'interet que si 'DEMI_DIMENSION_XYZ_MATRIX_CALCUL_GRADIENT' (valeur par defaut de ces */
/* demi-dimensions) est superieure a 1... */
Eblock
ETes
Eblock
ETes
Eblock
ATes
Bblock
Eblock
ETes
#undef Iaccumulation_tri_dimensionnelle_non_standard_texturee_____ne_visualiser_que_gradients_nuls
#undef Iaccumulation_tri_dimensionnelle_standard_texturee_____ne_visualiser_que_gradients_nuls
#undef Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_gradient_Z
#undef Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_gradient_Y
#undef Iaccumulation_tri_dimensionnelle_non_standard_texturee_____demi_dimension_gradient_X
Test(IL_FAUT(faire_une_rotation_tridimensionnelle))
Bblock
T_ZOOM(rapport_DE_ZOOM);
/* Mise en place du zoom. */
GENERATION_DE_LA_MATRICE_DE_ROTATION(vecteurs_____ordre_de_la_ROTATION_0X
,T_ROTATION_X(angle_de_ROTATION_OX);
,vecteurs_____ordre_de_la_ROTATION_0Y
,T_ROTATION_Y(angle_de_ROTATION_OY);
,vecteurs_____ordre_de_la_ROTATION_0Z
,T_ROTATION_Z(angle_de_ROTATION_OZ);
);
/* Mise en place du produit des trois rotations relatives aux trois axes. */
Eblock
ATes
Bblock
/* Dans le cas ou la transformation est arbitraire, les coefficients de la matrice sont */
/* supposes corrects apres leur entree (totale ou partielle...). */
Eblock
ETes
CALi(Inoir(imageR));
/* Au passage, le 20091212092049 j'ai essaye de charger un fond, mais cela n'a aucun */
/* interet parce que les fonctions 'Iaccumulation_tri_dimensionnelle_...(...)' positionnent */
/* tous les points de 'imageR', meme ceux qui appartiennent au fond... */
Test(EST_VRAI(les_images_sont_standards))
Bblock
DEFV(Int,INIT(Zmin_argument,Zmin));
DEFV(Int,INIT(Zmax_argument,Zmax));
/* Definition de l'axe 'Z' argument... */
DEFV(Int,INIT(Zmin_effectif,UNDEF));
DEFV(Int,INIT(Zmax_effectif,UNDEF));
/* Definition de l'axe 'Z' effectivement utilise... */
Test(IL_FAUT(epaissir_les_albums_arguments))
/* Test introduit le 20210430100209... */
Bblock
EGAL(Zmin_effectif,Zmin_argument);
EGAL(Zmax_effectif,ADD2(Zmin_effectif,LONGUEUR(DOUB(dimZ))));
/* L'epaississement des albums consiste a doubler la dimension de l'axe 'Z'... */
Eblock
ATes
Bblock
EGAL(Zmin_effectif,Zmin_argument);
EGAL(Zmax_effectif,Zmax_argument);
/* Dans ce cas, l'axe 'Z' ne change pas evidemment... */
Eblock
ETes
begin_nouveau_block
Bblock
DEBUT__DE_LA_DEFINITION_DE_L_AXE_OZ__EVENTUELLEMENT_EPAISSI;
/* Definition de l'axe des 'Z' eventuellement epaissis... */
BDEFV(album,albumA);
/* Definition de l'album d'images Argument avec l'axe des 'Z' eventuellement epaissis... */
BDEFV(album,albumT);
/* Definition de l'album d'images Texture avec l'axe des 'Z' eventuellement epaissis... */
begin_nouveau_block
Bblock
DEBUT__DE_LA_DEFINITION_DE_L_AXE_OZ__ARGUMENT;
/* Definition de l'axe des 'Z' argument... */
CHARGEMENT_DE_LA_TEXTURE;
/* Chargement de l'album d'images Texture mis sous cette forme le 20210430084457... */
FIN____DE_LA_DEFINITION_DE_L_AXE_OZ__ARGUMENT;
Eblock
end_nouveau_block
EPAISSISSEMENT_EVENTUEL_D_UN_ALBUM(albumT);
/* Epaississement eventuel de l'album Texture... */
begin_nouveau_block
Bblock
DEBUT__DE_LA_DEFINITION_DE_L_AXE_OZ__ARGUMENT;
/* Definition de l'axe des 'Z' argument... */
CALi(idAload_album(albumA
,nom_albumA
,nom_postfixeA
,premiere_imageA
,pas_des_imagesA
,nombre_de_chiffresA
,FAUX
,UNDEF
,inverser_l_axe_OZA
,incomplet_axe_OZA
,incomplet_axe_OZA_valeur_standard
)
);
/* Chargement de l'album Argument... */
FIN____DE_LA_DEFINITION_DE_L_AXE_OZ__ARGUMENT;
Eblock
end_nouveau_block
EPAISSISSEMENT_EVENTUEL_D_UN_ALBUM(albumA);
/* Epaississement eventuel de l'album Argument... */
Test(PAS_D_ERREUR(CODE_ERREUR))
/* A priori, c'est bien 'CODE_ERREUR' de 'idAload_album(...)' que l'on teste ici... */
Bblock
CALS(Iaccumulation_tri_dimensionnelle_standard_texturee(imageR,albumA,albumT));
Eblock
ATes
Bblock
Eblock
ETes
EDEFV(album,albumT);
EDEFV(album,albumA);
FIN____DE_LA_DEFINITION_DE_L_AXE_OZ__EVENTUELLEMENT_EPAISSI;
Eblock
end_nouveau_block
Eblock
ATes
Bblock
BDEFV(albumF,albumA);
/* Definition de l'album d'images Argument... */
BDEFV(album,albumT);
/* Definition de l'album d'images Texture... */
CHARGEMENT_DE_LA_TEXTURE;
/* Chargement de l'album d'images Texture mis sous cette forme le 20210430084457... */
CALi(idAloadF_album(albumA
,nom_albumA
,nom_postfixeA
,premiere_imageA
,pas_des_imagesA
,nombre_de_chiffresA
,FAUX
,UNDEF
,inverser_l_axe_OZA
,incomplet_axe_OZA
,incomplet_axe_OZA_valeur_non_standard
)
);
/* Chargement de l'album Argument... */
Test(PAS_D_ERREUR(CODE_ERREUR))
Bblock
CALS(Iaccumulation_tri_dimensionnelle_non_standard_texturee(imageR,albumA,albumT));
Eblock
ATes
Bblock
Eblock
ETes
EDEFV(album,albumT);
/* Definition de l'album d'images Texture... */
EDEFV(albumF,albumA);
/* Definition de l'album d'images Argument... */
Eblock
ETes
Test(PAS_D_ERREUR(CODE_ERREUR))
Bblock
CALi(Iupdate_image(nom_imageR,imageR));
Eblock
ATes
Bblock
Eblock
ETes
Test(IL_FAUT(memoriser_le_Z_Buffer))
Bblock
CALi(IupdateF_image(nom_imageZ,Z_Buffer));
/* Introduit le 20091212082256... */
Eblock
ATes
Bblock
Eblock
ETes
ESaveModifyVariable(Logical,S_ACCELERATEUR__ALOAD_POINT_COORDONNEES_01_____utiliser_l_accelerateur);
RETU_Commande;
Eblock
ECommande