/*************************************************************************************************************************************/
/* */
/* 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 ) : */
/* */
/* */
/* Author of '$xrk/attractor.1D$I' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 1993??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 ) : */
/* */
/*************************************************************************************************************************************/
/* Les 'TestADef' qui suivent relatifs a {dXmin_ESPACE,dYmin_ESPACE,dZmin_ESPACE} et a */
/* {dXmax_ESPACE,dYmax_ESPACE,dZmax_ESPACE,} ont ete introduits le 19990210125449 afin */
/* de permettre la compilation des programmes 'v $xrv/champs_5.10$K', 'v $xrv/champs_5.20$K' */
/* et 'v $xrv/champs_5.30$K' (et d'autres encore...). */
#TestADef dXmin_ESPACE \
FLOT__NOIR
#TestADef dYmin_ESPACE \
FLOT__NOIR
#TestADef dZmin_ESPACE \
FLOT__NOIR
/* Definition des minima des differentielles {dx,dy,dz}. */
#TestADef dXmax_ESPACE \
FLOT__BLANC
#TestADef dYmax_ESPACE \
FLOT__BLANC
#TestADef dZmax_ESPACE \
FLOT__BLANC
/* Definition des maxima des differentielles {dx,dy,dz}. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* R E N O R M A L I S A T I O N D E S D I F F E R E N T I E L L E S : */
/* */
/*************************************************************************************************************************************/
#TestADef RENORMALISER_ARBITRAIREMENT_LES_DIFFERENTIELLES \
VRAI
DEFV(Local,DEFV(Logical,INIT(renormaliser_arbitrairement_les_differentielles,RENORMALISER_ARBITRAIREMENT_LES_DIFFERENTIELLES)));
/* Indique si l'on doit renormaliser les differentielles par rapport au definitions du */
/* type (d?min_ESPACE,d?max_ESPACE) ('VRAI') ou les laisser telles quelles ('FAUX'). Dans */
/* ce cas, il y aura renormalisation par le moyen de leurs extrema veritables, et ce dans */
/* la procedure 'RENORMALISATION_D_UNE_LISTE_DE_POINTS'... */
#TestADef FAIRE_LA_RENORMALISATION_DES_DIFFERENTIELLES \
VRAI
DEFV(Local,DEFV(Logical,INIT(faire_la_renormalisation_des_differentielles,FAIRE_LA_RENORMALISATION_DES_DIFFERENTIELLES)));
/* Indique si l'on doit finalement bien faire la renormalisation des differentielles. */
/* Cela fut introduit le 20221005143106 lors de la mise au point de 'v $xiirv/NFRI.F1' */
/* afin de faire apparaitre un sol des piques de luminance correct. La valeur par defaut */
/* garantit la compatibilite anterieure... */
#TestADef LES_TROIS_LES_DIFFERENTIELLES_PEUVENT_ETRE_NULLES \
VRAI
DEFV(Local,DEFV(Logical,INIT(les_trois_les_differentielles_peuvent_etre_nulles,LES_TROIS_LES_DIFFERENTIELLES_PEUVENT_ETRE_NULLES)));
/* Cet indicateur a ete introduit le 20030130131901 afin de corriger ce qui semble etre un */
/* archaisme ('v $xrv/champs_5.11$I 20030129175316' et '$xrv/champs_5.26$I 20030129175252'). */
/* La valeur 'FAUX' de cet indicateur permet d'assurer la compatibilite avec les executions */
/* anterieures au 20030130131901... */
DEFV(Local,DEFV(Float,INIT(dXmin_ESPACE_parametrable,dXmin_ESPACE)));
DEFV(Local,DEFV(Float,INIT(dYmin_ESPACE_parametrable,dYmin_ESPACE)));
DEFV(Local,DEFV(Float,INIT(dZmin_ESPACE_parametrable,dZmin_ESPACE)));
/* Introduit le 20160330135155 afin de permettre le texturage des surfaces de facon a ce */
/* que la texture choisie (qui suivant les ponderation peut devenir les differentielles : */
/* 'v $xrs/surfaces.12$I EGAL.dcx,BARY.differentielle_x.texture_x.ponderation_ROUGE_pour_') */
/* soit conservee et non pas renormalisee de facon arbitraire... */
#define dXmin_ESPACE_effectif \
COND(IL_NE_FAUT_PAS(prendre_la_valeur_absolue_des_differentielles) \
,dXmin_ESPACE_parametrable \
,FZERO \
)
#define dYmin_ESPACE_effectif \
COND(IL_NE_FAUT_PAS(prendre_la_valeur_absolue_des_differentielles) \
,dYmin_ESPACE_parametrable \
,FZERO \
)
#define dZmin_ESPACE_effectif \
COND(IL_NE_FAUT_PAS(prendre_la_valeur_absolue_des_differentielles) \
,dZmin_ESPACE_parametrable \
,FZERO \
)
/* Introduit le 20060201100408... */
/* */
/* ATTENTION : on notera le passage de 'FLOT__NOIR' a 'FZERO' le 20060203091131 car, */
/* en effet, 'FZERO' est plus logique en presence d'un 'ABSO(...)', meme si a priori */
/* 'FLOT__NOIR' a la meme valeur... */
DEFV(Local,DEFV(Float,INIT(dXmax_ESPACE_parametrable,dXmax_ESPACE)));
DEFV(Local,DEFV(Float,INIT(dYmax_ESPACE_parametrable,dYmax_ESPACE)));
DEFV(Local,DEFV(Float,INIT(dZmax_ESPACE_parametrable,dZmax_ESPACE)));
/* Introduit le 20160330135155 afin de permettre le texturage des surfaces de facon a ce */
/* que la texture choisie (qui suivant les ponderation peut devenir les differentielles : */
/* 'v $xrs/surfaces.12$I EGAL.dcx,BARY.differentielle_x.texture_x.ponderation_ROUGE_pour_') */
/* soit conservee et non pas renormalisee de facon arbitraire... */
#define dXmax_ESPACE_effectif \
COND(IL_NE_FAUT_PAS(prendre_la_valeur_absolue_des_differentielles) \
,dXmax_ESPACE_parametrable \
,MAX2(ABSO(dXmin_ESPACE_parametrable),ABSO(dXmax_ESPACE_parametrable)) \
)
#define dYmax_ESPACE_effectif \
COND(IL_NE_FAUT_PAS(prendre_la_valeur_absolue_des_differentielles) \
,dYmax_ESPACE_parametrable \
,MAX2(ABSO(dYmin_ESPACE_parametrable),ABSO(dYmax_ESPACE_parametrable)) \
)
#define dZmax_ESPACE_effectif \
COND(IL_NE_FAUT_PAS(prendre_la_valeur_absolue_des_differentielles) \
,dZmax_ESPACE_parametrable \
,MAX2(ABSO(dZmin_ESPACE_parametrable),ABSO(dZmax_ESPACE_parametrable)) \
)
/* Introduit le 20060201101834... */
#define X_DERIVEE_DANS_01(dx) \
COND(IL_FAUT(renormaliser_arbitrairement_les_differentielles) \
,NORM(dx,dXmin_ESPACE_effectif,dXmax_ESPACE_effectif) \
,dx \
)
#define Y_DERIVEE_DANS_01(dy) \
COND(IL_FAUT(renormaliser_arbitrairement_les_differentielles) \
,NORM(dy,dYmin_ESPACE_effectif,dYmax_ESPACE_effectif) \
,dy \
)
#define Z_DERIVEE_DANS_01(dz) \
COND(IL_FAUT(renormaliser_arbitrairement_les_differentielles) \
,NORM(dz,dZmin_ESPACE_effectif,dZmax_ESPACE_effectif) \
,dz \
)
/* Formules de renormalisation des differentielles dans [0,1] ; elles sont utilisees lorsque */
/* la production d'images en couleurs est demandee (voir 'visualiser_en_RVB'). */
#define X_DERIVEE_DENORMALISEE(dx) \
COND(IL_FAUT(renormaliser_arbitrairement_les_differentielles) \
,DENO(dx,dXmin_ESPACE_effectif,dXmax_ESPACE_effectif) \
,dx \
)
#define Y_DERIVEE_DENORMALISEE(dy) \
COND(IL_FAUT(renormaliser_arbitrairement_les_differentielles) \
,DENO(dy,dYmin_ESPACE_effectif,dYmax_ESPACE_effectif) \
,dy \
)
#define Z_DERIVEE_DENORMALISEE(dz) \
COND(IL_FAUT(renormaliser_arbitrairement_les_differentielles) \
,DENO(dz,dZmin_ESPACE_effectif,dZmax_ESPACE_effectif) \
,dz \
)
/* Formules de denormalisation des differentielles ; elles sont utilisees par le trace des */
/* axes ('v $xrv/particule.12$I'). */