#!/bin/csh
#######################################################################################################################################
# #
# R O T A T I O N T R I D I M E N S I O N N E L L E #
# ( E T P L U S G E N E R A L E M E N T T R A N S F O R M A T I O N T R I D I M E N S I O N N E L L E ) #
# D U C O N T E N U D ' U N C H A M P D E C O O R D O N N E E S { X , Y , Z } : #
# #
# #
# Utilisation : #
# #
# $xrs/rotate3D.01$Z <ImageA> <ImageR> [<Args> [<ComposR1> [<ComposR2> [<ComposR3>]]]] #
# #
# #
# Author of '$xrs/rotate3D.01$Z' : #
# #
# Jean-Francois Colonna (LACTAMME, 20090630095312). #
# #
#######################################################################################################################################
set ImageA=$1
set ImageR=$2
set Arguments=($3)
# Ce parametre permet d'introduire une liste quelconque de parametres de la commande #
# 'v $xrv/ROTATION.01$K' et en particulier {ROTATION_OX,ROTATION_OY,ROTATION_OZ} dans un #
# ordre quelconque (mais aussi des TRANSLATIONs, voire des transformations arbitraires...). #
set ComposR1=$4
set ComposR2=$5
set ComposR3=$6
setArgum ComposR1 $COORD_X
setArgum ComposR2 $COORD_Y
setArgum ComposR3 $COORD_Z
set TransA11=`$xrv/ROTATION.01$X ne=1 LISTE_X=1 LISTE_Y=0 LISTE_Z=0 pX=1 pY=0 pZ=0 $Arguments`
set TransA12=`$xrv/ROTATION.01$X ne=1 LISTE_X=0 LISTE_Y=1 LISTE_Z=0 pX=1 pY=0 pZ=0 $Arguments`
set TransA13=`$xrv/ROTATION.01$X ne=1 LISTE_X=0 LISTE_Y=0 LISTE_Z=1 pX=1 pY=0 pZ=0 $Arguments`
set TransA21=`$xrv/ROTATION.01$X ne=1 LISTE_X=1 LISTE_Y=0 LISTE_Z=0 pX=0 pY=1 pZ=0 $Arguments`
set TransA22=`$xrv/ROTATION.01$X ne=1 LISTE_X=0 LISTE_Y=1 LISTE_Z=0 pX=0 pY=1 pZ=0 $Arguments`
set TransA23=`$xrv/ROTATION.01$X ne=1 LISTE_X=0 LISTE_Y=0 LISTE_Z=1 pX=0 pY=1 pZ=0 $Arguments`
set TransA31=`$xrv/ROTATION.01$X ne=1 LISTE_X=1 LISTE_Y=0 LISTE_Z=0 pX=0 pY=0 pZ=1 $Arguments`
set TransA32=`$xrv/ROTATION.01$X ne=1 LISTE_X=0 LISTE_Y=1 LISTE_Z=0 pX=0 pY=0 pZ=1 $Arguments`
set TransA33=`$xrv/ROTATION.01$X ne=1 LISTE_X=0 LISTE_Y=0 LISTE_Z=1 pX=0 pY=0 pZ=1 $Arguments`
# Calcul des neuf elements de la matrice de rotation correspondant a '$Arguments'... #
$xci/interpolb.01$X \
a=$TransA11 A1=$ImageA$ComposR1 \
b=$TransA12 A2=$ImageA$ComposR2 \
g=$TransA13 A3=$ImageA$ComposR3 \
standard=FAUX \
Fverifier_somme_ponderations=FAUX \
R=$ImageR$ComposR1 \
$formatI
$xci/interpolb.01$X \
a=$TransA21 A1=$ImageA$ComposR1 \
b=$TransA22 A2=$ImageA$ComposR2 \
g=$TransA23 A3=$ImageA$ComposR3 \
standard=FAUX \
Fverifier_somme_ponderations=FAUX \
R=$ImageR$ComposR2 \
$formatI
$xci/interpolb.01$X \
a=$TransA31 A1=$ImageA$ComposR1 \
b=$TransA32 A2=$ImageA$ComposR2 \
g=$TransA33 A3=$ImageA$ComposR3 \
standard=FAUX \
Fverifier_somme_ponderations=FAUX \
R=$ImageR$ComposR3 \
$formatI
# Rotation de '$ImageA'... #