#!/bin/csh
#######################################################################################################################################
# #
# C O N S T R U C T I O N D ' U N C A R R E L A G E P A R #
# D U P L I C A T I O N D ' U N M O R C E A U D ' I M A G E : #
# #
# #
# Utilisation : #
# #
# $xci/carrelage.01$Z <imageA> <imageR> <NbandeV> <NbandeH> [<affine>] #
# #
# #
# Author of '$xci/carrelage.01$Z' : #
# #
# Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). #
# #
#######################################################################################################################################
set imageA=$1
set imageR=$2
set NbandeV=$3
set NbandeH=$4
set affine=$5
setArgum NbandeV 1
# Nombre de bandes Verticales a priori... #
setArgum NbandeH 1
# Nombre de bandes Horizontales a priori... #
setArgum affine FAUX
# A priori, pas de transformation affine... #
FileTmpB nomT1
FileTmpB nomT2
# Creation de noms temporaires... #
if ("$affine" == "FAUX") then
$xci/acces$X A=$imageA R=$nomT2 $formatI
# Cas ou il n'y a pas de transformation affine... #
else
$xci/affine.01$X A=$imageA \
mxx=`$xcg/scale$X x=1 a=$NbandeV` \
mxy=0 myx=0 \
myy=`$xcg/scale$X x=1 a=$NbandeH` \
TxA=0 TyA=0 TxR=0 TyR=0 \
R=$nomT2 $formatI
# Cas ou il y a une transformation affine... #
endif
@ NbandeV = $NbandeV + 1
@ NbandeH = $NbandeH + 1
$xci/init$X niveau=$NOIR R=$nomT1 $formatI
# Initialisation de l'image Resultat. #
set LtranslationH=`$xci/valeurs_inte$X premiere=1 derniere=$NbandeV vD=0.0 vA=1.0 cubique=FAUX signe="$K_VIDE"`
# Definition de la liste des translations Horizontales necessaires a obtenir les bandes #
# Verticales desirees... #
foreach translationH ($LtranslationH)
if ($translationH != $LtranslationH[$#LtranslationH]) then
$xci/move$X fond=VRAI F=$nomT1 A=$nomT2 xR=$translationH R=$nomT1 $formatI
# Decalage Horizontal iteratif pour creer les bandes Verticales (sauf pour la derniere #
# qui est ineffective...). #
else
endif
end
$xci/init$X niveau=$NOIR R=$imageR $formatI
# Initialisation de l'image Resultat... #
set LtranslationV=`$xci/valeurs_inte$X premiere=1 derniere=$NbandeH vD=0.0 vA=1.0 cubique=FAUX signe="$K_VIDE"`
# Definition de la liste des translations Verticales necessaires a obtenir les bandes #
# Horizontales desirees... #
foreach translationV ($LtranslationV)
if ($translationV != $LtranslationV[$#LtranslationV]) then
$xci/move$X fond=VRAI F=$imageR A=$nomT1 yR=$translationV R=$imageR $formatI
# Decalage Vertical iteratif pour creer les bandes Horizontales (sauf pour la derniere #
# qui est ineffective...). #
else
endif
end
FileTmpE nomT1
FileTmpE nomT2
# Puis destruction des images temporaires... #