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