#######################################################################################################################################
# #
# I N T E R S E C T I O N D E D E U X S U R F A C E S : #
# #
# #
# Author of '$xiirs/.PROK.Q1.1.$U' : #
# #
# Jean-Francois COLONNA (LACTAMME, 20200801105432). #
# #
#######################################################################################################################################
$Z setParam _____Epsilon 0.010
$Z setParam _____Zoom 1.0
$Z setParam _____NAuCarre VRAI
$Z setParam _____RayonI 0.025
$Z setParam _____RougeI $GRIS_8
$Z setParam _____VerteI $GRIS_6
$Z setParam _____BleueI $GRIS_0
$Z SETParam _____Display1 $EXIST
$Z setParam _____Rayon1 0.010
$Z setParam _____Rouge1 $GRIS_6
$Z setParam _____Verte1 $GRIS_6
$Z setParam _____Bleue1 $GRIS_6
$Z setParam _____Nip1 10
$Z setParam _____Npp1 20
$Z setParam _____Nim1 40
$Z setParam _____Npm1 20
$Z setParam _____Normalise1 $NEXIST
$Z # Parametre introduit le 20200803124238... #
$Z SETParam _____Display2 $EXIST
$Z setParam _____Rayon2 0.010
$Z setParam _____Rouge2 $GRIS_0
$Z setParam _____Verte2 $GRIS_4
$Z setParam _____Bleue2 $GRIS_4
$Z setParam _____Nip2 20
$Z setParam _____Npp2 20
$Z setParam _____Nim2 20
$Z setParam _____Npm2 20
$Z setParam _____Normalise2 $NEXIST
$Z # Parametre introduit le 20200803124238... #
$Z FilSTmpB FSuRfAcE1
$Z $xrs/project2D.01$Z $_____Surface1 \
$Z $FSuRfAcE1 \
$Z "$_____ASurface1" \
$Z $COORD_X $COORD_Y $COORD_Z \
$Z FAUX \
$Z $_____Normalise1
$Z # Projection e la surface 1. #
$Z FilSTmpB FSuRfAcE2
$Z $xrs/project2D.01$Z $_____Surface2 \
$Z $FSuRfAcE2 \
$Z "$_____ASurface2" \
$Z $COORD_X $COORD_Y $COORD_Z \
$Z FAUX \
$Z $_____Normalise2
$Z # Projection e la surface 2. #
$Z FilSTmpB FInTeRsEcTiOn
$Z $xrs/intersection3D.11$X \
$Z Progression=VRAI \
$Z PP1X=$FSuRfAcE1$COORD_X \
$Z PP1Y=$FSuRfAcE1$COORD_Y \
$Z PP1Z=$FSuRfAcE1$COORD_Z \
$Z PP2X=$FSuRfAcE2$COORD_X \
$Z PP2Y=$FSuRfAcE2$COORD_Y \
$Z PP2Z=$FSuRfAcE2$COORD_Z \
$Z ponderation_MOYE=0 \
$Z ponderation_MIN2=0 \
$Z ponderation_MAX2=0 \
$Z ponderation_SE12=1 \
$Z ponderation_SE22=0 \
$Z epsilon=$_____Epsilon \
$Z $formatI \
$Z >> $FInTeRsEcTiOn
$Z # Intersection des surfaces 1 et 2. La ponderation 'SE12' est selectionnee afin que les #
$Z # points de l'intersection appartiennent bien (visuellement...) a la surface 1... #
$Z $CA $FInTeRsEcTiOn | \
$Z $AW ' { print $1 } ' | \
$Z $SE -e "s/^.*=//" \
$Z > $FInTeRsEcTiOn$COORD_X
$Z $CA $FInTeRsEcTiOn | \
$Z $AW ' { print $2 } ' | \
$Z $SE -e "s/^.*=//" \
$Z > $FInTeRsEcTiOn$COORD_Y
$Z $CA $FInTeRsEcTiOn | \
$Z $AW ' { print $3 } ' | \
$Z $SE -e "s/^.*=//" \
$Z > $FInTeRsEcTiOn$COORD_Z
$Z set NPoInTsX=`$CA $FInTeRsEcTiOn$COORD_X | $WCl`
$Z set NPoInTsY=`$CA $FInTeRsEcTiOn$COORD_Y | $WCl`
$Z set NPoInTsZ=`$CA $FInTeRsEcTiOn$COORD_Z | $WCl`
#20220615104915____:$Z set NPoInTs_=`$xcg/MAX3.01$X x=$NPoInTsX y=$NPoInTsY z=$NPoInTsZ` #
$Z set NPoInTs_=`$xcg/MIN3.01$X x=$NPoInTsX y=$NPoInTsY z=$NPoInTsZ`
$Z set EcLaIrAgE="Lz=100 DepthCueingMinimal=0.2 DepthCueingMaximal=1"
$Z set LiStEr="lister_les_points=VRAI lister_les_points_apres=VRAI"
$Z FilSTmpB FLiStE_PoInTs
$Z $xrv/particule.10$X \
$Z nombre_points=$NPoInTs_ \
$Z nombre_periodes=1 \
$Z LISTE_X=$FInTeRsEcTiOn$COORD_X \
$Z LISTE_Y=$FInTeRsEcTiOn$COORD_Y \
$Z LISTE_Z=$FInTeRsEcTiOn$COORD_Z \
$Z AXYZ=1 BXYZ=0 \
$Z LISTE_ROUGE=$_____RougeI \
$Z LISTE_VERTE=$_____VerteI \
$Z LISTE_BLEUE=$_____BleueI \
$Z N_au_carre=$_____NAuCarre \
$Z ZOOM=$_____Zoom \
$Z rayon_de_visualisation=$_____RayonI \
$Z Z-Buffer=VRAI Z=$xTV/Z_BUFFER message_brume_ZB=FAUX \
$Z chiffres=0 \
$Z $LiStEr \
$Z editer_extrema_hors=FAUX \
$Z R=$xTV/INTERSECTION \
$Z $formatI \
$Z >> $FLiStE_PoInTs
$Z # Trace de l'intersection des surfaces 1 et 2. #
$Z FilSTmpE FInTeRsEcTiOn
$Z if ($_____Display1 == $EXIST) then
$Z set ArGuMeNtS="$K_VIDE"
$Z set ArGuMeNtS="$ArGuMeNtS"" N_au_carre=$_____NAuCarre"
$Z set ArGuMeNtS="$ArGuMeNtS"" nombre_inter_paralleles=$_____Nip1"
$Z set ArGuMeNtS="$ArGuMeNtS"" nombre_points_entre_deux_paralleles=$_____Npp1"
$Z set ArGuMeNtS="$ArGuMeNtS"" nombre_inter_meridiens=$_____Nim1"
$Z set ArGuMeNtS="$ArGuMeNtS"" nombre_points_entre_deux_meridiens=$_____Npm1"
$Z set ArGuMeNtS="$ArGuMeNtS"" faciliter_parametrage_u_v=VRAI"
$Z set ArGuMeNtS="$ArGuMeNtS"" RVB=FAUX"
$Z set ArGuMeNtS="$ArGuMeNtS"" $LiStEr"
$Z $xrs/project2D.02$Z \
$Z $FSuRfAcE1 \
$Z $xTV/SURFACE1 \
$Z "$ArGuMeNtS" \
$Z $COORD_X $COORD_Y $COORD_Z \
$Z $_____Zoom \
$Z 0 0 0 \
$Z FAUX \
$Z "$K_VIDE" "$K_VIDE" \
$Z $NEXIST | \
$Z $SE -e "s/\( ROUGE=\)[^ ][^ ]*\( \)/\1$_____Rouge1\2/" \
$Z -e "s/\( VERTE=\)[^ ][^ ]*\( \)/\1$_____Verte1\2/" \
$Z -e "s/\( BLEUE=\)[^ ][^ ]*\( \)/\1$_____Bleue1\2/" \
$Z >> $FLiStE_PoInTs
$Z # Trace de la surface 1. #
$Z else
$Z endif
$Z FilSTmpE FSuRfAcE1
$Z if ($_____Display2 == $EXIST) then
$Z set ArGuMeNtS="$K_VIDE"
$Z set ArGuMeNtS="$ArGuMeNtS"" N_au_carre=$_____NAuCarre"
$Z set ArGuMeNtS="$ArGuMeNtS"" nombre_inter_paralleles=$_____Nip2"
$Z set ArGuMeNtS="$ArGuMeNtS"" nombre_points_entre_deux_paralleles=$_____Npp2"
$Z set ArGuMeNtS="$ArGuMeNtS"" nombre_inter_meridiens=$_____Nim2"
$Z set ArGuMeNtS="$ArGuMeNtS"" nombre_points_entre_deux_meridiens=$_____Npm2"
$Z set ArGuMeNtS="$ArGuMeNtS"" faciliter_parametrage_u_v=VRAI"
$Z set ArGuMeNtS="$ArGuMeNtS"" RVB=FAUX"
$Z set ArGuMeNtS="$ArGuMeNtS"" $LiStEr"
$Z $xrs/project2D.02$Z \
$Z $FSuRfAcE2 \
$Z $xTV/SURFACE2 \
$Z "$ArGuMeNtS" \
$Z $COORD_X $COORD_Y $COORD_Z \
$Z $_____Zoom \
$Z 0 0 0 \
$Z FAUX \
$Z "$K_VIDE" "$K_VIDE" \
$Z $NEXIST | \
$Z $SE -e "s/\( ROUGE=\)[^ ][^ ]*\( \)/\1$_____Rouge2\2/" \
$Z -e "s/\( VERTE=\)[^ ][^ ]*\( \)/\1$_____Verte2\2/" \
$Z -e "s/\( BLEUE=\)[^ ][^ ]*\( \)/\1$_____Bleue2\2/" \
$Z >> $FLiStE_PoInTs
$Z # Trace de la surface 2. #
$Z else
$Z endif
$Z FilSTmpE FSuRfAcE2
$Z FilSTmpB FSuRfAcE12
$Z $CA $FLiStE_PoInTs | \
$Z $SE -e "s/^.* X=//" \
$Z -e 's/^\([^ ][^ ]*\) .*$/\1/' \
$Z > $FSuRfAcE12$COORD_X
$Z $CA $FLiStE_PoInTs | \
$Z $SE -e "s/^.* Y=//" \
$Z -e 's/^\([^ ][^ ]*\) .*$/\1/' \
$Z > $FSuRfAcE12$COORD_Y
$Z $CA $FLiStE_PoInTs | \
$Z $SE -e "s/^.* Z=//" \
$Z -e 's/^\([^ ][^ ]*\) .*$/\1/' \
$Z > $FSuRfAcE12$COORD_Z
$Z $CA $FLiStE_PoInTs | \
$Z $SE -e "s/^.* RAYON=//" \
$Z -e 's/^\([^ ][^ ]*\) .*$/\1/' \
$Z > $FSuRfAcE12$RAYON
$Z $CA $FLiStE_PoInTs | \
$Z $SE -e "s/^.* ROUGE=//" \
$Z -e 's/^\([^ ][^ ]*\) .*$/\1/' \
$Z > $FSuRfAcE12$ROUGE
$Z $CA $FLiStE_PoInTs | \
$Z $SE -e "s/^.* VERTE=//" \
$Z -e 's/^\([^ ][^ ]*\) .*$/\1/' \
$Z > $FSuRfAcE12$VERTE
$Z $CA $FLiStE_PoInTs | \
$Z $SE -e "s/^.* BLEUE=//" \
$Z -e 's/^\([^ ][^ ]*\) .*$/\1/' \
$Z > $FSuRfAcE12$BLEUE
$Z set NPoInTsX=`$CA $FSuRfAcE12$COORD_X | $WCl`
$Z set NPoInTsY=`$CA $FSuRfAcE12$COORD_Y | $WCl`
$Z set NPoInTsZ=`$CA $FSuRfAcE12$COORD_Z | $WCl`
#20220615104915____:$Z set NPoInTs_=`$xcg/MAX3.01$X x=$NPoInTsX y=$NPoInTsY z=$NPoInTsZ` #
$Z set NPoInTs_=`$xcg/MIN3.01$X x=$NPoInTsX y=$NPoInTsY z=$NPoInTsZ`
$Z $xrv/particule.10$X \
$Z nombre_points=$NPoInTs_ \
$Z nombre_periodes=1 \
$Z LISTE_X=$FSuRfAcE12$COORD_X \
$Z LISTE_Y=$FSuRfAcE12$COORD_Y \
$Z LISTE_Z=$FSuRfAcE12$COORD_Z \
$Z LISTE_RAYON=$FSuRfAcE12$RAYON \
$Z LISTE_ROUGE=$FSuRfAcE12$ROUGE \
$Z LISTE_VERTE=$FSuRfAcE12$VERTE \
$Z LISTE_BLEUE=$FSuRfAcE12$BLEUE \
$Z N_au_carre=$_____NAuCarre \
$Z ZOOM=$_____Zoom \
$Z chiffres=0 \
$Z $EcLaIrAgE \
$Z couronne=2 \
$Z editer_extrema_hors=FAUX \
$Z R=$_____ImageR \
$Z $formatI
$Z # Trace des surfaces 1 et 2 (chacune en option) et de leur intersection. #
$Z FilSTmpE FSuRfAcE12