#!/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