#######################################################################################################################################
# #
# V I S U A L I S A T I O N D ' U N E S T R U C T U R E D E T Y P E #
# P E A N O T R I D I M E N S I O N N E L L E : #
# #
# #
# Author of '$xiird/.PEA3.3.11.$U' : #
# #
# Jean-Francois COLONNA (LACTAMME, 20060210163712). #
# #
#######################################################################################################################################
$Z setParam _____Donnees_1 $xie/Peano_3D.Filoche.11
$Z setParam _____Donnees_2 $xie/Peano_3D.Filoche.12
$Z setParam _____FconversionX +81
$Z # Parametre introduit le 20060211180732 et "specialise" en {X,Y,Z} le 20060213095033... #
$Z setParam _____FconversionY +81
$Z # Parametre introduit le 20060211180732 et "specialise" en {X,Y,Z} le 20060213095033... #
$Z setParam _____FconversionZ -81
$Z # Parametre introduit le 20060211180732 et "specialise" en {X,Y,Z} le 20060213095033... #
$Z setParam _____Selecteur "1234"
$Z SETParam _____Editer $NEXIST
$Z # Parametre introduit le 20060212113740... #
$Z setParam _____Palette $xiP/PEA3.31
$Z SETParam _____Nimages 1
$Z # Parametre introduit le 20060220211813... #
$Z setParam _____TranslationX -0.15
$Z setParam _____TranslationY -0.17
$Z setParam _____TranslationZ 0
$Z setParam _____RotationX +2.0
$Z setParam _____RotationY +0.4
$Z setParam _____RotationZ 0
$Z setParam _____Zoom 1.05
$Z setParam _____Rayon_1 0.0050
$Z setParam _____Rayon_2 0.0055
$Z setParam _____Zminimum 0.05
$Z setParam _____Lx 0
$Z # Parametre introduit le 20060212113740... #
$Z setParam _____Ly 0
$Z # Parametre introduit le 20060212113740... #
$Z setParam _____Lz 100
$Z # Parametre introduit le 20060212113740... #
$Z setParam _____Couronne_1 `GetParam $xrv/particule.10 couronne`
$Z # Parametre introduit le 20060222182344 et "divise" en deux le 20060224160556... #
$Z # #
$Z # Il fut introduit afin que, par exemple sur 'v $xiird/PEA3.35', les aretes des cubes soient #
$Z # parfaitement visibles et ce quel que soient leur orientation (en effet, la valeur par #
$Z # defaut provoque un exces d'anti-aliasing qui attenue les aretes peu epaisses de certaines #
$Z # orientations...). #
$Z setParam _____Couronne_2 `GetParam $xrv/particule.10 couronne`
$Z # Parametre introduit le 20060224160556... #
$Z setParam _____Fond "$K_VIDE"
$Z # Parametre introduit le 20060221171927... #
#20250211120812____:$Z setenv LONGUEUR_NOMS 64 #
$Z set DoNnEeS_1=`GetXTmp`
$Z $CP $_____Donnees_1$GZIP $DoNnEeS_1$GZIP
$Z $UNCOMPRES $DoNnEeS_1$GZIP
$Z # Duplication, puis decompression des donnees des facettes... #
$Z $CA $DoNnEeS_1 | \
$Z $GRE -v '^#' | \
$Z $AW ' { print $1 "\n" $1 } ' \
$Z > $DoNnEeS_1$COORD_X
$Z # Recuperation des coordonnees 'X' des centres des facettes... #
$Z $CA $DoNnEeS_1 | \
$Z $GRE -v '^#' | \
$Z $AW ' { print $2 "\n" $2 } ' \
$Z > $DoNnEeS_1$COORD_Y
$Z # Recuperation des coordonnees 'Y' des centres des facettes... #
$Z $CA $DoNnEeS_1 | \
$Z $GRE -v '^#' | \
$Z $AW ' { print $3 "\n" $3 } ' \
$Z > $DoNnEeS_1$COORD_Z
$Z # Recuperation des coordonnees 'Z' des centres des facettes... #
$Z $CA $DoNnEeS_1 | \
$Z $GRE -v '^#' | \
$Z $AW ' { print $5 "\n" $5 } ' \
$Z > $DoNnEeS_1$RVB
$Z # Recuperation des "activites" definissant les niveaux des centres des facettes... #
$Z $xrv/neutre$X ne=0 fichier=$DoNnEeS_1$RVB | \
$Z $SE -e 's/^.*$'"/$_____Rayon_1/" \
$Z > $DoNnEeS_1.r
$Z # Generation du rayon... #
$Z set NoMbRe_NiVeAuX=`$CA $DoNnEeS_1$RVB | $SOR -u | $WCl`
$Z set NiVeAu_MiNiMaL=`$xrv/extrema.01$X ne=0 fichier=$DoNnEeS_1$RVB minimum_seul=VRAI`
$Z set NiVeAu_MaXiMaL=`$xrv/extrema.01$X ne=0 fichier=$DoNnEeS_1$RVB maximum_seul=VRAI`
$Z set PaS_NiVeAu=`calcul ($NiVeAu_MaXiMaL-$NiVeAu_MiNiMaL)/$NoMbRe_NiVeAuX`
$Z set DoNnEeS_2=`GetXTmp`
$Z $CP $_____Donnees_2$GZIP $DoNnEeS_2$GZIP
$Z $UNCOMPRES $DoNnEeS_2$GZIP
$Z # Duplication, puis decompression des donnees des aretes... #
$Z $CA $DoNnEeS_2 | \
$Z $GRE -v '^#' | \
$Z $GRE ' ['"$_____Selecteur"']$' | \
$Z $AW ' { print $1 "\n" $4 } ' | \
$Z $xrv/DIVZ.11$X ne=0 fichier1="=" fichier2=$_____FconversionX \
$Z > $DoNnEeS_2$COORD_X
$Z # Recuperation des coordonnees 'X' des centres des aretes de niveau '$_____Selecteur'... #
$Z $CA $DoNnEeS_2 | \
$Z $GRE -v '^#' | \
$Z $GRE ' ['"$_____Selecteur"']$' | \
$Z $AW ' { print $2 "\n" $5 } ' | \
$Z $xrv/DIVZ.11$X ne=0 fichier1="=" fichier2=$_____FconversionY \
$Z > $DoNnEeS_2$COORD_Y
$Z # Recuperation des coordonnees 'Y' des centres des aretes de niveau '$_____Selecteur'... #
$Z $CA $DoNnEeS_2 | \
$Z $GRE -v '^#' | \
$Z $GRE ' ['"$_____Selecteur"']$' | \
$Z $AW ' { print $3 "\n" $6 } ' | \
$Z $xrv/DIVZ.11$X ne=0 fichier1="=" fichier2=$_____FconversionZ \
$Z > $DoNnEeS_2$COORD_Z
$Z # Recuperation des coordonnees 'Z' des centres des aretes de niveau '$_____Selecteur'... #
$Z set DeCaLaGe_DoNnEeS_2=`calcul $NiVeAu_MaXiMaL+(2*$PaS_NiVeAu)`
$Z # Introduit le 20060212113740 afin de marquer dans '$DoNnEeS$RVB' la frontiere entre les #
$Z # niveaux des facettes ('$DoNnEeS_1$RVB') et les niveaux des aretes ('v $DoNnEeS_2$RVB'). #
$Z $CA $DoNnEeS_2 | \
$Z $GRE -v '^#' | \
$Z $GRE ' ['"$_____Selecteur"']$' | \
$Z $AW ' { print $7 "\n" $7 } ' | \
$Z $xrv/ADD2.11$X ne=0 fichier1="=" fichier2=$DeCaLaGe_DoNnEeS_2 \
$Z > $DoNnEeS_2$RVB
$Z # Recuperation des "niveaux de recursivite" definissant les niveaux des centres des aretes, #
$Z # qui sont "mis apres" les niveaux de '$DoNnEeS_1$RVB'... #
$Z $xrv/neutre$X ne=0 fichier=$DoNnEeS_2$RVB | \
$Z $SE -e 's/^.*$'"/$_____Rayon_2/" \
$Z > $DoNnEeS_2.r
$Z # Generation du rayon... #
$Z set DoNnEeS=`GetXTmp`
$Z $CA $DoNnEeS_1$COORD_X $DoNnEeS_2$COORD_X | \
$Z $xrv/normalise.01$X ne=0 fichier== minimum=0 maximum=1 \
$Z > $DoNnEeS$COORD_X
$Z # Generation des coordonnees 'X'... #
$Z $CA $DoNnEeS_1$COORD_Y $DoNnEeS_2$COORD_Y | \
$Z $xrv/normalise.01$X ne=0 fichier== minimum=0 maximum=1 \
$Z > $DoNnEeS$COORD_Y
$Z # Generation des coordonnees 'Y'... #
$Z $CA $DoNnEeS_1$COORD_Z $DoNnEeS_2$COORD_Z | \
$Z $xrv/normalise.01$X ne=0 fichier== minimum=0 maximum=0.5 \
$Z > $DoNnEeS$COORD_Z
$Z # Generation des coordonnees 'Z'... #
$Z $CA $DoNnEeS_1$RVB $DoNnEeS_2$RVB | \
$Z $xrv/normalise.01$X ne=0 fichier== minimum=$NOIR_PLANCHER maximum=$BLANC \
$Z formater=VRAI entiers=VRAI signe="$K_VIDE" \
$Z > $DoNnEeS$RVB
$Z # Generation des niveaux... #
$Z $CA $DoNnEeS_1.r $DoNnEeS_2.r \
$Z > $DoNnEeS.r
$Z # Generation du rayon... #
$Z set NpointsX=`$CA $DoNnEeS$COORD_X | $WCl`
$Z set NpointsY=`$CA $DoNnEeS$COORD_Y | $WCl`
$Z set NpointsZ=`$CA $DoNnEeS$COORD_Z | $WCl`
#20220615102532____:$Z set NpointsXYZ=`$xcg/MAX3.01$X x=$NpointsX y=$NpointsY z=$NpointsZ` #
$Z set NpointsXYZ=`$xcg/MIN3.01$X x=$NpointsX y=$NpointsY z=$NpointsZ`
$Z set NpointsN=`$CA $DoNnEeS$RVB | $WCl`
$Z set Npoints=`$xcg/MIN2.01$X a=$NpointsXYZ b=$NpointsN signe="$K_VIDE"`
$Z if ($_____Editer == $EXIST) then
$Z echo "Npoints=$Npoints"
$Z set LiStE_NiVeAuX=`$CA $DoNnEeS$RVB | $SOR -un`
$Z set LiStE_NiVeAuX=`echo "$LiStE_NiVeAuX" | $R "$K_BLANC" ","`
$Z echo "Niveaux={$LiStE_NiVeAuX}"
$Z else
$Z endif
$Z if ($_____Nimages == 1) then
$Z set ChIfFrEs=0
$Z else
$Z set ChIfFrEs=4
$Z endif
$Z set Couronne_min=`$xcg/MIN2.01$X a=$_____Couronne_1 b=$_____Couronne_2`
$Z set Couronne_max=`$xcg/MAX2.01$X a=$_____Couronne_1 b=$_____Couronne_2`
$Z set Couronne_Rmin=`$xcg/MIN2.01$X a=$_____Rayon_1 b=$_____Rayon_2`
$Z set Couronne_Rmax=`$xcg/MAX2.01$X a=$_____Rayon_1 b=$_____Rayon_2`
$Z # Cette facon de parametrer l'anti-aliasing a ete introduite le 20060224160556... #
$Z $xrv/particule.10$X \
$Z np=$_____Nimages \
$Z npoints=$Npoints \
$Z isoles=FAUX chainer=FAUX Pajuster=VRAI equidistance=VRAI distance_minimale=0.001 \
$Z LISTE_X=$DoNnEeS$COORD_X \
$Z LISTE_Y=$DoNnEeS$COORD_Y \
$Z LISTE_Z=$DoNnEeS$COORD_Z \
$Z ARVB=1 BRVB=0 \
$Z LISTE_NIVEAU=$DoNnEeS$RVB \
$Z LISTE_RAYON=$DoNnEeS.r \
$Z palette=$_____Palette \
$Z TRANSLATION_OX=$_____TranslationX \
$Z TRANSLATION_OY=$_____TranslationY \
$Z TRANSLATION_OZ=$_____TranslationZ \
$Z ROTATION_OY=$_____RotationY \
$Z ROTATION_OX=$_____RotationX \
$Z ROTATION_OZ=$_____RotationZ \
$Z ZOOM=$_____Zoom \
$Z ZminimumT=$_____Zminimum ZmaximumT=1.0 Zminimum=$_____Zminimum Zmaximum=1.0 \
$Z Lx=$_____Lx \
$Z Ly=$_____Ly \
$Z Lz=$_____Lz \
$Z N_AU_CARRE=FAUX \
$Z couronne=$Couronne_max \
$Z moduler_couronne=VRAI \
$Z minimum_couronne=$Couronne_min rayon_minimum_couronne=$Couronne_Rmin \
$Z maximum_couronne=$Couronne_max rayon_maximum_couronne=$Couronne_Rmax \
$Z fond_dynamique=FAUX $_____Fond \
$Z chiffres=$ChIfFrEs \
$Z R=$_____ImageR \
$Z $formatI
$Z # ATTENTION : a l'ordre des rotations {OY,OX,OZ}... #
$Z # #
$Z # Le 20060212132738, le parametre "distance_minimale=" est passe de 0.002 a 0.001. #
$Z $DELETE $DoNnEeS_1 >& $nul
$Z $DELETE $DoNnEeS_1.* >& $nul
$Z $DELETE $DoNnEeS_2 >& $nul
$Z $DELETE $DoNnEeS_2.* >& $nul
$Z $DELETE $DoNnEeS >& $nul
$Z $DELETE $DoNnEeS.* >& $nul