#include<geometry.h>

int main()
{
Named_array<Surface *> s; cin >> s; cout << s;
Line l; cin >> l;
cout << "intersections of line with surfaces:\n"
     << "surface\tposition vector\tline parameter\n";
for (int i=0;i<s.n;i++) {
   Array<Vector> pint; Array<double> gint;
   int n = s[i]->intersection(l,pint,gint);
   for (int j=0;j<n;j++) {
      cout << i << '\t';
      pint[j].Write_elements(cout);
      cout << '\t' << gint[j] << endl;
   }
}
return 0;
}
