/*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S D E Q U E L Q U E S P R O C E D U R E S N E C E S S A I R E S */ /* A L ' E T U D E D E L ' A T O M E D ' H Y D R O G E N E : */ /* */ /* */ /* Author of '$xrq/Hspherik.15$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 1993??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* L I M I T A T I O N D U R A Y O N D E V I S U A L I S A T I O N : */ /* */ /*************************************************************************************************************************************/ #TestADef RAYON_MINIMAL_DE_VISUALISATION \ FRA10(FRA10(FU)) \ /* Rayon minimal du disque materialisant une iteration. ATTENTION : cette constante ne */ \ /* peut etre exprimee en fonction de 'RAYON_DE_VISUALISATION', car en effet, la premiere */ \ /* est plutot liee a l'image, alors que la seconde est plutot liee au modele... */ #define RAYON_MAXIMAL_DE_VISUALISATION \ GRO2(GRO10(RAYON_MINIMAL_DE_VISUALISATION)) \ /* Rayon maximal du disque materialisant une iteration. */ DEFV(Local,DEFV(Float,INIT(plus_grand_rayon_rencontre,F_MOINS_L_INFINI))); /* Afin de savoir si un ou plusieurs rayons trop grands ont ete rencontres... */ #define LIMITATION_DU_RAYON_DE_VISUALISATION \ Bblock \ EGAL(plus_grand_rayon_rencontre \ ,MAX2(rayon_de_visualisation \ ,plus_grand_rayon_rencontre \ ) \ ); \ /* On recherche le plus rayon de visualisation rencontre... */ \ EGAL(rayon_de_visualisation \ ,TRON(rayon_de_visualisation \ ,RAYON_MINIMAL_DE_VISUALISATION \ ,RAYON_MAXIMAL_DE_VISUALISATION \ ) \ ); \ /* Et on fait en sorte qu'il ne soit pas trop petit... */ \ Eblock \ /* Limitation du rayon de visualisation, et preparation de l'edition d'un eventuel */ \ /* "debordement"... */ #define EDITION_DES_DEBORDEMENTS_DU_RAYON_DE_VISUALISATION \ Bblock \ Test(IFGT(plus_grand_rayon_rencontre,RAYON_MAXIMAL_DE_VISUALISATION)) \ Bblock \ PRINT_ERREUR("au moins un rayon de visualisation a ete superieur au maximum autorise"); \ CAL1(Prer1("plus grand rayon = %g\n",plus_grand_rayon_rencontre)); \ CAL1(Prer1("maximum autorise = %g\n",RAYON_MAXIMAL_DE_VISUALISATION)); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Eblock \ /* Edition d'un eventuel "debordement" du rayon de visualisation... */