#!/bin/perl
#
# Ce script (facilement adaptable pour d'autres utilisations) permet
# d'automatiser la creation de cartes CGAP entre noeuds coincidents.
# Les donnees d'entree sont lues dans deux fichiers contenant chacun
# la liste des noeuds appartenant a une surface. Le script n'est pas 
# du tout optimisé dans la mesure ou pour chaque noeud de l'un des
# fichiers on teste TOUS (!) les noeuds de l'autre fichier pour savoir
# lequel se situe a une distance inferieure a la tolerance specifiee
# dans la boucle de test
#
open (fic1,"test1");
open (fic2,"test2");
open (out,">sortie");
$i=1;
$j=1;
$k=55555;
$tol = 0.01;
while ($in1 = <fic1>) {
   $noeud1{$i}=substr($in1,8,8);
   $noeud1{$i}{"x"}=substr($in1,24,8);
   $noeud1{$i}{"y"}=substr($in1,32,8);
   $noeud1{$i}{"z"}=substr($in1,40,8);
   $i++;
   }
while ($in2 = <fic2>) {
   $noeud2{$j}=substr($in2,8,8);
   $noeud2{$j}{"x"}=substr($in2,24,8);
   $noeud2{$j}{"y"}=substr($in2,32,8);
   $noeud2{$j}{"z"}=substr($in2,40,8);
   $j++;
   }
for ($ii=1;$ii<122;$ii++){
  for ($jj=1;$jj<122;$jj++) {
     $dist = ($noeud2{$jj}{"x"}-$noeud1{$ii}{"x"})**2
           + ($noeud2{$jj}{"y"}-$noeud1{$ii}{"y"})**2
	   + ($noeud2{$jj}{"z"}-$noeud1{$ii}{"z"})**2;
     if ($dist < $tol) {
        print out ("CGAP,",$k,",idPGAP,",$noeud1{$ii},",",$noeud2{$jj},"\n");
	$k++;
#	delete ($noeud{$jj});
     }
  }
  }
