#######################################################################################################################################
#                                                                                                                                     #
#         D I S P O S I T I O N   " H A R M O N I E U S E "   D E   P O I N T S   S U R   U N E   S P H E R E                         #
#         A V E C   V I S U A L I S A T I O N   D E   L A   S P H E R E  :                                                            #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirs/.PSPH.61.1.$U' :                                                                                          #
#                                                                                                                                     #
#                     John F. Colonna (LACTAMME, Fin_listG_xtc__PtsSphere_01_c                                                        #
#                                                                                                                                     #
#######################################################################################################################################


$Z                  setParam            _____Debut_listG              "Debut_listG_xtc__PtsSphere_01_c__N26_1000000000"
$Z                  setParam            _____Fin_listG                "Fin_listG_xtc__PtsSphere_01_c__N26_1000000000"

$Z                  SETParam            _____Rayon                    1.0

$Z                  setParam            _____NPoints                  8

$Z                  SETParam            _____Inversion                $NEXIST
$Z                                      # Parametre introduit le 20080328145004...                                                    #

$Z                  setParam            _____InversionX               0
$Z                                      # Parametre introduit le 20080328145004...                                                    #

$Z                  setParam            _____InversionY               0
$Z                                      # Parametre introduit le 20080328145004...                                                    #

$Z                  setParam            _____InversionZ               1
$Z                                      # Parametre introduit le 20080328145004...                                                    #

$Z                  SETParam            _____CSpheriques              $NEXIST
$Z                                      # Parametre introduit le 20080313095345...                                                    #

$Z                  setParam            _____IRotationX               0
$Z                                      # Parametre introduit le 20080401145103...                                                    #

$Z                  setParam            _____IRotationY               0
$Z                                      # Parametre introduit le 20080401145103...                                                    #

$Z                  setParam            _____IRotationZ               0
$Z                                      # Parametre introduit le 20080401145103...                                                    #

$Z                  setParam            _____NVoisins                 3

$Z                  setParam            _____Zoom                     0.9

$Z                  setParam            _____RotationOX               0

$Z                  setParam            _____RotationOY               0

$Z                  setParam            _____RotationOZ               0

$Z                  setParam            _____Grossissement            `GetParam $xrv/particule.10$X grossissement`

$Z                  setParam            _____DepthCueing              1.0

$Z                  setParam            _____RayonP                   0.02

$Z                  setParam            _____CouleurPR                $GRIS_8

$Z                  setParam            _____CouleurPV                $GRIS_8

$Z                  setParam            _____CouleurPB                $GRIS_8

$Z                  setParam            _____RayonS                   0.01

$Z                  setParam            _____CouleurSR                $GRIS_8

$Z                  setParam            _____CouleurSV                $GRIS_5

$Z                  setParam            _____CouleurSB                $GRIS_0

$Z                  $DELETE             $xTV/COORDONNEES

$Z                  (listMN             $xtc/PtsSphere.01$c $_____Debut_listG $_____Fin_listG)                                          \
$Z                                      | $GRE    -v '^ */\*  *\*/$'                                                                    \
$Z                                      | $SE     -e "s+^ */\*  *\([^ ]\)+\1+"                                                          \
$Z                                                -e 's+\([^ ]\)  *\*/+\1+'                                                             \
$Z                                                                              >   $xTV/COORDONNEES

$Z                  $DELETE             $xTV/COORDONNEES_01$COORD_X
$Z                  $DELETE             $xTV/COORDONNEES_01$COORD_Y
$Z                  $DELETE             $xTV/COORDONNEES_01$COORD_Z

$Z                  $CA                 $xTV/COORDONNEES                                                                                \
$Z                                      | $AW     ' { print $1 } '                                                                      \
$Z                                                                              >   $xTV/COORDONNEES_01$COORD_X

$Z                  $CA                 $xTV/COORDONNEES                                                                                \
$Z                                      | $AW     ' { print $2 } '                                                                      \
$Z                                                                              >   $xTV/COORDONNEES_01$COORD_Y

$Z                  $CA                 $xTV/COORDONNEES                                                                                \
$Z                                      | $AW     ' { print $3 } '                                                                      \
$Z                                                                              >   $xTV/COORDONNEES_01$COORD_Z

$Z                  $DELETE             $xTV/COORDONNEES

$Z                  $DELETE             $xTV/DISTANCES

$Z                  $xrv/distance.02$X                                                                                                  \
$Z                                      CAL1=FAUX                                                                                       \
$Z                                      ne=$_____NPoints                                                                                \
$Z                                      LISTE_X=$xTV/COORDONNEES_01$COORD_X                                                             \
$Z                                      LISTE_Y=$xTV/COORDONNEES_01$COORD_Y                                                             \
$Z                                      LISTE_Z=$xTV/COORDONNEES_01$COORD_Z                                                             \
$Z                                      premiers_voisins=VRAI                                                                           \
$Z                                      N=$_____NVoisins                                                                                \
$Z                                                                              >   $xTV/DISTANCES

$Z        set       ListeCouples=`$CA $xTV/DISTANCES | $SE -e "s/^.*couple=//" -e 's/ .*$//' -e "s/[^,$Alphabet_0_9]//g" | $SOR -u`
$Z                                      # Le '$SOR -u' a ete introduit le 20011014100521, depuis que l'option implicite "tri=VRAI"    #
$Z                                      # a ete introduite le 20011014091311 dans 'v $xrv/distance.02$K 20011014091311'.              #

$Z                  $DELETE             $xTV/DISTANCES

$Z                  if                  ($_____Inversion == $EXIST) then
$Z                                      # Possibilite introduite le 20080328145004 permettant de faire une inversion de la sphere...  #
$Z                                      #                                                                                             #
$Z                                      # ATTENTION : on notera que l'on ne teste pas si le centre d'inversion n'est pas, par         #
$Z                                      # malheur, l'un des points de la liste...                                                     #
$Z                                      $DELETE             $xTV/COORDONNEES_02$COORD_X
$Z                                      $DELETE             $xTV/COORDONNEES_02$COORD_Y
$Z                                      $DELETE             $xTV/COORDONNEES_02$COORD_Z

$Z                                      $xrv/ROTATION.01$X                                                                              \
$Z                                                          CAL1=FAUX                                                                   \
$Z                                                          ne=$_____NPoints                                                            \
$Z                                                          LISTE_X=$xTV/COORDONNEES_01$COORD_X                                         \
$Z                                                          LISTE_Y=$xTV/COORDONNEES_01$COORD_Y                                         \
$Z                                                          LISTE_Z=$xTV/COORDONNEES_01$COORD_Z                                         \
$Z                                                          rotation=VRAI                                                               \
$Z                                                          ROTATION_OX=$_____IRotationX                                                \
$Z                                                          ROTATION_OY=$_____IRotationY                                                \
$Z                                                          ROTATION_OZ=$_____IRotationZ                                                \
$Z                                                          pX=1 pY=0 pZ=0                                                              \
$Z                                                                                                  >   $xTV/COORDONNEES_02$COORD_X

$Z                                      $xrv/ROTATION.01$X                                                                              \
$Z                                                          CAL1=FAUX                                                                   \
$Z                                                          ne=$_____NPoints                                                            \
$Z                                                          LISTE_X=$xTV/COORDONNEES_01$COORD_X                                         \
$Z                                                          LISTE_Y=$xTV/COORDONNEES_01$COORD_Y                                         \
$Z                                                          LISTE_Z=$xTV/COORDONNEES_01$COORD_Z                                         \
$Z                                                          rotation=VRAI                                                               \
$Z                                                          ROTATION_OX=$_____IRotationX                                                \
$Z                                                          ROTATION_OY=$_____IRotationY                                                \
$Z                                                          ROTATION_OZ=$_____IRotationZ                                                \
$Z                                                          pX=0 pY=1 pZ=0                                                              \
$Z                                                                                                  >   $xTV/COORDONNEES_02$COORD_Y

$Z                                      $xrv/ROTATION.01$X                                                                              \
$Z                                                          CAL1=FAUX                                                                   \
$Z                                                          ne=$_____NPoints                                                            \
$Z                                                          LISTE_X=$xTV/COORDONNEES_01$COORD_X                                         \
$Z                                                          LISTE_Y=$xTV/COORDONNEES_01$COORD_Y                                         \
$Z                                                          LISTE_Z=$xTV/COORDONNEES_01$COORD_Z                                         \
$Z                                                          rotation=VRAI                                                               \
$Z                                                          ROTATION_OX=$_____IRotationX                                                \
$Z                                                          ROTATION_OY=$_____IRotationY                                                \
$Z                                                          ROTATION_OZ=$_____IRotationZ                                                \
$Z                                                          pX=0 pY=0 pZ=1                                                              \
$Z                                                                                                  >   $xTV/COORDONNEES_02$COORD_Z

$Z                                      $DELETE             $xTV/COORDONNEES_03$COORD_X
$Z                                      $DELETE             $xTV/COORDONNEES_03$COORD_Y
$Z                                      $DELETE             $xTV/COORDONNEES_03$COORD_Z

$Z                                      $xrv/inversion.01$X                                                                             \
$Z                                                          CAL1=FAUX                                                                   \
$Z                                                          ne=$_____NPoints                                                            \
$Z                                                          LISTE_X=$xTV/COORDONNEES_02$COORD_X                                         \
$Z                                                          LISTE_Y=$xTV/COORDONNEES_02$COORD_Y                                         \
$Z                                                          LISTE_Z=$xTV/COORDONNEES_02$COORD_Z                                         \
$Z                                                          LISTE_RAYON=$_____Rayon                                                     \
$Z                                                          Xpole=$_____InversionX                                                      \
$Z                                                          Ypole=$_____InversionY                                                      \
$Z                                                          Zpole=$_____InversionZ                                                      \
$Z                                                          pX=1 pY=0 pZ=0 pRAYON=0                                                     \
$Z                                                                                                  >   $xTV/COORDONNEES_03$COORD_X

$Z                                      $xrv/inversion.01$X                                                                             \
$Z                                                          CAL1=FAUX                                                                   \
$Z                                                          ne=$_____NPoints                                                            \
$Z                                                          LISTE_X=$xTV/COORDONNEES_02$COORD_X                                         \
$Z                                                          LISTE_Y=$xTV/COORDONNEES_02$COORD_Y                                         \
$Z                                                          LISTE_Z=$xTV/COORDONNEES_02$COORD_Z                                         \
$Z                                                          LISTE_RAYON=$_____Rayon                                                     \
$Z                                                          Xpole=$_____InversionX                                                      \
$Z                                                          Ypole=$_____InversionY                                                      \
$Z                                                          Zpole=$_____InversionZ                                                      \
$Z                                                          pX=0 pY=1 pZ=0 pRAYON=0                                                     \
$Z                                                                                                  >   $xTV/COORDONNEES_03$COORD_Y

$Z                                      $xrv/inversion.01$X                                                                             \
$Z                                                          CAL1=FAUX                                                                   \
$Z                                                          ne=$_____NPoints                                                            \
$Z                                                          LISTE_X=$xTV/COORDONNEES_02$COORD_X                                         \
$Z                                                          LISTE_Y=$xTV/COORDONNEES_02$COORD_Y                                         \
$Z                                                          LISTE_Z=$xTV/COORDONNEES_02$COORD_Z                                         \
$Z                                                          LISTE_RAYON=$_____Rayon                                                     \
$Z                                                          Xpole=$_____InversionX                                                      \
$Z                                                          Ypole=$_____InversionY                                                      \
$Z                                                          Zpole=$_____InversionZ                                                      \
$Z                                                          pX=0 pY=0 pZ=1 pRAYON=0                                                     \
$Z                                                                                                  >   $xTV/COORDONNEES_03$COORD_Z

$Z                                      $DELETE             $xTV/COORDONNEES_01$COORD_X
$Z                                      $DELETE             $xTV/COORDONNEES_01$COORD_Y
$Z                                      $DELETE             $xTV/COORDONNEES_01$COORD_Z

$Z                                      $MV                 $xTV/COORDONNEES_03$COORD_X $xTV/COORDONNEES_01$COORD_X
$Z                                      $MV                 $xTV/COORDONNEES_03$COORD_Y $xTV/COORDONNEES_01$COORD_Y
$Z                                      $MV                 $xTV/COORDONNEES_03$COORD_Z $xTV/COORDONNEES_01$COORD_Z
$Z                  else
$Z                  endif

$Z                  if                  ($_____CSpheriques == $EXIST) then
$Z                                      # Possibilite introduite le 20080313095345 : par defaut, l'objet genere est en coordonnees    #
$Z                                      # cartesiennes dans l'espace {X,Y,Z}, mais il est desormais possible de se placer dans        #
$Z                                      # l'espace {PHI,THETA,0}...                                                                   #
$Z                                      $DELETE             $xTV/COORDONNEES_01.PHI
$Z                                      $DELETE             $xTV/COORDONNEES_01.THETA

$Z                                      $xrv/XYZ_RPT.01$X                                                                               \
$Z                                                          CAL1=FAUX                                                                   \
$Z                                                          ne=$_____NPoints                                                            \
$Z                                                          LISTE_X=$xTV/COORDONNEES_01$COORD_X                                         \
$Z                                                          LISTE_Y=$xTV/COORDONNEES_01$COORD_Y                                         \
$Z                                                          LISTE_Z=$xTV/COORDONNEES_01$COORD_Z                                         \
$Z                                                          pRHO=0 pPHI=1 pTHETA=0                                                |     \
$Z                                      $xrv/normalise.01$X                                                                             \
$Z                                                          ne=$_____NPoints                                                            \
$Z                                                          fichier==                                                                   \
$Z                                                          mA=0 MA=$dpi forcer_extrema=VRAI                                            \
$Z                                                          mR=-1 MR=+1                                                                 \
$Z                                                                                                  >   $xTV/COORDONNEES_01.PHI

$Z                                      $xrv/XYZ_RPT.01$X                                                                               \
$Z                                                          CAL1=FAUX                                                                   \
$Z                                                          ne=$_____NPoints                                                            \
$Z                                                          LISTE_X=$xTV/COORDONNEES_01$COORD_X                                         \
$Z                                                          LISTE_Y=$xTV/COORDONNEES_01$COORD_Y                                         \
$Z                                                          LISTE_Z=$xTV/COORDONNEES_01$COORD_Z                                         \
$Z                                                          pRHO=0 pPHI=0 pTHETA=1                                                |     \
$Z                                      $xrv/normalise.01$X                                                                             \
$Z                                                          ne=$_____NPoints                                                            \
$Z                                                          fichier==                                                                   \
$Z                                                          mA=0 MA=$pi  forcer_extrema=VRAI                                            \
$Z                                                          mR=-1 MR=+1                                                                 \
$Z                                                                                                  >   $xTV/COORDONNEES_01.THETA

$Z                                      $DELETE             $xTV/COORDONNEES_01$COORD_X
$Z                                      $DELETE             $xTV/COORDONNEES_01$COORD_Y
$Z                                      $DELETE             $xTV/COORDONNEES_01$COORD_Z

$Z                                      $MV                 $xTV/COORDONNEES_01.PHI  $xTV/COORDONNEES_01$COORD_X
$Z                                      $MV                 $xTV/COORDONNEES_01.THETA $xTV/COORDONNEES_01$COORD_Y

$Z                                      $xrv/neutre$X                                                                                   \
$Z                                                          ne=$_____NPoints                                                            \
$Z                                                          fichier=0                                                                   \
$Z                                                                                                  >   $xTV/COORDONNEES_01$COORD_Z
$Z                                      # Ainsi, on se place dans l'espace {X=PHI,Y=THETA,Z=0}...                                     #
$Z                  else
$Z                  endif



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.