/*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D U P O I N T D E R E F E R E N C E C O U R A N T : */ /* */ /* */ /* Author of '$xrr/N_corps.11$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 1998??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D U P O I N T D E R E F E R E N C E C O U R A N T : */ /* */ /*************************************************************************************************************************************/ #define DECENTRAGE_DES_COORDONNEES(coordonnee,type1,type2) \ SOUS(coordonnee \ ,COND(IL_FAUT(definir_la_scene_par_rapport_au_centre_de_l_espace) \ ,type1`centre_de_l_espace_pour_la_visualisation \ ,ASD1(ACCES_COORDONNEES_CUMULEES(corps_de_reference,PERIODE),type2) \ ) \ ) \ /* Fonction de "decentrage" des coordonnees... */ DEFV(Local,DEFV(Float,INIT(X_centre_de_l_espace_pour_la_visualisation,Xcentre_ESPACE))); DEFV(Local,DEFV(Float,INIT(Y_centre_de_l_espace_pour_la_visualisation,Ycentre_ESPACE))); DEFV(Local,DEFV(Float,INIT(Z_centre_de_l_espace_pour_la_visualisation,Zcentre_ESPACE))); /* Definition du centre utilise comme point de reference de la visualisation. */ #define DEFINIR_LA_SCENE_PAR_RAPPORT_AU_CENTRE_DE_L_ESPACE \ VRAI DEFV(Local,DEFV(Logical,INIT(definir_la_scene_par_rapport_au_centre_de_l_espace ,DEFINIR_LA_SCENE_PAR_RAPPORT_AU_CENTRE_DE_L_ESPACE ) ) ); /* Indique si la scene est reperee par rapport au centre de l'espace ('VRAI'), ou bien par */ /* rapport a l'un des corps ('FAUX'). */ #define CORPS_DE_REFERENCE \ PREMIER_POINT_DES_LISTES DEFV(Local,DEFV(Int,INIT(corps_de_reference,CORPS_DE_REFERENCE))); /* Indique, si 'definir_la_scene_par_rapport_au_centre_de_l_espace' est 'FAUX', le corps */ /* de reference par rapport auquel reperer la scene. */ #define PERIODE \ COND(IL_FAUT(se_referer_a_la_derniere_position_du_corps_de_reference) \ ,numero_de_la_periode_courante_de_la_simulation \ ,periode \ ) #define SE_REFERER_A_LA_DERNIERE_POSITION_DU_CORPS_DE_REFERENCE \ FAUX DEFV(Local,DEFV(Logical,INIT(se_referer_a_la_derniere_position_du_corps_de_reference ,SE_REFERER_A_LA_DERNIERE_POSITION_DU_CORPS_DE_REFERENCE ) ) ); /* Indique, si 'definir_la_scene_par_rapport_au_centre_de_l_espace' est 'FAUX' si la */ /* position a utiliser pour le corps de reference est la position courante correspondant */ /* a la periode 'periode' ('FAUX') ou bien la derniere position correspondant a la periode */ /* 'numero_de_la_periode_courante_de_la_simulation' ('VRAI'). */