#!/bin/csh

#######################################################################################################################################
#                                                                                                                                     #
#         C O N S T R U C T I O N   D ' U N E   S U R F A C E   A   P A R T I R                                                       #
#         D E   S E S   T R O I S   P S E U D O - P R O J E C T I O N S   F L O T T A N T E S  :                                      #
#                                                                                                                                     #
#                                                                                                                                     #
#         Utilisation :                                                                                                               #
#                                                                                                                                     #
#    $xrs/project2D.02$Z <Proj> <ImR> [<Args> [<CR1> [<CR2> [<CR3> [<Zoo> [<Rx> [<Ry> [<Rz> [<Zero> [<U> [<V> [<N> [<Nu>]]]]]]]]]]]]] #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xrs/project2D.02$Z' :                                                                                           #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20050904162759).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

set       Projection=$1
                                        # Les pseudo-projections auront pu etre generees par 'v $xrs/project2D.01$Z' par exemple...   #
set       ImageR=$2
set       Arguments=($3)
                                        # Ce parametre permet d'introduire une liste quelconque de parametres de la commande          #
                                        # '$xrs/project2D.11$X' (a condition de la "quoter") et par exemple :                         #
                                        #                                                                                             #
                                        #                   "dpu=10 dpv=10 N_AU_CARRE=FAUX"                                           #
                                        #                                                                                             #
                                        # qui permet d'accelerer le calcul. Ou encore :                                               #
                                        #                                                                                             #
                                        #                   'TR=$TeMpOrAiRe$COORD_X                                                   #
                                        #                    TV=$TeMpOrAiRe$COORD_Y                                                   #
                                        #                    TB=$TeMpOrAiRe$COORD_Z                                                   #
                                        #                    ROUGE_T=1 VERTE_T=1 BLEUE_T=1                                            #
                                        #                    textures_standard=FAUX'                                                  #
                                        #                                                                                             #
                                        # (en notant bien l'usage des '$K_QS's) qui permettra de "mapper" sur la surface elle-meme    #
                                        # sa "pseudo-projection" utilisee alors comme texture (introduit le 20100528093738...).       #
set       ComposR1=$4
set       ComposR2=$5
set       ComposR3=$6
set       Zoom=$7
set       RotationX=$8
set       RotationY=$9
set       RotationZ=$10
set       Zero=$11
                                        # Parametre introduit le 20050914150949 pour 'v $xci/normalise.01$K zero=' :                  #
                                        #                                                                                             #
                                        #                    zero=FAUX         : la renormalisation aura bien lieu dans [-1,+1],      #
                                        #                                                                                             #
                                        #                    zero=VRAI         : le zero est conserve et donc la renormalisation      #
                                        #                                        n'aura pas lieu dans [-1,+1]...                      #
                                        #                                                                                             #
set       CoordonneeU=$12
set       CoordonneeV=$13
                                        # Les parametres relatives a la definition des coordonnees {U,V} ont ete introduits le        #
                                        # 20060120092726...                                                                           #
set       Normalise=$14
                                        # Parametre introduit le 20060606095351 pour pouvoir bloquer la normalisation...              #
set       Nullite=$15
                                        # Parametre introduit le 20081228103428 pour pouvoir resoudre des problemes du type de celui  #
                                        # apparu lors du calcul de 'v $xiirs/PROJ.a3' pour laquelle la composante '$COORD_Y' du       #
                                        # produit matriciel etait dans [-5.12e-12,+5.12e-12] et donc quasiment nulle...               #

if        (("$CoordonneeU" == "$K_VIDE") || ("$CoordonneeV" == "$K_VIDE")) then
          set       CoordonneeUV="UV_transformer=FAUX"
else
          set       CoordonneeUV="UV_transformer=VRAI imageU=$CoordonneeU imageV=$CoordonneeV"
endif

setArgum  ComposR1                      $COORD_X

setArgum  ComposR2                      $COORD_Y

setArgum  ComposR3                      $COORD_Z

setArgum  Zoom                          0.8

setArgum  RotationX                     0

setArgum  RotationY                     0

setArgum  RotationZ                     0

setArgum  Zero                          VRAI

setArgum  Normalise                     $EXIST
                                        # Par defaut, la normalisation a lieu afin d'assurer la compatibilite anterieure...           #

setArgum  Nullite                       `GetParam $xci/normalise.01$X amplitude_nullite`
                                        # Par defaut, la normalisation a lieu afin d'assurer la compatibilite anterieure...           #

FileTmpB            TeMpOrAiRe
                                        # Definition de fichiers temporaires...                                                       #

if        ($Normalise == $EXIST) then
                                        # Test introduit le 20060606095351...                                                         #
          $xci/normalise.01$X                                                                                                           \
                              A=$Projection$ComposR1                                                                                    \
                              origine=-1 extremite=1                                                                                    \
                              amplitude_nullite=$Nullite                                                                                \
                              zero=$Zero                                                                                                \
                              R=$TeMpOrAiRe$COORD_X                                                                                     \
                                                                                                              $formatI
          $xci/normalise.01$X                                                                                                           \
                              A=$Projection$ComposR2                                                                                    \
                              origine=-1 extremite=1                                                                                    \
                              amplitude_nullite=$Nullite                                                                                \
                              zero=$Zero                                                                                                \
                              R=$TeMpOrAiRe$COORD_Y                                                                                     \
                                                                                                              $formatI
          $xci/normalise.01$X                                                                                                           \
                              A=$Projection$ComposR3                                                                                    \
                              origine=-1 extremite=1                                                                                    \
                              amplitude_nullite=$Nullite                                                                                \
                              zero=$Zero                                                                                                \
                              R=$TeMpOrAiRe$COORD_Z                                                                                     \
                                                                                                              $formatI
                                        # Mise des coordonnees dans [-1,+1]. Le 20050905120449, la conservation du zero a ete         #
                                        # introduite...                                                                               #
else
          $xci/neutre$X                                                                                                                 \
                              A=$Projection$ComposR1                                                                                    \
                              standard=FAUX                                                                                             \
                              R=$TeMpOrAiRe$COORD_X                                                                                     \
                                                                                                              $formatI
          $xci/neutre$X                                                                                                                 \
                              A=$Projection$ComposR2                                                                                    \
                              standard=FAUX                                                                                             \
                              R=$TeMpOrAiRe$COORD_Y                                                                                     \
                                                                                                              $formatI
          $xci/neutre$X                                                                                                                 \
                              A=$Projection$ComposR3                                                                                    \
                              standard=FAUX                                                                                             \
                              R=$TeMpOrAiRe$COORD_Z                                                                                     \
                                                                                                              $formatI
                                        # Introduit le 20060913135228 car manquait...                                                 #
endif

set                 Parametres="$K_VIDE"

#20090701180320____:set                 Parametres="$Parametres"" np=1"                                                               #
set                 Parametres="$Parametres"" brume=FAUX"

set                 Parametres="$Parametres"" $CoordonneeUV"
                                        # Cette possibilite a ete introduite le 20060120092726...                                     #
set                 Parametres="$Parametres"" mu=0 Mu=1"
set                 Parametres="$Parametres"" mv=0 Mv=1"
set                 Parametres="$Parametres"" pu=0.02 pv=0.02"
set                 Parametres="$Parametres"" eu=20   ev=20"
set                 Parametres="$Parametres"" dpu=40  dpv=40"
set                 Parametres="$Parametres"" Fx_periodiser_u=FAUX Fy_periodiser_u=FAUX Fz_periodiser_u=FAUX"
set                 Parametres="$Parametres"" Fx_symetriser_u=FAUX Fy_symetriser_u=FAUX Fz_symetriser_u=FAUX"
set                 Parametres="$Parametres"" Fx_prolonger_u=VRAI  Fy_prolonger_u=VRAI  Fz_prolonger_u=VRAI"
set                 Parametres="$Parametres"" Fx_periodiser_v=FAUX Fy_periodiser_v=FAUX Fz_periodiser_v=FAUX"
set                 Parametres="$Parametres"" Fx_symetriser_v=FAUX Fy_symetriser_v=FAUX Fz_symetriser_v=FAUX"
set                 Parametres="$Parametres"" Fx_prolonger_v=VRAI  Fy_prolonger_v=VRAI  Fz_prolonger_v=VRAI"
set                 Parametres="$Parametres"" bilineaire=VRAI"
                                        # Le 20050905134422, j'ai introduit l'option "bilineaire=VRAI" destinee a faire de            #
                                        # l'interpolation bilineaire (et non bicubique) dans 'FFload_point_coordonnees_01(...)'       #
                                        # ce qui permet d'eviter des points "incoherents" qui peuvent apparaitre au voisinage         #
                                        # des extrema des coordonnees 'u' et 'v'...                                                   #
set                 Parametres="$Parametres"" ddu=0.01 ddv=0.01"
                                        # Le 20050905135832, "ddu=" et "ddv=" ont ete introduits afin d'avoir de jolies couleurs...   #

set                 Parametres="$Parametres"" ZOOM=$Zoom"
set                 Parametres="$Parametres"" ROTATION_OX=$RotationX"
set                 Parametres="$Parametres"" ROTATION_OY=$RotationY"
set                 Parametres="$Parametres"" ROTATION_OZ=$RotationZ"
set                 Parametres="$Parametres"" Lz=100"
set                 Parametres="$Parametres"" rayon_de_visualisation=0.015"
set                 Parametres="$Parametres"" N_AU_CARRE=VRAI"
set                 Parametres="$Parametres"" edc=VRAI"

#20100528093738____:set                 Parametres="$Parametres"" $Arguments"                                                         #
set                 Parametres="$Parametres"" `eval echo $Arguments`"
                                        # Afin de permettre de "mapper" la "pseudo-projection" sur la surface elle-meme a l'aide      #
                                        # du '$Arguments' suivant :                                                                   #
                                        #                                                                                             #
                                        #                   'TR=$TeMpOrAiRe$COORD_X                                                   #
                                        #                    TV=$TeMpOrAiRe$COORD_Y                                                   #
                                        #                    TB=$TeMpOrAiRe$COORD_Z                                                   #
                                        #                    ROUGE_T=1 VERTE_T=1 BLEUE_T=1                                            #
                                        #                    textures_standard=FAUX'                                                  #
                                        #                                                                                             #
                                        # (en notant bien l'usage des '$K_QS's). Ceci fut introduit le 20100528093738...              #

#20090701094308____:set                 NombreImages=1                                                                                #
set                 NombreImagesX=1
set                 NombreImagesY=1
set                 NombreImagesZ=1
                                        # Introduit le 20090701094157. A priori, une seule image va etre generee...                   #

if                  ($RotationX != 0) then
                    if                  (-e $RotationX) then
                                        set                 NombreImagesX=`$CA $RotationX | $WCl | $AW ' { print $1 } '`
                                        # L'utilisation d'un fichier pour '$RotationX' a ete introduite le 20090701094308...          #
                    else
                    endif
else
endif

if                  ($RotationY != 0) then
                    if                  (-e $RotationY) then
                                        set                 NombreImagesY=`$CA $RotationY | $WCl | $AW ' { print $1 } '`
                                        # L'utilisation d'un fichier pour '$RotationY' a ete introduite le 20090701094308...          #
                    else
                    endif
else
endif

if                  ($RotationZ != 0) then
                    if                  (-e $RotationZ) then
                                        set                 NombreImagesZ=`$CA $RotationZ | $WCl | $AW ' { print $1 } '`
                                        # L'utilisation d'un fichier pour '$RotationZ' a ete introduite le 20090701094308...          #
                    else
                    endif
else
endif

#20090722131727____:set                 NombreImages=`$xcg/MAX3.01$X x=$NombreImagesX y=$NombreImagesY z=$NombreImagesZ entier=VRAI`  #
set                 NombreImages=`$xcg/MAX3.01$X x=$NombreImagesX y=$NombreImagesY z=$NombreImagesZ entier=VRAI signe="$K_VIDE"`
                                        # L'utilisation de fichiers pour les rotations a ete introduite le 20090701094308...          #
#20090701100601____:set                 NombreChiffres=0                                                                              #
                                        # Le nombre de chiffres pour les noms d'image doit alors etre "parametrable" (ceci fut        #
                                        # introduit le 20090701100302...).                                                            #

if                  ($NombreImages == 1) then
                    set                 NombreChiffres=0
else
                    set                 NombreChiffres=`GetParam $xrs/project2D.11$X chiffres`
endif

$xrs/project2D.11$X                                                                                                                     \
                    np=$NombreImages                                                                                                    \
                    Fx=$TeMpOrAiRe$COORD_X                                                                                              \
                    Fy=$TeMpOrAiRe$COORD_Y                                                                                              \
                    Fz=$TeMpOrAiRe$COORD_Z                                                                                              \
                    $Parametres                                                                                                         \
                    R=$ImageR                                                                                                           \
                    chiffres=$NombreChiffres                                                                                            \
                                                                                                    $formatI
                                        # Visualisation de la surface...                                                              #

FileTmpE            TeMpOrAiRe



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