/*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S D E L ' I N T E R P O L A T I O N D E S P A R A M E T R E S : */ /* */ /* */ /* Author of '$xrq/nucleon.LX.2$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 1992??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P R O C E D U R E S D ' I N T E R E T G E N E R A L : */ /* */ /*************************************************************************************************************************************/ #include xrq/nucleon.Lf.2.I" /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D E S V E C T E U R S D E S T R A N S F O R M A T I O N S , */ /* D E S F I C H I E R S D E S T R A N S F O R M A T I O N S S P E C I F I Q U E S E T */ /* D E S V A L E U R S I M P L I C I T E S D E S V A R I A B L E S A C H A Q U E I N S T A N T : */ /* */ /*************************************************************************************************************************************/ dfTRANSFORMAT_31(liste_LUMINANCE,fichier_LUMINANCE,LUMINANCE_IMPLICITE,FU) dfTRANSFORMAT_31(liste_TRANSLATION_OX,fichier_TRANSLATION_OX,TRANSLATION_OX_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_TRANSLATION_OY,fichier_TRANSLATION_OY,TRANSLATION_OY_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_TRANSLATION_OZ,fichier_TRANSLATION_OZ,TRANSLATION_OZ_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_COLLAPSE,fichier_COLLAPSE,COLLAPSE_IMPLICITE,FU) dfTRANSFORMAT_31(liste_ZOOM,fichier_ZOOM,ZOOM_IMPLICITE,GRO4(FRA3(FU))) dfTRANSFORMAT_31(liste_ROTATION_OX,fichier_ROTATION_OX,ROTATION_OX_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_ROTATION_OY,fichier_ROTATION_OY,ROTATION_OY_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_ROTATION_OZ,fichier_ROTATION_OZ,ROTATION_OZ_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_STEREOSCOPIE,fichier_STEREOSCOPIE,STEREOSCOPIE_IMPLICITE,DECALAGE_ANGULAIRE_POUR_UNE_VISION_CYCLOPIQUE) #ifdef __VERSION__GENERATION_D_UN_NUCLEON dfTRANSFORMAT_31(liste_X_quark_REEL_ROUGE,fichier_X_quark_REEL_ROUGE,X_quark_REEL_ROUGE_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_Y_quark_REEL_ROUGE,fichier_Y_quark_REEL_ROUGE,Y_quark_REEL_ROUGE_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_Z_quark_REEL_ROUGE,fichier_Z_quark_REEL_ROUGE,Z_quark_REEL_ROUGE_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_X_quark_REEL_VERTE,fichier_X_quark_REEL_VERTE,X_quark_REEL_VERTE_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_Y_quark_REEL_VERTE,fichier_Y_quark_REEL_VERTE,Y_quark_REEL_VERTE_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_Z_quark_REEL_VERTE,fichier_Z_quark_REEL_VERTE,Z_quark_REEL_VERTE_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_X_quark_REEL_BLEUE,fichier_X_quark_REEL_BLEUE,X_quark_REEL_BLEUE_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_Y_quark_REEL_BLEUE,fichier_Y_quark_REEL_BLEUE,Y_quark_REEL_BLEUE_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_Z_quark_REEL_BLEUE,fichier_Z_quark_REEL_BLEUE,Z_quark_REEL_BLEUE_IMPLICITE,FZERO) #Aifdef __VERSION__GENERATION_D_UN_NUCLEON #Eifdef __VERSION__GENERATION_D_UN_NUCLEON #ifdef __VERSION__GENERATION_D_UN_MESON dfTRANSFORMAT_31(liste_X_quark_REEL,fichier_X_quark_REEL,X_quark_REEL_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_Y_quark_REEL,fichier_Y_quark_REEL,Y_quark_REEL_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_Z_quark_REEL,fichier_Z_quark_REEL,Z_quark_REEL_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_X_anti_quark_REEL,fichier_X_anti_quark_REEL,X_anti_quark_REEL_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_Y_anti_quark_REEL,fichier_Y_anti_quark_REEL,Y_anti_quark_REEL_IMPLICITE,FZERO) dfTRANSFORMAT_31(liste_Z_anti_quark_REEL,fichier_Z_anti_quark_REEL,Z_anti_quark_REEL_IMPLICITE,FZERO) #Aifdef __VERSION__GENERATION_D_UN_MESON #Eifdef __VERSION__GENERATION_D_UN_MESON #ifdef __VERSION__GENERATION_D_UN_DI_ELECTRON /* ATTENTION, il n'y a pas dans ce cas de listes : */ /* */ /* liste_X_electron_1_REEL */ /* liste_Y_electron_1_REEL */ /* liste_Z_electron_1_REEL */ /* liste_X_electron_2_REEL */ /* liste_Y_electron_2_REEL */ /* liste_Z_electron_2_REEL */ /* */ /* puisque les electrons REELs sont mobiles... */ dfTRANSFORMAT_31(liste_CHAMP_ELECTRIQUE_X,fichier_CHAMP_ELECTRIQUE_X,CHAMP_ELECTRIQUE_X_IMPLICITE,CHAMP_ELECTRIQUE_X) dfTRANSFORMAT_31(liste_CHAMP_ELECTRIQUE_Y,fichier_CHAMP_ELECTRIQUE_Y,CHAMP_ELECTRIQUE_Y_IMPLICITE,CHAMP_ELECTRIQUE_Y) dfTRANSFORMAT_31(liste_CHAMP_ELECTRIQUE_Z,fichier_CHAMP_ELECTRIQUE_Z,CHAMP_ELECTRIQUE_Z_IMPLICITE,CHAMP_ELECTRIQUE_Z) dfTRANSFORMAT_31(liste_CHAMP_MAGNETIQUE_X,fichier_CHAMP_MAGNETIQUE_X,CHAMP_MAGNETIQUE_X_IMPLICITE,CHAMP_MAGNETIQUE_X) dfTRANSFORMAT_31(liste_CHAMP_MAGNETIQUE_Y,fichier_CHAMP_MAGNETIQUE_Y,CHAMP_MAGNETIQUE_Y_IMPLICITE,CHAMP_MAGNETIQUE_Y) dfTRANSFORMAT_31(liste_CHAMP_MAGNETIQUE_Z,fichier_CHAMP_MAGNETIQUE_Z,CHAMP_MAGNETIQUE_Z_IMPLICITE,CHAMP_MAGNETIQUE_Z) #Aifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #Eifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #ifdef __VERSION__GENERATION_DU_VIDE #Aifdef __VERSION__GENERATION_DU_VIDE #Eifdef __VERSION__GENERATION_DU_VIDE /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* G E N E R A L I T E S S U R L E S T R A N S F O R M A T I O N S : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* T R A N S F O R M A T I O N S P A R T I C U L I E R E S : */ /* */ /*************************************************************************************************************************************/ #define sLUMINANCE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_LUMINANCE \ ) \ ) \ /* Formule generale definissant la suite des 4 modulations de luminance. */ #define sTRANSLATION_OX(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_TRANSLATION_OX \ ) \ ) \ /* Formule generale definissant la suite des 4 translations de l'origine suivant l'axe 'OX'. */ #define sTRANSLATION_OY(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_TRANSLATION_OY \ ) \ ) \ /* Formule generale definissant la suite des 4 translations de l'origine suivant l'axe 'OY'. */ #define sTRANSLATION_OZ(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_TRANSLATION_OZ \ ) \ ) \ /* Formule generale definissant la suite des 4 translations de l'origine suivant l'axe 'OZ'. */ #define sCOLLAPSE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_COLLAPSE \ ) \ ) \ /* Formule generale definissant le collapse. */ #define sZOOM(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_ZOOM \ ) \ ) \ /* Formule generale definissant le zoom. */ #define sROTATION_OX(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_ROTATION_OX \ ) \ ) \ /* Formule generale definissant la suite des rotations possibles autour de l'axe 'OX'. */ #define sROTATION_OY(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_ROTATION_OY \ ) \ ) \ /* Formule generale definissant la suite des rotations possibles autour de l'axe 'OY'. */ #define sROTATION_OZ(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_ROTATION_OZ \ ) \ ) \ /* Formule generale definissant la suite des rotations possibles autour de l'axe 'OX'. */ #define sSTEREOSCOPIE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_STEREOSCOPIE \ ) \ ) \ /* Formule generale definissant le decalage angulaire stereoscopique. */ #ifdef __VERSION__GENERATION_D_UN_NUCLEON # define sX_quark_REEL_ROUGE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_X_quark_REEL_ROUGE \ ) \ ) # define sY_quark_REEL_ROUGE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_Y_quark_REEL_ROUGE \ ) \ ) # define sZ_quark_REEL_ROUGE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_Z_quark_REEL_ROUGE \ ) \ ) /* Formule generale definissant la position instantanee du quark REEL ROUGE. */ # define sX_quark_REEL_VERTE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_X_quark_REEL_VERTE \ ) \ ) # define sY_quark_REEL_VERTE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_Y_quark_REEL_VERTE \ ) \ ) # define sZ_quark_REEL_VERTE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_Z_quark_REEL_VERTE \ ) \ ) /* Formule generale definissant la position instantanee du quark REEL VERTE. */ # define sX_quark_REEL_BLEUE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_X_quark_REEL_BLEUE \ ) \ ) # define sY_quark_REEL_BLEUE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_Y_quark_REEL_BLEUE \ ) \ ) # define sZ_quark_REEL_BLEUE(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_Z_quark_REEL_BLEUE \ ) \ ) /* Formule generale definissant la position instantanee du quark REEL BLEUE. */ #Aifdef __VERSION__GENERATION_D_UN_NUCLEON #Eifdef __VERSION__GENERATION_D_UN_NUCLEON #ifdef __VERSION__GENERATION_D_UN_MESON # define sX_quark_REEL(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_X_quark_REEL \ ) \ ) # define sY_quark_REEL(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_Y_quark_REEL \ ) \ ) # define sZ_quark_REEL(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_Z_quark_REEL \ ) \ ) /* Formule generale definissant la position instantanee du quark REEL. */ # define sX_anti_quark_REEL(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_X_anti_quark_REEL \ ) \ ) # define sY_anti_quark_REEL(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_Y_anti_quark_REEL \ ) \ ) # define sZ_anti_quark_REEL(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_Z_anti_quark_REEL \ ) \ ) /* Formule generale definissant la position instantanee de l'anti-quark REEL. */ #Aifdef __VERSION__GENERATION_D_UN_MESON #Eifdef __VERSION__GENERATION_D_UN_MESON #ifdef __VERSION__GENERATION_D_UN_DI_ELECTRON /* ATTENTION, il n'y a pas dans ce cas de listes : */ /* */ /* liste_X_electron_1_REEL */ /* liste_Y_electron_1_REEL */ /* liste_Z_electron_1_REEL */ /* liste_X_electron_2_REEL */ /* liste_Y_electron_2_REEL */ /* liste_Z_electron_2_REEL */ /* */ /* puisque les electrons REELs sont mobiles... */ # define sCHAMP_ELECTRIQUE_X(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_CHAMP_ELECTRIQUE_X \ ) \ ) # define sCHAMP_ELECTRIQUE_Y(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_CHAMP_ELECTRIQUE_Y \ ) \ ) # define sCHAMP_ELECTRIQUE_Z(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_CHAMP_ELECTRIQUE_Z \ ) \ ) /* Formule generale definissant le champ electrique instantane. */ # define sCHAMP_MAGNETIQUE_X(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_CHAMP_MAGNETIQUE_X \ ) \ ) # define sCHAMP_MAGNETIQUE_Y(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_CHAMP_MAGNETIQUE_Y \ ) \ ) # define sCHAMP_MAGNETIQUE_Z(numero_de_la_periode) \ FLOT(sTRANSFORMAT_31(numero_de_la_periode \ ,liste_CHAMP_MAGNETIQUE_Z \ ) \ ) /* Formule generale definissant le champ magnetique instantane. */ #Aifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #Eifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #ifdef __VERSION__GENERATION_DU_VIDE #Aifdef __VERSION__GENERATION_DU_VIDE #Eifdef __VERSION__GENERATION_DU_VIDE /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* I N I T I A L I S A T I O N D E S I N T E R P O L A T I O N S : */ /* */ /*************************************************************************************************************************************/ #define DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS_GEOMETRIQUES \ Bblock \ iTRANSFORMAT_31(liste_LUMINANCE,LUMINANCE_IMPLICITE); \ \ iTRANSFORMAT_31(liste_TRANSLATION_OX,TRANSLATION_OX_IMPLICITE); \ iTRANSFORMAT_31(liste_TRANSLATION_OY,TRANSLATION_OY_IMPLICITE); \ iTRANSFORMAT_31(liste_TRANSLATION_OZ,TRANSLATION_OZ_IMPLICITE); \ \ iTRANSFORMAT_31(liste_COLLAPSE,COLLAPSE_IMPLICITE); \ \ iTRANSFORMAT_31(liste_ZOOM,ZOOM_IMPLICITE); \ \ iTRANSFORMAT_31(liste_ROTATION_OX,ROTATION_OX_IMPLICITE); \ iTRANSFORMAT_31(liste_ROTATION_OY,ROTATION_OY_IMPLICITE); \ iTRANSFORMAT_31(liste_ROTATION_OZ,ROTATION_OZ_IMPLICITE); \ \ iTRANSFORMAT_31(liste_STEREOSCOPIE,STEREOSCOPIE_IMPLICITE); \ Eblock \ /* Debut initialisation des differentes interpolations geometriques. */ #ifdef __VERSION__GENERATION_D_UN_NUCLEON # define ___DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS \ Bblock \ DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS_GEOMETRIQUES; \ \ iTRANSFORMAT_31(liste_X_quark_REEL_ROUGE,X_quark_REEL_ROUGE_IMPLICITE); \ iTRANSFORMAT_31(liste_Y_quark_REEL_ROUGE,Y_quark_REEL_ROUGE_IMPLICITE); \ iTRANSFORMAT_31(liste_Z_quark_REEL_ROUGE,Z_quark_REEL_ROUGE_IMPLICITE); \ \ iTRANSFORMAT_31(liste_X_quark_REEL_VERTE,X_quark_REEL_VERTE_IMPLICITE); \ iTRANSFORMAT_31(liste_Y_quark_REEL_VERTE,Y_quark_REEL_VERTE_IMPLICITE); \ iTRANSFORMAT_31(liste_Z_quark_REEL_VERTE,Z_quark_REEL_VERTE_IMPLICITE); \ \ iTRANSFORMAT_31(liste_X_quark_REEL_BLEUE,X_quark_REEL_BLEUE_IMPLICITE); \ iTRANSFORMAT_31(liste_Y_quark_REEL_BLEUE,Y_quark_REEL_BLEUE_IMPLICITE); \ iTRANSFORMAT_31(liste_Z_quark_REEL_BLEUE,Z_quark_REEL_BLEUE_IMPLICITE); \ Eblock \ /* Debut initialisation des differentes interpolations... */ #Aifdef __VERSION__GENERATION_D_UN_NUCLEON #Eifdef __VERSION__GENERATION_D_UN_NUCLEON #ifdef __VERSION__GENERATION_D_UN_MESON # define ___DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS \ Bblock \ DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS_GEOMETRIQUES; \ \ iTRANSFORMAT_31(liste_X_quark_REEL,X_quark_REEL_IMPLICITE); \ iTRANSFORMAT_31(liste_Y_quark_REEL,Y_quark_REEL_IMPLICITE); \ iTRANSFORMAT_31(liste_Z_quark_REEL,Z_quark_REEL_IMPLICITE); \ \ iTRANSFORMAT_31(liste_X_anti_quark_REEL,X_anti_quark_REEL_IMPLICITE); \ iTRANSFORMAT_31(liste_Y_anti_quark_REEL,Y_anti_quark_REEL_IMPLICITE); \ iTRANSFORMAT_31(liste_Z_anti_quark_REEL,Z_anti_quark_REEL_IMPLICITE); \ Eblock \ /* Debut initialisation des differentes interpolations... */ #Aifdef __VERSION__GENERATION_D_UN_MESON #Eifdef __VERSION__GENERATION_D_UN_MESON #ifdef __VERSION__GENERATION_D_UN_DI_ELECTRON # define ___DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS \ Bblock \ DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS_GEOMETRIQUES; \ \ /* ATTENTION, il n'y a pas dans ce cas de listes : */ \ /* */ \ /* liste_X_electron_1_REEL */ \ /* liste_Y_electron_1_REEL */ \ /* liste_Z_electron_1_REEL */ \ /* liste_X_electron_2_REEL */ \ /* liste_Y_electron_2_REEL */ \ /* liste_Z_electron_2_REEL */ \ /* */ \ /* puisque les electrons REELs sont mobiles... */ \ \ iTRANSFORMAT_31(liste_CHAMP_ELECTRIQUE_X,CHAMP_ELECTRIQUE_X_IMPLICITE); \ iTRANSFORMAT_31(liste_CHAMP_ELECTRIQUE_Y,CHAMP_ELECTRIQUE_Y_IMPLICITE); \ iTRANSFORMAT_31(liste_CHAMP_ELECTRIQUE_Z,CHAMP_ELECTRIQUE_Z_IMPLICITE); \ \ iTRANSFORMAT_31(liste_CHAMP_MAGNETIQUE_X,CHAMP_MAGNETIQUE_X_IMPLICITE); \ iTRANSFORMAT_31(liste_CHAMP_MAGNETIQUE_Y,CHAMP_MAGNETIQUE_Y_IMPLICITE); \ iTRANSFORMAT_31(liste_CHAMP_MAGNETIQUE_Z,CHAMP_MAGNETIQUE_Z_IMPLICITE); \ Eblock \ /* Debut initialisation des differentes interpolations... */ #Aifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #Eifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #ifdef __VERSION__GENERATION_DU_VIDE # define ___DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS \ Bblock \ DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS_GEOMETRIQUES; \ Eblock \ /* Debut initialisation des differentes interpolations... */ #Aifdef __VERSION__GENERATION_DU_VIDE #Eifdef __VERSION__GENERATION_DU_VIDE #TestADef ___DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS \ Bblock \ DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS_GEOMETRIQUES; \ Eblock \ /* Debut initialisation des differentes interpolations... */ BFonctionI DEFV(LoF,GENERE__Fonction__OPT(DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS,PV,___DEBUT_DE_L_INITIALISATION_DES_INTERPOLATIONS)) EFonctionI #define ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_des_transformations,translateur_absolu) \ Bblock \ DEFV(Int,INIT(index,UNDEF)); \ /* Index d'absolutisation d'une liste de coordonnees relatives a un quark REEL. */ \ DoIn(index \ ,NUMERO_DE_LA_PREMIERE_PERIODE_DE_LA_SIMULATION \ ,LSTX(NUMERO_DE_LA_PREMIERE_PERIODE_DE_LA_SIMULATION,NOMBRE_MAXIMAL_DE_PERIODES_DE_LA_SIMULATION) \ ,I \ ) \ Bblock \ EGAL(ITb1(liste_des_transformations,INDX(index,NUMERO_DE_LA_PREMIERE_PERIODE_DE_LA_SIMULATION)) \ ,AXPB(RAYON_D_UN_HADRON \ ,ITb1(liste_des_transformations,INDX(index,NUMERO_DE_LA_PREMIERE_PERIODE_DE_LA_SIMULATION)) \ ,translateur_absolu \ ) \ ); \ /* Et on absolutise element par element... */ \ Eblock \ EDoI \ Eblock \ /* En effet, pour les coordonnees des quarks REELs, pour simplifier, ce qui est introduit */ \ /* via un fichier sont des coordonnees relatives a la position "standard" de ceux-ci (voir */ \ /* le "fameux" triangle equilateral), et exprimees dans l'unite 'RAYON_D_UN_HADRON'. Ici on */ \ /* convertit donc tout cela en unites physiques et absolues... */ #define ABSENCE_DE_TRANSLATION \ FZERO \ /* Pour absolutiser correctement les listes 'liste_TRANSLATION_O?'... */ #ifdef __VERSION__GENERATION_D_UN_NUCLEON # define ___FIN_DE_L_INITIALISATION_DES_INTERPOLATIONS \ Bblock \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_X_quark_REEL_ROUGE,X_quark_REEL_ROUGE); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_Y_quark_REEL_ROUGE,Y_quark_REEL_ROUGE); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_Z_quark_REEL_ROUGE,Z_quark_REEL_ROUGE); \ \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_X_quark_REEL_VERTE,X_quark_REEL_VERTE); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_Y_quark_REEL_VERTE,Y_quark_REEL_VERTE); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_Z_quark_REEL_VERTE,Z_quark_REEL_VERTE); \ \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_X_quark_REEL_BLEUE,X_quark_REEL_BLEUE); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_Y_quark_REEL_BLEUE,Y_quark_REEL_BLEUE); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_Z_quark_REEL_BLEUE,Z_quark_REEL_BLEUE); \ \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OX,ABSENCE_DE_TRANSLATION); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OY,ABSENCE_DE_TRANSLATION); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OZ,ABSENCE_DE_TRANSLATION); \ Eblock \ /* Fin initialisation des differentes interpolations... */ #Aifdef __VERSION__GENERATION_D_UN_NUCLEON #Eifdef __VERSION__GENERATION_D_UN_NUCLEON #ifdef __VERSION__GENERATION_D_UN_MESON # define ___FIN_DE_L_INITIALISATION_DES_INTERPOLATIONS \ Bblock \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_X_quark_REEL,X_quark_REEL); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_Y_quark_REEL,Y_quark_REEL); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_Z_quark_REEL,Z_quark_REEL); \ \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_X_anti_quark_REEL,X_anti_quark_REEL); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_Y_anti_quark_REEL,Y_anti_quark_REEL); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_Z_anti_quark_REEL,Z_anti_quark_REEL); \ \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OX,ABSENCE_DE_TRANSLATION); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OY,ABSENCE_DE_TRANSLATION); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OZ,ABSENCE_DE_TRANSLATION); \ Eblock \ /* Fin initialisation des differentes interpolations... */ #Aifdef __VERSION__GENERATION_D_UN_MESON #Eifdef __VERSION__GENERATION_D_UN_MESON #ifdef __VERSION__GENERATION_D_UN_DI_ELECTRON # define ___FIN_DE_L_INITIALISATION_DES_INTERPOLATIONS \ Bblock \ /* ATTENTION, il n'y a pas dans ce cas de listes : */ \ /* */ \ /* liste_X_electron_1_REEL */ \ /* liste_Y_electron_1_REEL */ \ /* liste_Z_electron_1_REEL */ \ /* liste_X_electron_2_REEL */ \ /* liste_Y_electron_2_REEL */ \ /* liste_Z_electron_2_REEL */ \ /* */ \ /* puisque les electrons REELs sont mobiles... */ \ \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OX,ABSENCE_DE_TRANSLATION); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OY,ABSENCE_DE_TRANSLATION); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OZ,ABSENCE_DE_TRANSLATION); \ Eblock \ /* Fin initialisation des differentes interpolations... */ #Aifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #Eifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #ifdef __VERSION__GENERATION_DU_VIDE # define ___FIN_DE_L_INITIALISATION_DES_INTERPOLATIONS \ Bblock \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OX,ABSENCE_DE_TRANSLATION); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OY,ABSENCE_DE_TRANSLATION); \ ABSOLUTISATION_DES_POSITIONS_ET_TRANSLATIONS(liste_TRANSLATION_OZ,ABSENCE_DE_TRANSLATION); \ Eblock \ /* Fin initialisation des differentes interpolations... */ #Aifdef __VERSION__GENERATION_DU_VIDE #Eifdef __VERSION__GENERATION_DU_VIDE #TestADef ___FIN_DE_L_INITIALISATION_DES_INTERPOLATIONS \ Bblock \ Eblock \ /* Fin initialisation des differentes interpolations... */ BFonctionI DEFV(LoF,GENERE__Fonction__OPT(FIN_DE_L_INITIALISATION_DES_INTERPOLATIONS,PV,___FIN_DE_L_INITIALISATION_DES_INTERPOLATIONS)) EFonctionI /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* O R D R E D E S R O T A T I O N S : */ /* */ /*************************************************************************************************************************************/ /* Le 19971104162912, ces definitions ont ete deplacees dans 'v $xiii/vecteurs$FON' car, en */ /* effet elles peuvent etre utiles partout... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P O S I T I O N N E M E N T A B S O L U D E S P A R T C U L E S R E E L L E S : */ /* */ /*************************************************************************************************************************************/ #ifdef __VERSION__GENERATION_D_UN_NUCLEON # define POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_ROUGE(numero_de_la_periode_courante) \ Bblock \ EGAL(COORDONNEES(quark_REEL_ROUGE,x),sX_quark_REEL_ROUGE(numero_de_la_periode_courante)); \ EGAL(COORDONNEES(quark_REEL_ROUGE,y),sY_quark_REEL_ROUGE(numero_de_la_periode_courante)); \ EGAL(COORDONNEES(quark_REEL_ROUGE,z),sZ_quark_REEL_ROUGE(numero_de_la_periode_courante)); \ Eblock \ /* Positionnement absolu du quark REEL ROUGE. */ # define POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_VERTE(numero_de_la_periode_courante) \ Bblock \ EGAL(COORDONNEES(quark_REEL_VERTE,x),sX_quark_REEL_VERTE(numero_de_la_periode_courante)); \ EGAL(COORDONNEES(quark_REEL_VERTE,y),sY_quark_REEL_VERTE(numero_de_la_periode_courante)); \ EGAL(COORDONNEES(quark_REEL_VERTE,z),sZ_quark_REEL_VERTE(numero_de_la_periode_courante)); \ Eblock \ /* Positionnement absolu du quark REEL VERTE. */ # define POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_BLEUE(numero_de_la_periode_courante) \ Bblock \ EGAL(COORDONNEES(quark_REEL_BLEUE,x),sX_quark_REEL_BLEUE(numero_de_la_periode_courante)); \ EGAL(COORDONNEES(quark_REEL_BLEUE,y),sY_quark_REEL_BLEUE(numero_de_la_periode_courante)); \ EGAL(COORDONNEES(quark_REEL_BLEUE,z),sZ_quark_REEL_BLEUE(numero_de_la_periode_courante)); \ Eblock \ /* Positionnement absolu du quark REEL BLEUE. */ #Aifdef __VERSION__GENERATION_D_UN_NUCLEON #Eifdef __VERSION__GENERATION_D_UN_NUCLEON #ifdef __VERSION__GENERATION_D_UN_MESON # define POSITIONNEMENT_ABSOLU_DU_QUARK_REEL(numero_de_la_periode_courante) \ Bblock \ EGAL(COORDONNEES(quark_REEL,x),sX_quark_REEL(numero_de_la_periode_courante)); \ EGAL(COORDONNEES(quark_REEL,y),sY_quark_REEL(numero_de_la_periode_courante)); \ EGAL(COORDONNEES(quark_REEL,z),sZ_quark_REEL(numero_de_la_periode_courante)); \ Eblock \ /* Positionnement absolu du quark REEL. */ # define POSITIONNEMENT_ABSOLU_DE_L_ANTI_QUARK_REEL(numero_de_la_periode_courante) \ Bblock \ EGAL(COORDONNEES(anti_quark_REEL,x),sX_anti_quark_REEL(numero_de_la_periode_courante)); \ EGAL(COORDONNEES(anti_quark_REEL,y),sY_anti_quark_REEL(numero_de_la_periode_courante)); \ EGAL(COORDONNEES(anti_quark_REEL,z),sZ_anti_quark_REEL(numero_de_la_periode_courante)); \ Eblock \ /* Positionnement absolu de l'anti-quark REEL. */ #Aifdef __VERSION__GENERATION_D_UN_MESON #Eifdef __VERSION__GENERATION_D_UN_MESON #ifdef __VERSION__GENERATION_D_UN_DI_ELECTRON /* ATTENTION, il n'y a pas dans ce cas de listes : */ /* */ /* liste_X_electron_1_REEL */ /* liste_Y_electron_1_REEL */ /* liste_Z_electron_1_REEL */ /* liste_X_electron_2_REEL */ /* liste_Y_electron_2_REEL */ /* liste_Z_electron_2_REEL */ /* */ /* puisque les electrons REELs sont mobiles... */ #Aifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #Eifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #ifdef __VERSION__GENERATION_DU_VIDE #Aifdef __VERSION__GENERATION_DU_VIDE #Eifdef __VERSION__GENERATION_DU_VIDE /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* C H A N G E M E N T D U P O I N T D E V U E : */ /* */ /*************************************************************************************************************************************/ /* Le 19971104162912, les definitions des procedures 'PERMUTATION_DES_ROTATIONS(...)' */ /* et 'GENERATION_DE_LA_MATRICE_DE_ROTATION(...)' ont ete deplacees dans le fichier */ /* 'v $xiii/vecteurs$DEF' car, en effet elles peuvent etre utiles partout... */ #define CHANGEMENT_DU_POINT_DE_VUE_GEOMETRIQUE \ Bblock \ INITIALISATION_SYSTEMATIQUE_TRANSFORMATION; \ /* Retour a la transformation neutre... */ \ \ EGAL(facteur_de_collapse,sCOLLAPSE(numero_de_la_periode_courante)); \ /* Mise en place du facteur de collapse courant des coordonnees. */ \ \ EGAL(rapport_courant_du_zoom \ ,COND(IL_NE_FAUT_PAS(zoom_automatique) \ ,sZOOM(numero_de_la_periode_courante) \ ,rapport_automatique_du_zoom \ ) \ ); \ /* Calcul du rapport courant du zoom, et ce en particulier afin de determiner correctement */ \ /* le rayon apparent des particules... */ \ \ INITIALISATION_ACCROISSEMENT_3D(translation_de_l_origine \ ,FZERO \ ,FZERO \ ,FZERO \ ); \ /* Reinitialisation a priori de la translation de l'origine, et ce au cas ou le calcul */ \ /* des 'sTRANSLATION(...)' qui suit serait deplace apres 'GESTION_DE_LA_SOURCE_LUMINEUSE'... */ \ \ INITIALISATION_ACCROISSEMENT_3D(translation_de_l_origine \ ,sTRANSLATION_OX(numero_de_la_periode_courante) \ ,sTRANSLATION_OY(numero_de_la_periode_courante) \ ,sTRANSLATION_OZ(numero_de_la_periode_courante) \ ); \ /* Mise en place de la translation de l'origine. */ \ \ T_ZOOM(rapport_courant_du_zoom); \ /* Mise en place du zoom. */ \ \ GESTION_DE_LA_SOURCE_LUMINEUSE; \ /* On notera avec attention que 'GESTION_DE_LA_SOURCE_LUMINEUSE' est effectue ici apres */ \ /* le zoom, mais avant la rotation, et ce afin que la source lumineuse reste immobile au */ \ /* niveau orientation par rapport a l'observateur (sinon, elle risquerait de se retrouver */ \ /* derriere le proton...). */ \ EGAL(modulation_courante_de_la_luminance,sLUMINANCE(numero_de_la_periode_courante)); \ /* Calcul de la modulation courante de la luminance. */ \ \ GENERATION_DE_LA_MATRICE_DE_ROTATION(vecteurs_____ordre_de_la_ROTATION_0X \ ,T_ROTATION_X(sROTATION_OX(numero_de_la_periode_courante)); \ ,vecteurs_____ordre_de_la_ROTATION_0Y \ ,T_ROTATION_Y(sROTATION_OY(numero_de_la_periode_courante)); \ ,vecteurs_____ordre_de_la_ROTATION_0Z \ ,T_ROTATION_Z(sROTATION_OZ(numero_de_la_periode_courante)); \ ); \ /* Mise en place du produit des trois rotations relatives aux trois axes. */ \ \ vTRANSFORMAT_31(decalage_angulaire_pour_la_stereoscopie \ ,sSTEREOSCOPIE,numero_de_la_periode_courante,fichier_STEREOSCOPIE \ ); \ /* Calcul du decalage angulaire stereoscopique lorsqu'il est variable... */ \ Eblock \ /* Changement du point de vue de l'observateur (partie geometrique, independante des */ \ /* particules REELles). */ #ifdef __VERSION__FAUSSE_GENERATION_D_UN_NUCLEON # define ___CHANGEMENT_DU_POINT_DE_VUE \ Bblock \ CHANGEMENT_DU_POINT_DE_VUE_GEOMETRIQUE; \ /* Changement du point de vue de l'observateur. */ \ Eblock \ /* Changement du point de vue de l'observateur (introduit le 20170125123456). */ #Aifdef __VERSION__FAUSSE_GENERATION_D_UN_NUCLEON #Eifdef __VERSION__FAUSSE_GENERATION_D_UN_NUCLEON #ifdef __VERSION__GENERATION_D_UN_NUCLEON # define ___CHANGEMENT_DU_POINT_DE_VUE \ Bblock \ CHANGEMENT_DU_POINT_DE_VUE_GEOMETRIQUE; \ /* Changement du point de vue de l'observateur. */ \ \ POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_ROUGE(numero_de_la_periode_courante); \ /* Deplacement absolu du quark REEL ROUGE. */ \ POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_VERTE(numero_de_la_periode_courante); \ /* Deplacement absolu du quark REEL VERTE. */ \ POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_BLEUE(numero_de_la_periode_courante); \ /* Deplacement absolu du quark REEL BLEUE. */ \ Eblock \ /* Changement du point de vue de l'observateur et deplacement des quarks REELs. */ #Aifdef __VERSION__GENERATION_D_UN_NUCLEON #Eifdef __VERSION__GENERATION_D_UN_NUCLEON #ifdef __VERSION__GENERATION_D_UN_MESON # define ___CHANGEMENT_DU_POINT_DE_VUE \ Bblock \ CHANGEMENT_DU_POINT_DE_VUE_GEOMETRIQUE; \ /* Changement du point de vue de l'observateur. */ \ \ POSITIONNEMENT_ABSOLU_DU_QUARK_REEL(numero_de_la_periode_courante); \ /* Deplacement absolu du quark REEL. */ \ POSITIONNEMENT_ABSOLU_DE_L_ANTI_QUARK_REEL(numero_de_la_periode_courante); \ /* Deplacement absolu de l'anti-quark REEL. */ \ Eblock \ /* Changement du point de vue de l'observateur et deplacement du quark et de l'anti-quark */ \ /* REELs. */ #Aifdef __VERSION__GENERATION_D_UN_MESON #Eifdef __VERSION__GENERATION_D_UN_MESON #ifdef __VERSION__GENERATION_D_UN_DI_ELECTRON # define ___CHANGEMENT_DU_POINT_DE_VUE \ Bblock \ CHANGEMENT_DU_POINT_DE_VUE_GEOMETRIQUE; \ /* Changement du point de vue de l'observateur. */ \ \ /* ATTENTION, il n'y a pas dans ce cas de listes : */ \ /* */ \ /* liste_X_electron_1_REEL */ \ /* liste_Y_electron_1_REEL */ \ /* liste_Z_electron_1_REEL */ \ /* liste_X_electron_2_REEL */ \ /* liste_Y_electron_2_REEL */ \ /* liste_Z_electron_2_REEL */ \ /* */ \ /* puisque les electrons REELs sont mobiles... */ \ vTRANSFORMAT_31(champ_electrique_X \ ,sCHAMP_ELECTRIQUE_X,numero_de_la_periode_courante,fichier_CHAMP_ELECTRIQUE_X \ ); \ vTRANSFORMAT_31(champ_electrique_Y \ ,sCHAMP_ELECTRIQUE_Y,numero_de_la_periode_courante,fichier_CHAMP_ELECTRIQUE_Y \ ); \ vTRANSFORMAT_31(champ_electrique_Z \ ,sCHAMP_ELECTRIQUE_Z,numero_de_la_periode_courante,fichier_CHAMP_ELECTRIQUE_Z \ ); \ INITIALISATION_ACCROISSEMENT_3D(champ_electrique,champ_electrique_X,champ_electrique_Y,champ_electrique_Z); \ \ vTRANSFORMAT_31(champ_magnetique_X \ ,sCHAMP_MAGNETIQUE_X,numero_de_la_periode_courante,fichier_CHAMP_MAGNETIQUE_X \ ); \ vTRANSFORMAT_31(champ_magnetique_Y \ ,sCHAMP_MAGNETIQUE_Y,numero_de_la_periode_courante,fichier_CHAMP_MAGNETIQUE_Y \ ); \ vTRANSFORMAT_31(champ_magnetique_Z \ ,sCHAMP_MAGNETIQUE_Z,numero_de_la_periode_courante,fichier_CHAMP_MAGNETIQUE_Z \ ); \ INITIALISATION_ACCROISSEMENT_3D(champ_magnetique,champ_magnetique_X,champ_magnetique_Y,champ_magnetique_Z); \ /* Initialisation de l'eventuel champ electro-magnetique. */ \ Eblock \ /* Changement du point de vue de l'observateur et deplacement du quark et de l'anti-quark */ \ /* REELs. */ #Aifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #Eifdef __VERSION__GENERATION_D_UN_DI_ELECTRON #ifdef __VERSION__GENERATION_DU_VIDE # define ___CHANGEMENT_DU_POINT_DE_VUE \ Bblock \ CHANGEMENT_DU_POINT_DE_VUE_GEOMETRIQUE; \ /* Changement du point de vue de l'observateur. */ \ Eblock \ /* Changement du point de vue de l'observateur. */ #Aifdef __VERSION__GENERATION_DU_VIDE #Eifdef __VERSION__GENERATION_DU_VIDE BFonctionI DEFV(LoF,GENERE__Fonction__OPT(CHANGEMENT_DU_POINT_DE_VUE,PV,___CHANGEMENT_DU_POINT_DE_VUE)) EFonctionI