#!/bin/csh

#######################################################################################################################################
#                                                                                                                                     #
#         G E N E R A T I O N   D E   L A   P A L E T T E   ' Divers.12 '  :                                                          #
#                                                                                                                                     #
#                                                                                                                                     #
#         Utilisation :                                                                                                               #
#                                                                                                                                     #
#              $xigP/Divers.12$Z   [<F> [<M> [<T> [<mX> [<MX> [<mY> [<MY> [<mZ> [<MZ> [<Form> [<Bib> [<DM> [<C> <Arg>]]]]]]]]]]]]]]]  #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xigP/Divers.12$Z' :                                                                                             #
#                                                                                                                                     #
#                     Jean-Francois COLONNA (LACTAMME, 20230522101645).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

set       FichiersXYZ=$1

set       Message=$2
set       TailleMessage=$3

set       MinX=$4
set       MaxX=$5

set       MinY=$6
set       MaxY=$7

set       MinZ=$8
set       MaxZ=$9

set       Format=$10

set       Bibliotheque=$11

set       DistanceMini=$12
set       Cubique=$13

set       Arguments="$14"
                                        # Il est imperatif que la definition de '$Arguments' soit entre deux '$K_QD' si l'on veut     #
                                        # pouvoir recuperer correctement des arguments tel :                                          #
                                        #                                                                                             #
                                        #                   "LISTE_dX=1 LISTE_dY=1 LISTE_dZ=1"                                        #
                                        #                                                                                             #
                                        # par exemple...                                                                              #

#20230523110507____:setArgum  Message             "A"                                                                                 #
setArgum  Message             "F"

setArgum  TailleMessage       20

setArgum  MinX                0
setArgum  MaxX                1

setArgum  MinY                0
setArgum  MaxY                1

setArgum  MinZ                0
setArgum  MaxZ                1

setArgum  Format              Std

setArgum  Bibliotheque        5

setArgum  DistanceMini        `GetParam $xrv/particule.10$X distance_minimale`
setArgum  Cubique             FAUX

setArgum  Arguments           "$K_VIDE"

eval      "$Format"

set       NiVeAu_MeSsAGe=$BLANC

FilSTmpB  FStRuCtUrE

$xci/message$X                                                                                                                          \
                    A=$NOIR                                                                                                             \
                    taille=$TailleMessage                                                                                               \
                    SKH=FAUX                                                                                                            \
                    message="$Message"                                                                                                  \
                    niveau_message=$NiVeAu_MeSsAGe                                                                                      \
                    niveau_fond=$NOIR                                                                                                   \
                    lisere=FAUX                                                                                                         \
                    bibliotheque=$Bibliotheque                                                                                          \
                    editer_vecteur_3D=VRAI                                                                                              \
                    Prme=VRAI                                                                                                           \
                    R=$FStRuCtUrE.image1                                                                                                \
                                                                                                                        $formatI        \
                                                                                          >   $FStRuCtUrE.all

if        ($NEXIST) then
          $xci/display$X                                                                                                                \
                              A=$FStRuCtUrE.image1                                                                                      \
                                                                                                                        $formatI  &

          $xci/Sx$X                                                                                                                     \
                              A=$FStRuCtUrE.image1                                                                                      \
                                                                                                                        $formatI  |     \
          $xci/display$X                                                                                                                \
                              xc=1 yc=0                                                                                                 \
                                                                                                                        $formatI  &

          $xci/Sy$X                                                                                                                     \
                              A=$FStRuCtUrE.image1                                                                                      \
                                                                                                                        $formatI  |     \
          $xci/display$X                                                                                                                \
                              xc=0 yc=1                                                                                                 \
                                                                                                                        $formatI  &
else
endif

$CA       $FStRuCtUrE.all                                                                                                         |     \
$GRE      -v '^ *$'                                                                                                               |     \
$R        "{}" " "                                                                                                                |     \
$AW       ' { print $3 "\n" $6 } '                                                                                                |     \
$R        "," " "                                                                                                                 |     \
$SE       -e "s/X=//" -e "s/Y=//" -e "s/Z=//"                                                                                           \
                                                                                          >>  $FStRuCtUrE

if        ("$FichiersXYZ" == "$K_VIDE") then
          set       PaSsEs=10
else
          set       PaSsEs=0
endif

if        ($EXIST) then
                                        # Test introduit le 20230523095546...                                                         #
          set       COORD_X_PeRmUtEe=$COORD_Z
          set       COORD_Y_PeRmUtEe=$COORD_Y
          set       COORD_Z_PeRmUtEe=$COORD_X
                                        # Et ce afin d'etre compatible avec 'v $xci/valeurs_TransformationPeano3D$K 20220428110814'.  #
else
          set       COORD_X_PeRmUtEe=$COORD_X
          set       COORD_Y_PeRmUtEe=$COORD_Y
          set       COORD_Z_PeRmUtEe=$COORD_Z
endif

$CA       $FStRuCtUrE                                                                                                             |     \
$AW       ' { print $1 } '                                                                                                        |     \
$xrv/normalise.01$X                                                                                                                     \
          ne=0 fichier==                                                                                                                \
          minimum=$MinX    maximum=$MaxX                                                                                          |     \
$xrv/lissage.01$X                                                                                                                       \
          ne=0 fichier==                                                                                                                \
          passes=$PaSsEs                                                                                                                \
                                                                                          >   $FStRuCtUrE.9$COORD_X_PeRmUtEe

$CA       $FStRuCtUrE                                                                                                             |     \
$AW       ' { print $2 } '                                                                                                        |     \
$xrv/normalise.01$X                                                                                                                     \
          ne=0 fichier==                                                                                                                \
          minimum=$MinY   maximum=$MaxY                                                                                           |     \
$xrv/lissage.01$X                                                                                                                       \
          ne=0 fichier==                                                                                                                \
          passes=$PaSsEs                                                                                                                \
                                                                                          >   $FStRuCtUrE.9$COORD_Y_PeRmUtEe


$CA       $FStRuCtUrE                                                                                                             |     \
$AW       ' { print $3 } '                                                                                                        |     \
$xrv/normalise.01$X                                                                                                                     \
          ne=0 fichier==                                                                                                                \
          minimum=$MinZ   maximum=$MaxZ                                                                                           |     \
$xrv/lissage.01$X                                                                                                                       \
          ne=0 fichier==                                                                                                                \
          passes=$PaSsEs                                                                                                                \
                                                                                          >   $FStRuCtUrE.9$COORD_Z_PeRmUtEe

set       ChIfFrEs=4

$CA       $FStRuCtUrE.9$COORD_X                                                                                                   |     \
$xrv/neutre$X                                                                                                                           \
          ne=0 fichier==                                                                                                                \
          ChiffresFlot=$ChIfFrEs                                                                                                        \
                                                                                          >   $FStRuCtUrE.8$COORD_X

$CA       $FStRuCtUrE.9$COORD_Y                                                                                                   |     \
$xrv/neutre$X                                                                                                                           \
          ne=0 fichier==                                                                                                                \
          ChiffresFlot=$ChIfFrEs                                                                                                        \
                                                                                          >   $FStRuCtUrE.8$COORD_Y

$CA       $FStRuCtUrE.9$COORD_Z                                                                                                   |     \
$xrv/neutre$X                                                                                                                           \
          ne=0 fichier==                                                                                                                \
          ChiffresFlot=$ChIfFrEs                                                                                                        \
                                                                                          >   $FStRuCtUrE.8$COORD_Z

set       NpartX=`$CA $FStRuCtUrE.8$COORD_X | $WCl`
set       NpartY=`$CA $FStRuCtUrE.8$COORD_Y | $WCl`
set       NpartZ=`$CA $FStRuCtUrE.8$COORD_Z | $WCl`

set       Npart=`$xcg/MIN3.01$X x=$NpartX y=$NpartY z=$NpartZ`

$xrv/particule.10$X                                                                                                                     \
          np=1 iterations=$Npart                                                                                                        \
          LISTE_X=$FStRuCtUrE.8$COORD_X                                                                                                 \
          LISTE_Y=$FStRuCtUrE.8$COORD_Y                                                                                                 \
          LISTE_Z=$FStRuCtUrE.8$COORD_Z                                                                                                 \
          isoles=FAUX chainer=FAUX                                                                                                      \
          ajuster_points=VRAI                                                                                                           \
          equidistance=VRAI compatibilite_20051230=FAUX                                                                                 \
          distance_minimale=$DistanceMini                                                                                               \
          cubique=$Cubique                                                                                                              \
          RVB=VRAI                                                                                                                      \
          N_AU_CARRE=VRAI                                                                                                               \
          editer_extrema_hors=FAUX                                                                                                      \
          lister_les_points=VRAI lister_les_points_apres=VRAI                                                                           \
          chiffres=0                                                                                                                    \
          R=$FStRuCtUrE.image2                                                                                                          \
          $Arguments                                                                                                                    \
                                                                                                              $formatI                  \
                                                                                          >   $FStRuCtUrE.7

if        ("$FichiersXYZ" == "$K_VIDE") then
          $CA       $FStRuCtUrE.7                                                                                                 |     \
          $AW       ' { print $3 } '                                                                                              |     \
          $SE       -e "s/^.*=//"                                                                                                 |     \
          $xrv/selection.11$X                                                                                                           \
                    ne=0 fichier==                                                                                                      \
                    nombre=$COULEURS                                                                                              |     \
          $xrv/normalise.01$X                                                                                                           \
                    ne=0 fichier==                                                                                                      \
                    minimum=$NOIR maximum=$BLANC                                                                                        \
                    formater=VRAI entier=VRAI signe="$K_VIDE"                                                                           \
                                                                                                    >   $FStRuCtUrE$COORD_X

          $CA       $FStRuCtUrE.7                                                                                                 |     \
          $AW       ' { print $4 } '                                                                                              |     \
          $SE       -e "s/^.*=//"                                                                                                 |     \
          $xrv/selection.11$X                                                                                                           \
                    ne=0 fichier==                                                                                                      \
                    nombre=$COULEURS                                                                                              |     \
          $xrv/normalise.01$X                                                                                                           \
                    ne=0 fichier==                                                                                                      \
                    minimum=$NOIR maximum=$BLANC                                                                                        \
                    formater=VRAI entier=VRAI signe="$K_VIDE"                                                                           \
                                                                                                    >   $FStRuCtUrE$COORD_Y

          $CA       $FStRuCtUrE.7                                                                                                 |     \
          $AW       ' { print $5 } '                                                                                              |     \
          $SE       -e "s/^.*=//"                                                                                                 |     \
          $xrv/selection.11$X                                                                                                           \
                    ne=0 fichier==                                                                                                      \
                    nombre=$COULEURS                                                                                              |     \
          $xrv/normalise.01$X                                                                                                           \
                    ne=0 fichier==                                                                                                      \
                    minimum=$NOIR maximum=$BLANC                                                                                        \
                    formater=VRAI entier=VRAI signe="$K_VIDE"                                                                           \
                                                                                                    >   $FStRuCtUrE$COORD_Z

          set       VaLide_X=`$CA $FStRuCtUrE$COORD_X | $WCl`
          set       VaLide_Y=`$CA $FStRuCtUrE$COORD_Y | $WCl`
          set       VaLide_Z=`$CA $FStRuCtUrE$COORD_Z | $WCl`

          if        (($VaLide_X == $COULEURS) && ($VaLide_Y == $COULEURS) && ($VaLide_Z == $COULEURS)) then
     set  numeros   = (`$xci/valeurs_inte$X p=$NOIR d=$BLANC vD=$NOIR_PLANCHER vA=$COULEURS cubique=FAUX entiers=VRAI signe="$K_VIDE"`)
     set  niveaux   = (`$xci/valeurs_inte$X p=$NOIR d=$BLANC vD=$NOIR          vA=$BLANC    cubique=FAUX entiers=VRAI signe="$K_VIDE"`)
     set  fonction  = (`repeat $COULEURS echo "N "`)
                    set       rouge     = (`$CA $FStRuCtUrE$COORD_X`)
                    set       verte     = (`$CA $FStRuCtUrE$COORD_Y`)
                    set       bleue     = (`$CA $FStRuCtUrE$COORD_Z`)

                    source    $xigP/.INTERPOLE$Y
          else
                    EROR      "Il n'a pas ete possible de generer '$COULEURS' niveaux."
          endif
else
          $DELETE   $FichiersXYZ$COORD_X
          $DELETE   $FichiersXYZ$COORD_Y
          $DELETE   $FichiersXYZ$COORD_Z

          $CA       $FStRuCtUrE.7                                                                                                 |     \
          $AW       ' { print $3 } '                                                                                              |     \
          $SE       -e "s/^.*=//"                                                                                                 |     \
          $xrv/normalise.01$X                                                                                                           \
                    ne=0 fichier==                                                                                                      \
                    minimum=$MinX    maximum=$MaxX                                                                                      \
                                                                                                    >   $FichiersXYZ$COORD_X

          $CA       $FStRuCtUrE.7                                                                                                 |     \
          $AW       ' { print $4 } '                                                                                              |     \
          $SE       -e "s/^.*=//"                                                                                                 |     \
          $xrv/normalise.01$X                                                                                                           \
                    ne=0 fichier==                                                                                                      \
                    minimum=$MinY    maximum=$MaxY                                                                                      \
                                                                                                    >   $FichiersXYZ$COORD_Y

          $CA       $FStRuCtUrE.7                                                                                                 |     \
          $AW       ' { print $5 } '                                                                                              |     \
          $SE       -e "s/^.*=//"                                                                                                 |     \
          $xrv/normalise.01$X                                                                                                           \
                    ne=0 fichier==                                                                                                      \
                    minimum=$MinZ    maximum=$MaxZ                                                                                      \
                                                                                                    >   $FichiersXYZ$COORD_Z

          $DELETE   $FichiersXYZ.extremites$COORD_X
          $DELETE   $FichiersXYZ.extremites$COORD_Y
          $DELETE   $FichiersXYZ.extremites$COORD_Z

          $CA       $FStRuCtUrE.8$COORD_X                                                                                               \
                                                                                                    >   $FichiersXYZ.extremites$COORD_X
          $CA       $FStRuCtUrE.8$COORD_Y                                                                                               \
                                                                                                    >   $FichiersXYZ.extremites$COORD_Y
          $CA       $FStRuCtUrE.8$COORD_Z                                                                                               \
                                                                                                    >   $FichiersXYZ.extremites$COORD_Z
                                        # La memorisation des extremites des segments a ete introduite le 20230526132633 pour         #
                                        # 'v $xiirv/$Fnota Debut_listG_PEAN_Q2_G_1'...                                                #
endif

FilSTmpE  FStRuCtUrE



Copyright © Jean-François COLONNA, 2023-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2023-2024.