/*************************************************************************************************************************************/
/* */
/* 3 */
/* D E F I N I T I O N D E L ' E S P A C E P H Y S I Q U E D A N S R ( D E B U T ) : */
/* */
/* */
/* Author of '$xrk/attractor.12$I' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 1992??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 3 */
/* D E F I N I T I O N D E L ' E S P A C E P H Y S I Q U E D A N S R ( D E B U T ) : */
/* */
/*************************************************************************************************************************************/
#TestADef hXmin_ESPACE \
PARE(-1.0)
#TestADef hYmin_ESPACE \
PARE(-1.0)
#TestADef hZmin_ESPACE \
PARE(-1.0)
/* Definition du "coin" inferieur-gauche-arriere de l'espace physique. */
/* Ajoute "au cas ou..." le 19990525091333 a cause de 'v $xrv/tri.11$K'. */
#TestADef hXmax_ESPACE \
PARE(1.0)
#TestADef hYmax_ESPACE \
PARE(1.0)
#TestADef hZmax_ESPACE \
PARE(1.0)
/* Definition du "coin" superieur-droite-avant de l'espace physique. */
/* Ajoute "au cas ou..." le 19990525091333 a cause de 'v $xrv/tri.11$K'. */
#TestADef FACTEUR_D_EXTENSION_DE_L_ESPACE_PHYSIQUE \
FU \
/* Facteur d'extension de l'univers. Celui-ci a ete tout particulierement introduit a */ \
/* cause de '$xrr/N_corps.11$K' ; en effet, dans ce dernier l'univers defini initialement */ \
/* etait cinq fois trop petit pour contenir les planetes les plus exterieures. Pour assurer */ \
/* la compatibilite avec les sequences deja generees, il a suffi d'ajouter ce facteur avec */ \
/* comme valeur par defaut, l'unite... */
DEFV(Local,DEFV(Float,INIT(facteur_d_extension_de_l_espace_physique,FACTEUR_D_EXTENSION_DE_L_ESPACE_PHYSIQUE)));
/* Facteur d'extension de l'univers. */
#TestADef REDUCTEUR_ANAMORPHIQUE_XYZ_DE_L_ESPACE_PHYSIQUE \
FU
DEFV(Local,DEFV(Float,INIT(reducteur_anamorphique_X_de_l_espace_physique,REDUCTEUR_ANAMORPHIQUE_XYZ_DE_L_ESPACE_PHYSIQUE)));
DEFV(Local,DEFV(Float,INIT(reducteur_anamorphique_Y_de_l_espace_physique,REDUCTEUR_ANAMORPHIQUE_XYZ_DE_L_ESPACE_PHYSIQUE)));
DEFV(Local,DEFV(Float,INIT(reducteur_anamorphique_Z_de_l_espace_physique,REDUCTEUR_ANAMORPHIQUE_XYZ_DE_L_ESPACE_PHYSIQUE)));
/* Reducteurs individuels des trois dimensions (introduits le 20090617155200). Cela permet, */
/* par exemple, de faire des anamorphoses ; ainsi un reducteur en 'X' valant 2, permet de */
/* visualiser une sphere (evidemment ecrasee horizontalement...) dans une image 500x1000. */
#define EXTENSION_DE_L_ESPACE_PHYSIQUE(longueur,reducteur_anamorphique) \
MUL3(reducteur_anamorphique,facteur_d_extension_de_l_espace_physique,longueur) \
/* Fonction d'extension de l'univers. */
#define X_HOMOTHETIE(x) \
FORMATAGE_HORIZONTAL_DES_IMAGES(EXTENSION_DE_L_ESPACE_PHYSIQUE(x,reducteur_anamorphique_X_de_l_espace_physique))
#define Y_HOMOTHETIE(y) \
FORMATAGE_VERTICAL_DES_IMAGES(EXTENSION_DE_L_ESPACE_PHYSIQUE(y,reducteur_anamorphique_Y_de_l_espace_physique))
#define Z_HOMOTHETIE(z) \
FORMATAGE_EN_PROFONDEUR_DES_IMAGES(EXTENSION_DE_L_ESPACE_PHYSIQUE(z,reducteur_anamorphique_Z_de_l_espace_physique))
/* Afin de "plier" l'espace au format des images a generer. ATTENTION, le 19991224100516 */
/* la definition : */
/* */
/* #define Z_HOMOTHETIE(z) \ */
/* NEUT(EXTENSION_DE_L_ESPACE_PHYSIQUE(z)) */
/* */
/* a ete changee pour resoudre le probleme decrit dans 'v $xrq/nucleon.L4$I 19991224100516'. */
#TestADef Xmin_ESPACE \
X_HOMOTHETIE(hXmin_ESPACE)
#TestADef Ymin_ESPACE \
Y_HOMOTHETIE(hYmin_ESPACE)
#TestADef Zmin_ESPACE \
Z_HOMOTHETIE(hZmin_ESPACE)
/* Definition du "coin" inferieur-gauche-arriere de l'espace physique. */
#TestADef Xmax_ESPACE \
X_HOMOTHETIE(hXmax_ESPACE)
#TestADef Ymax_ESPACE \
Y_HOMOTHETIE(hYmax_ESPACE)
#TestADef Zmax_ESPACE \
Z_HOMOTHETIE(hZmax_ESPACE)
/* Definition du "coin" superieur-droite-avant de l'espace physique. */
#TestADef Xcentre_ESPACE \
MOYE(hXmin_ESPACE,hXmax_ESPACE)
#TestADef Ycentre_ESPACE \
MOYE(hYmin_ESPACE,hYmax_ESPACE)
#TestADef Zcentre_ESPACE \
MOYE(hZmin_ESPACE,hZmax_ESPACE)
/* Definition de l'origine (ou "centre") de l'espace physique. En fait, elles ne servent */
/* qu'a recentrer l'attracteur lors de la visualisation, et d'autre part, elles doivent */
/* etre des constantes absolues a cause de : */
/* */
/* DEFINITION_D_UNE_POSITION(position_indefinie,Xcentre_ESPACE,...); \ */
/* */
/* dans '$xrq/nucleon.L5$I' (d'ou l'ecriture 'h...'). */
#define hXlongueur_ESPACE \
SOUS(hXmax_ESPACE,hXmin_ESPACE)
#define hYlongueur_ESPACE \
SOUS(hYmax_ESPACE,hYmin_ESPACE)
#define hZlongueur_ESPACE \
SOUS(hZmax_ESPACE,hZmin_ESPACE)
#define mhXYZlongueur_ESPACE \
MIN3(hXlongueur_ESPACE,hYlongueur_ESPACE,hZlongueur_ESPACE)
#define MhXYZlongueur_ESPACE \
MAX3(hXlongueur_ESPACE,hYlongueur_ESPACE,hZlongueur_ESPACE)
#define hdiagonale_ESPACE \
Rho_3D(hXlongueur_ESPACE,hYlongueur_ESPACE,hZlongueur_ESPACE)
/* Definition des dimensions de l'espace avant correction eventuelle par les quatre */
/* operateurs 'EXTENSION_DE_L_ESPACE_PHYSIQUE(...)' et '?_HOMOTHETIE(...)'. Elles sont */
/* donc independantes de differentes autres variables, et peuvent donc etre utilisees */
/* pour initialiser certains objets (tel 'rayon_de_visualisation' par exemple...). */
#define Xlongueur_ESPACE \
SOUS(Xmax_ESPACE,Xmin_ESPACE)
#define Ylongueur_ESPACE \
SOUS(Ymax_ESPACE,Ymin_ESPACE)
#define Zlongueur_ESPACE \
SOUS(Zmax_ESPACE,Zmin_ESPACE)
#define mXYZlongueur_ESPACE \
MIN3(Xlongueur_ESPACE,Ylongueur_ESPACE,Zlongueur_ESPACE)
#define MXYZlongueur_ESPACE \
MAX3(Xlongueur_ESPACE,Ylongueur_ESPACE,Zlongueur_ESPACE)
#define diagonale_ESPACE \
Rho_3D(Xlongueur_ESPACE,Ylongueur_ESPACE,Zlongueur_ESPACE)
/* Definition des dimensions de l'espace apres correction eventuelle par les quatre */
/* operateurs 'EXTENSION_DE_L_ESPACE_PHYSIQUE(...)' et '?_HOMOTHETIE(...)'. */
/* */
/* ATTENTION, jusqu'au 1995101200, c'etait les coordonnees du type 'h?min_ESPACE' et */
/* 'h?max_ESPACE' qui etaient utilisees pour calculer les differentes longueurs ci-dessus. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* C E N T R A G E D E S C O O R D O N N E E S : */
/* */
/*************************************************************************************************************************************/
#include xrk/attractor.51.I"
/* Introduit sous cette forme le 20061110084827 a cause, en particulier, des '$K' de '$xrq'. */