#!/bin/csh ####################################################################################################################################### # # # P E R M U T A T I O N D E S T R O I S C O M P O S A N T E S D ' U N E I M A G E : # # # # # # Utilisation : # # # # $xci/permute_RVB.11$Z <imageA> <imageR> [<CoA1> [<CoA2> [<CoA3> [<CoR1> [<CoR2> [<CoR3>]]]]]] # # <imageA> <imageR> [RVB|RBV|VBR|VRB|BRV|BVR] # # <imageA> <imageR> [-RVB|-RBV|-VBR|-VRB|-BRV|-BVR] # # # # # # Author of '$xci/permute_RVB.11$Z' : # # # # Jean-Francois Colonna (LACTAMME, 20121211110008). # # # ####################################################################################################################################### set imageA=$1 set imageR=$2 set ComposA1=$3 set ComposA2=$4 set ComposA3=$5 set ComposR1=$6 set ComposR2=$7 set ComposR3=$8 # Le 20161130115625, je note la facon suivante d'explorer visuellement les six possibilites # # pour l'image '$ImAgE' : # # # # # # :Debut_listG_Les_6_RVB: # # # # $Z ext Sud # # $Z ext Pud # # # # $Z set ImAgE=... # # # # $Z setenv xTV $xTG # # # # $Z alias All 'set ImA=\!:1 ; set RvB=\!:2 ; set CoX=\!:3 ; set CoY=\!:4 ; \\ # # $Z set ImR=$xTV/IMAGE.$RvB ; \\ # # $Z $xci/permute_RVB.11$Z $ImA $ImR $RvB ; \\ # # $Z v $ImR Fc=FAUX xc=$CoX yc=$CoY ; \\ # # $Z unset ImR ImA RvB CoX CoY' # # # # $Z All $ImAgE RVB 0 0.5 # # $Z All $ImAgE RBV 1 0.5 # # $Z All $ImAgE VBR 0 1.5 # # $Z All $ImAgE VRB 1 1.5 # # $Z All $ImAgE BRV 0 2.5 # # $Z All $ImAgE BVR 1 2.5 # # # # :Fin_listG_Les_6_RVB: # # # # # # puis : # # # # listG $xci/permute_RVB.11$Z :Debut_listG_""Les_6_RVB: :Fin_listG_""Les_6_RVB: # # # # (les double-quotes "" sont destinees a eviter les messages # # 'v $xEa/listMN$vv$Y _____est_multiplement_definie'). # # # # L'utilisation de '$xTV' est destinee a minimser l'espace disque utilise dans le cas # # ou plusieurs '$xci/permute_RVB.11$Z's de suite sont effectues... # if ( ( ("$ComposA1" != "$ROUGE") \ && ("$ComposA1" != "$VERTE") \ && ("$ComposA1" != "$BLEUE") \ ) \ && ( ("$ComposA2" == "$K_VIDE") \ && ("$ComposA3" == "$K_VIDE") \ && ("$ComposR1" == "$K_VIDE") \ && ("$ComposR2" == "$K_VIDE") \ && ("$ComposR3" == "$K_VIDE") \ ) \ ) then # Test introduit le 20141125162059... # set Permutation="$ComposA1" set ComposA1=$ROUGE set ComposA2=$VERTE set ComposA3=$BLEUE switch ("$Permutation") # Cette possibilite d'inverser explicitement le processus a ete introduite le 20200424100104. # case "-RVB": set Permutation="RVB" breaksw case "-RBV": set Permutation="RBV" breaksw case "-VBR": set Permutation="BRV" breaksw case "-VRB": set Permutation="VRB" breaksw case "-BRV": set Permutation="VBR" breaksw case "-BVR": set Permutation="BVR" breaksw default: breaksw endsw switch ("$Permutation") # Cette possibilite d'introduire symboliquement la permutation des composantes a ete # # introduite le 20141125162059... # case "RVB": set ComposR1=$ROUGE set ComposR2=$VERTE set ComposR3=$BLEUE breaksw case "RBV": set ComposR1=$ROUGE set ComposR2=$BLEUE set ComposR3=$VERTE breaksw case "VBR": set ComposR1=$VERTE set ComposR2=$BLEUE set ComposR3=$ROUGE breaksw case "VRB": set ComposR1=$VERTE set ComposR2=$ROUGE set ComposR3=$BLEUE breaksw case "BRV": set ComposR1=$BLEUE set ComposR2=$ROUGE set ComposR3=$VERTE breaksw case "BVR": set ComposR1=$BLEUE set ComposR2=$VERTE set ComposR3=$ROUGE breaksw default: EROR "['"'$Falias_Arch'"'] La permutation '$Permutation' n'est pas reconnue." set ComposR1=$ROUGE set ComposR2=$VERTE set ComposR3=$BLEUE breaksw endsw if ($NEXIST) then # Afin de pouvoir editer les permutations inverses... # set Permutation=`echo "$Permutation" | $SE -e "s/\(.\)/\1 /"g | $R "[RVB]" "[123]"` set Neutre=("R" "V" "B") set Inverse=("$K_VIDE" "$K_VIDE" "$K_VIDE") set Index=1 foreach Element ($Permutation) set Inverse[$Element]=$Neutre[$Index] @ Index = $Index + 1 end set Inverse=`echo "$Inverse" | $SE -e "s/ *//g"` echo "Permutationinverse : $Inverse" # Liste des permutations directes et de leurs inverses : # # # # 1-Cas "inverse=directe" (une ou les trois composante(s) ne bouge(nt) pas -"="-) : # # # # RVB -o-> RVB # # === === # # # # RBV -o-> RBV # # = = # # # # BVR -o-> BVR # # = = # # # # VRB -o-> VRB # # = = # # # # # # 2-Cas "inverse#directe" (toutes les composantes bougent grace a un decalage circulaire # # d'une position -"<" ou ">"-) : # # # # VBR -o-> BRV # # < # # [BRV] # # # # BRV -o-> VBR # # > # # [VBR] # # # else endif else if ("$ComposA1" == "$K_VIDE") then set ComposA1=$ROUGE else endif if ("$ComposA2" == "$K_VIDE") then set ComposA2=$VERTE else endif if ("$ComposA3" == "$K_VIDE") then set ComposA3=$BLEUE else endif if ("$ComposR1" == "$K_VIDE") then set ComposR1=$ROUGE else endif if ("$ComposR2" == "$K_VIDE") then set ComposR2=$VERTE else endif if ("$ComposR3" == "$K_VIDE") then set ComposR3=$BLEUE else endif endif FilSTmpB imageT set Arguments="standard=VRAI" $xci/acces$X A=$imageA$ComposA1 $Arguments R=$imageT$ComposR1 $formatI $xci/acces$X A=$imageA$ComposA2 $Arguments R=$imageT$ComposR2 $formatI $xci/acces$X A=$imageA$ComposA3 $Arguments R=$imageT$ComposR3 $formatI # Et permutation des composantes... # execRVB $xci/neutre$X A=$imageT%s R=$imageR%s $formatI # Le passage par une image intermediaire a ete introduit le 20130206133053 afin de # # permettre aux images '$imageA' et 'imageR' d'etre identiques... # FilSTmpE imageT