#!/bin/csh

#######################################################################################################################################
#                                                                                                                                     #
#         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   D ' U N E   S U R F A C E  :                                    #
#                                                                                                                                     #
#                                                                                                                                     #
#         Utilisation :                                                                                                               #
#                                                                                                                                     #
#              $xrs/project2D.01$Z <Generateur> <Projections> [<Args> [<ComposR1> [<ComposR2> [<ComposR3> [<InitProj> [<Norm>]]]]]]   #
#                                                                                                                                     #
#                                                                                                                                     #
#         Transformations :                                                                                                           #
#                                                                                                                                     #
#                     Je rappelle le 20200731152608 que si                                                                            #
#                   des transformations sont utilisees et                                                                             #
#                   definies dans '$Arguments' (par exemple                                                                           #
#                   "ROTATION_OY=..."), il est imperatif que                                                                          #
#                   '$Arguments' contiennent en plus :                                                                                #
#                                                                                                                                     #
#                                       transformer_projections=VRAI                                                                  #
#                                                                                                                                     #
#                                                                                                                                     #
#         Usage :                                                                                                                     #
#                                                                                                                                     #
#                     Je rappelle le 20190117135151 que cela                                                                          #
#                   fut utilise pour generer les entrelacs                                                                            #
#                   suivants :                                                                                                        #
#                                                                                                                                     #
#                                       avec $xrs/bKlein.41$X (voir 'v $xiirs/BKLN.43') :                                             #
#                                                                                                                                     #
#                                                           $xiirv/STRU.p1                                                            #
#                                                           $xiirv/STRU.t1                                                            #
#                                                                                                                                     #
#                                                                                                                                     #
#                                       avec $xrs/bKlein.61$X (voir 'v $xiirs/BKLN.52') :                                             #
#                                                                                                                                     #
#                                                           $xiirv/STRU.H2                                                            #
#                                                           $xiirv/STRU.Q2                                                            #
#                                                           $xiirv/STRU.R2                                                            #
#                                                           $xiirv/STRU.S2                                                            #
#                                                           $xiirv/STRU.U2                                                            #
#                                                           $xiirv/STRU.k2                                                            #
#                                                           $xiirv/STRU.r1                                                            #
#                                                           $xiirv/STRU.v1                                                            #
#                                                           $xiirv/STRV.K2                                                            #
#                                                           $xiirv/STRV.M2                                                            #
#                                                           $xiirv/STRV.d2                                                            #
#                                                           $xiirv/STRV.e2                                                            #
#                                                                                                                                     #
#                                                                                                                                     #
#                                       avec $xrs/plan.11 $X (voir 'v $xiirs/PLAN.11') :                                              #
#                                                                                                                                     #
#                                                           $xiirv/STRV.L4                                                            #
#                                                                                                                                     #
#                                                                                                                                     #
#                                       avec $xrs/sBoy.11$X (voir 'v $xiirs/SBOY.31') :                                               #
#                                                                                                                                     #
#                                                           $xiirv/STRU.H3                                                            #
#                                                           $xiirv/STRU.Q3                                                            #
#                                                           $xiirv/STRU.R3                                                            #
#                                                           $xiirv/STRU.S3                                                            #
#                                                           $xiirv/STRU.U3                                                            #
#                                                           $xiirv/STRU.k3                                                            #
#                                                           $xiirv/STRU.q1                                                            #
#                                                           $xiirv/STRU.u1                                                            #
#                                                           $xiirv/STRV.K3                                                            #
#                                                           $xiirv/STRV.M3                                                            #
#                                                           $xiirv/STRV.d3                                                            #
#                                                           $xiirv/STRV.e3                                                            #
#                                                                                                                                     #
#                                                                                                                                     #
#                                       avec $xrs/sphere.11$X (voir 'v $xiirs/SPHE.53') :                                             #
#                                                                                                                                     #
#                                                           $xiirv/STRU.H1                                                            #
#                                                           $xiirv/STRU.Q1                                                            #
#                                                           $xiirv/STRU.R1                                                            #
#                                                           $xiirv/STRU.S1                                                            #
#                                                           $xiirv/STRU.U1                                                            #
#                                                           $xiirv/STRU.k1                                                            #
#                                                           $xiirv/STRU.l1                                                            #
#                                                           $xiirv/STRU.s1                                                            #
#                                                           $xiirv/STRV.K1                                                            #
#                                                           $xiirv/STRV.M1                                                            #
#                                                           $xiirv/STRV.d1                                                            #
#                                                           $xiirv/STRV.e1                                                            #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xrs/project2D.01$Z' :                                                                                           #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20050905140928).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

set       Generateur=$1
set       Projections=$2
set       Arguments=($3)
                                        # Ce parametre permet d'introduire une liste quelconque de parametres de la commande          #
                                        # '$xrs/$Generateur'...                                                                       #
set       ComposR1=$4
set       ComposR2=$5
set       ComposR3=$6
set       InitProj=$7
                                        # Parametre introduit le 20060502143851 (a cause de 'v $xrs/sphere.11$I Pxyz_Sphere_1' en     #
                                        # particulier...).                                                                            #
set       Normalise=$8
                                        # Parametre introduit le 20060606095044 pour pouvoir bloquer la normalisation...              #
                                        #                                                                                             #
                                        # On notera que pour certains generateurs (par exemple 'v $xrs/ellipsoid.11$K'), on aura      #
                                        # interet a faire :                                                                           #
                                        #                                                                                             #
                                        #                   InitProj          = FAUX                                                  #
                                        #                   Normalise         = $NEXIST                                               #
                                        #                                                                                             #
                                        # afin que les eventuels arguments '$Arguments' qui correspondraient au parametrage du        #
                                        # generateur (par exemple 'v $xrs/ellipsoid.11$K PARAMETRE_A') soient effectivement pris      #
                                        # en compte...                                                                                #

setArgum  ComposR1                      $COORD_X

setArgum  ComposR2                      $COORD_Y

setArgum  ComposR3                      $COORD_Z

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

set       GenerateurEffectif=$Generateur

if        (! -e $GenerateurEffectif) then
                                        # Introduit le 20051217182832 afin de permettre de donner le '$xrs' ou pas...                 #
#20111214174028____:          set       GenerateurEffectif=$xrs/$GenerateurEffectif                                                   #
          SET1s     GenerateurEffectif = $xrs/$GenerateurEffectif
                                        # Introduit le 20051010140027 afin de permettre de donner le '$X' ou pas...                   #

          if        (! -e $GenerateurEffectif) then
#20111214174028____:                    set       GenerateurEffectif=$GenerateurEffectif$X                                            #
                    SET1s     GenerateurEffectif = $GenerateurEffectif$X
          else
          endif
else
endif

if        ("$InitProj" == "$K_VIDE") then
#20111214174028____:          set       InitProj=`GetParam $GenerateurEffectif initialisations_projection`                            #
          SET1s     InitProj = `GetParam $GenerateurEffectif initialisations_projection`
                                        # On notera que pour certains generateurs (par exemple 'v $xrs/ellipsoid.11$K'), on aura      #
                                        # interet a faire :                                                                           #
                                        #                                                                                             #
                                        #                   InitProj          = FAUX                                                  #
                                        #                   Normalise         = $NEXIST                                               #
                                        #                                                                                             #
                                        # afin que les eventuels arguments '$Arguments' qui correspondraient au parametrage du        #
                                        # generateur (par exemple 'v $xrs/ellipsoid.11$K PARAMETRE_A') soient effectivement pris      #
                                        # en compte...                                                                                #
else
endif

$GenerateurEffectif                                                                                                                     \
                    projeter=VRAI                                                                                                       \
                    projections_standard=FAUX                                                                                           \
                    initialisations_projection=$InitProj                                                                                \
                    imagePFx=$Projections$ComposR1                                                                                      \
                    imagePFy=$Projections$ComposR2                                                                                      \
                    imagePFz=$Projections$ComposR3                                                                                      \
                    $Arguments                                                                                                          \
                                                                                                    $formatI

if        ($Normalise == $EXIST) then
                                        # Test introduit le 20060606095044...                                                         #
          if        (("$ComposR1" == "$COORD_X") && ("$ComposR2" == "$COORD_Y") && ("$ComposR3" == "$COORD_Z")) then
                    execXYZ   $xci/normalise.01$X                                                                                       \
                                                  A=$Projections%s                                                                      \
                                                  origine=-1 extremite=1                                                                \
                                                  zero=VRAI                                                                             \
                                                  R=$Projections%s                                                                      \
                                                                                                              $formatI
                                        # La renormalisation dans [-1,+1] des projections a ete introduite le 20050907093830 et       #
                                        # n'est faite que si les composantes a generer sont {$COORD_X,$COORD_Y,$COORD_Z} et ce        #
                                        # a cause de la programmation de 'v $xci/genere$K 20050907092935'...                          #
          else
          endif
else
endif



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