/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N S D E S E L E M E N T S G E O M E T R I Q U E S A L E A T O I R E S : */
/* */
/* */
/* Author of '$xrq/nucleon.LC$I' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 1991??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* G E N E R A T I O N D ' E L E M E N T S G E O M E T R I Q U E S : */
/* */
/*************************************************************************************************************************************/
#define GENERATION_D_UNE_COORDONNEE(coordonnee,type) \
Bblock \
GENERATION_D_UNE_VALEUR(coordonnee \
,ASD2(espace_physique,origine,type) \
,ASD2(espace_physique,extremite,type) \
); \
Eblock \
/* Generation d'une coordonnee aleatoire quelconque {x,y,z} d'un point contenu dans */ \
/* l'espace physique de la simulation. */
#define GENERATION_D_UN_POINT(point_aleatoire) \
Bblock \
GENERATION_D_UNE_COORDONNEE(ASD1(point_aleatoire,x),x); \
GENERATION_D_UNE_COORDONNEE(ASD1(point_aleatoire,y),y); \
GENERATION_D_UNE_COORDONNEE(ASD1(point_aleatoire,z),z); \
Eblock \
/* Generation d'un point aleatoire contenu dans l'espace physique de la simulation. */
#define GENERATION_D_UN_DEMI_ANGLE(demi_angle) \
Bblock \
GENERATION_D_UNE_VALEUR(demi_angle \
,FZERO \
,MOIT(CERCLE_TRIGONOMETRIQUE) \
); \
Eblock \
/* Generation d'un angle aleatoire dans [0,PI]. */
#define GENERATION_D_UN_ANGLE(angle) \
Bblock \
GENERATION_D_UNE_VALEUR(angle \
,FZERO \
,NEUT(CERCLE_TRIGONOMETRIQUE) \
); \
Eblock \
/* Generation d'un angle aleatoire dans [0,2.PI]. */
#define GENERATION_D_UNE_DIRECTION_2D(theta) \
Bblock \
GENERATION_D_UN_ANGLE(theta); \
Eblock \
/* Generation d'une direction aleatoire (theta) dans l'espace bidimensionnel. */
#define GENERATION_D_UNE_DIRECTION_3D(theta,phi) \
Bblock \
GENERATION_D_UN_ANGLE(theta); \
GENERATION_D_UN_ANGLE(phi); \
Eblock \
/* Generation d'une direction aleatoire (theta,phi) dans l'espace tridimensionnel. */