#!/bin/csh

#######################################################################################################################################
#                                                                                                                                     #
#         G E N E R A T I O N   D E   L A   P A L E T T E   ' Divers.02 '  :                                                          #
#                                                                                                                                     #
#                                                                                                                                     #
#         Utilisation :                                                                                                               #
#                                                                                                                                     #
#                   $xigP/Divers.02$Z   [<FichiersXYZ> [<Mes> [<TailleM> [<MinX> [<MaxX> [<MinY> [<MaxY> [<Format> [<Bib>]]]]]]]]]    #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xigP/Divers.02$Z' :                                                                                             #
#                                                                                                                                     #
#                     Jean-Francois COLONNA (LACTAMME, 20230517121312).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

set       FichiersXYZ=$1

set       Message=$2
set       TailleMessage=$3

set       MinX=$4
set       MaxX=$5

set       MinY=$6
set       MaxY=$7

set       Format=$8

set       Bibliotheque=$9

setArgum  Message             "A"

#20230523112834____:setArgum  TailleMessage       20                                                                                  #
setArgum  TailleMessage       40

setArgum  MinX                0
setArgum  MaxX                1

setArgum  MinY                0
setArgum  MaxY                1

setArgum  Format              Std

setArgum  Bibliotheque        5
                                        # Argument introduit le 20230524090822...                                                     #

FilSTmpB  FStRuCtUrE

eval      "$Format"

set       OrIgInE_X=`$xci/coordonnees$X abscisse=VRAI ordonnee=FAUX normalisees=VRAI x=1 signe="$K_VIDE"`
set       OrIgInE_Y=`$xci/coordonnees$X abscisse=FAUX ordonnee=VRAI normalisees=VRAI y=1 signe="$K_VIDE"`
                                        # Cela est destine a garantir que les structures de type "AJ332JA" se raccordent a            #
                                        # elles-memes correctement (sans decalage...) lors de symetries par rapport a 'OX' et 'OY'.   #

set       NiVeAu_MeSsAGe=$BLANC

$xci/message$X                                                                                                                          \
                    A=$NOIR                                                                                                             \
                    taille=$TailleMessage                                                                                               \
                    SKH=FAUX                                                                                                            \
                    message="$Message"                                                                                                  \
                    niveau_message=$NiVeAu_MeSsAGe                                                                                      \
                    niveau_fond=$NOIR                                                                                                   \
                    lisere=FAUX                                                                                                         \
                    bibliotheque=$Bibliotheque                                                                                          \
                    x=-$OrIgInE_X                                                                                                       \
                    y=-$OrIgInE_Y                                                                                                       \
                    editer_XYN=VRAI editer_points_flottants=VRAI editer_points_hors_image=VRAI                                          \
                    Prme=VRAI                                                                                                           \
                    R=$FStRuCtUrE.image                                                                                                 \
                                                                                                                        $formatI        \
                                                                                                    >   $FStRuCtUrE.all
                                        # Le 20230520104757, l'option "editer_points_flottants=VRAI" afin d'eviter de vilaines        #
                                        # marches d'escalier dans 'v $xiirv/PEAN.P1' en particulier...                                #

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

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

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

$CA       $FStRuCtUrE.all                                                                                                         |     \
$GRE      -v '^ *$'                                                                                                               |     \
$AW       ' { print $1 " " $2 } '                                                                                                 |     \
$SE       -e "s/X=//" -e "s/Y=//"                                                                                                       \
                                                                                                    >>  $FStRuCtUrE

set       SeLeCtIoN="$K_VIDE"

if        ("$FichiersXYZ" == "$K_VIDE") then
          set       SeLeCtIoN="$SeLeCtIoN"" $xrv/selection.11$X"
          set       SeLeCtIoN="$SeLeCtIoN"" nombre=`calcul $COULEURS`"

          set       PaSsEs=10
else
          set       SeLeCtIoN="$SeLeCtIoN"" $xrv/neutre$X"

          set       PaSsEs=0
endif

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

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

$CA       $FStRuCtUrE                                                                                                             |     \
$SeLeCtIoN                                                                                                                              \
          ne=0 fichier==                                                                                                          |     \
$AW       ' { print "0" } '                                                                                                             \
                                                                                                    >   $FStRuCtUrE.9$COORD_Z

if        ("$FichiersXYZ" == "$K_VIDE") then
          $CA       $FStRuCtUrE.9$COORD_X                                                                                         |     \
          $xrv/normalise.01$X                                                                                                           \
                    ne=0 fichier==                                                                                                      \
                    minimum=$NOIR maximum=$BLANC                                                                                        \
                    formater=VRAI entier=VRAI signe="$K_VIDE"                                                                           \
                                                                                                              >   $FStRuCtUrE$COORD_X

          $CA       $FStRuCtUrE.9$COORD_Y                                                                                         |     \
          $xrv/normalise.01$X                                                                                                           \
                    ne=0 fichier==                                                                                                      \
                    minimum=$NOIR maximum=$BLANC                                                                                        \
                    formater=VRAI entier=VRAI signe="$K_VIDE"                                                                           \
                                                                                                              >   $FStRuCtUrE$COORD_Y

          $CA       $FStRuCtUrE.9$COORD_Z                                                                                         |     \
          $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
          set       ChIfFrEs=4

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

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

          $DELETE   $FichiersXYZ$COORD_Z
          $CA       $FStRuCtUrE.9$COORD_Z                                                                                         |     \
          $xrv/neutre$X                                                                                                                 \
                    ne=0 fichier==                                                                                                      \
                    ChiffresFlot=$ChIfFrEs                                                                                              \
                                                                                                              >   $FichiersXYZ$COORD_Z
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.