/*************************************************************************************************************************************/ /* */ /* 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'). */